//데이터 수정
void DataEdit(Node** List)
{
	int num=0,count=0,result=0;

	count=DLL_GetNodeCount(*List);
	Node*	Current= DLL_GetNodeAt( *List, count-1 );
	
	printf("%d번까지 미디어가 있습니다.\n\n",Current->num);
	
	while(1)
	{
		printf("수정할 미디어 번호를 입력:");
		scanf("%d",&num);

		result = DataValidCheck(&List,num);

		if(result!=-1)
		{
			break;
		}
		else
		{
			printf("\n 해당 미디어 번호는 유효하지 않습니다.\n\n");
		}
	}

	Current = DLL_GetNodeAt( *List, result );
	
	printf("\n내용:");
	scanf("%s",&((*Current).name));
	printf("\n");

	Progressbar();
	system("cls");
}
//데이터 삭제
void DataDelete(Node** List)
{
	int	i=0, result=0;
	int Count=DLL_GetNodeCount( *List);
	Node* Current = DLL_GetNodeAt( *List, Count-1 );

	printf("%d번까지 미디어가 있습니다.\n\n",Current->num);

	while(1)
	{
		printf("삭제할 미디어 번호를 입력:");
		scanf("%d",&i);

		result = DataValidCheck(&List,i);

		if(result!=-1)
		{
			break;
		}
		else
		{
			printf("\n 해당 미디어 번호는 유효하지 않습니다.\n\n");
		}
	}

	Current = DLL_GetNodeAt( *List, result );
	DLL_RemoveNode( List,  Current);
	Progressbar();
	system("cls");
}
int MX_controller::GetPresLoad(int *PresentLoad){
	int tP_load[NUM_FINGER],tLoad_length = 2;
	unsigned char *t_param;
	t_param = (unsigned char*)malloc(sizeof(unsigned char)*(NUM_FINGER*5));

	for(int i = 0; i < NUM_FINGER; i++){
		t_param[i*5] = (unsigned char)ID_list_[i];
		t_param[i*5+1] = DXL_LOBYTE(MX_PRESENT_LOAD);
		t_param[i*5+2] = DXL_HIBYTE(MX_PRESENT_LOAD);
		t_param[i*5+3] = DXL_LOBYTE(tLoad_length);
		t_param[i*5+4] = DXL_HIBYTE(tLoad_length);
	}
	while(1){
		dxl_bulk_read(Port_, t_param, NUM_FINGER*5, pbd);

		for(int i = 0; i < NUM_FINGER; i++){
			dxl_get_bulk_word(pbd, ID_list_[i], MX_PRESENT_LOAD, &tP_load[i]);

			if(PresentLoad != NULL){
				PresentLoad[i] = tP_load[i];
			}else
				printf("ID %d : %d\n", ID_list_[i], tP_load[i]);
		}

		if(DataValidCheck(tP_load, 2048, 0) == 1)
			break;
	}

	free(t_param);


	return 1;
}
//데이터 범위 출력
void DataPrint(Node** List)
{
	int i=0,unit=0,startnum=0,endnum=0,result=0;
	int Count = 0;
	char key = 0;

	Node*	NewNode	= NULL;
	Node*	Current= NULL;
	FILE * file = NULL;

	Count = DLL_GetNodeCount( *List );

	while(1)
	{
		printf(" 시작 번호:");
		scanf("%d",&startnum);

		result=DataValidCheck(&List,startnum);

		if(startnum <0)
		{
			system("cls");
			printf(" 0 이상을 입력하셔야 합니다.\n");
		}
		else if(result==-1)
		{
			printf(" 해당번호는 유효 하지 않습니다.\n");
		}
		else
		{
			startnum=result;
			break;
		}
	}
	
	while(1)
	{
		printf(" 끝 번호:");
		scanf("%d",&endnum);

		result=DataValidCheck(&List,endnum);

		if(endnum<startnum)
		{
			system("cls");
			printf(" 끝 번호는 시작 번호 보다 크거나 같아야 합니다.\n");
		}
		else if(endnum < 0)
		{
			printf(" 끝 번호는 0 보다 커야 합니다.\n");
		}
		else if(result==-1)
		{
			printf(" 해당번호는 유효 하지 않습니다.\n");
		}
		else
		{
			endnum=result;
			break;
		}
	}


	if(endnum-startnum > 50)
	{
		printf(" 한페이지에 출력될 미디어 데이터 수?(0: 50개):");
		scanf("%d",&unit);
	}

	system("cls");

	//  리스트 출력
	for ( i = 0; i<Count; i++ )
	{
		if(i<startnum)
			continue;
		
		if(i>endnum)
		{
			printf("\n ☆키를 누르시면 메뉴로 넘어갑니다.\n");
			getch();
			system("cls");
			return;
		}

		Current = DLL_GetNodeAt( *List, i );
		//printf( "List[%d] : %d, %d, %s\n", i, Current->Data, Current->num, Current->name );
		printf( "미디어번호: [%d] 내용: %s\n",Current->num, Current->name );

		if(unit==0)
		{
			if(i!=0 && (i+1)%50==0&&i!=endnum)
			{
				printf("\n ☆다음페이지로 넘어갑니다(종료 'Q'키)\n");
				key=getch();

				if(key=='q'||key=='Q')
				{
					system("cls");
					return;
				}
				else
				{
					system("cls");
				}
			}
		}
		else
		{
			if(i!=0 && (i+1)%unit==0&&i!=endnum)
			{
				printf("\n ☆다음페이지로 넘어갑니다(종료 'Q'키)\n");
				key=getch();

				if(key=='q'||key=='Q')
				{
					system("cls");
					return;
				}
				else
				{
					system("cls");
				}
			}
		}
		if(i==Count-1)
		{
			printf("\n ☆키를 누르시면 메뉴로 넘어갑니다.\n");
			getch();
			system("cls");
		}

	}

}