📄 ipod.c
字号:
mode02_send(SIR_PLAY_PAUSE);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
mode04_play();
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_pause(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_PAUSE);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
xprintf(IPOD_AIR_MODE,0x00,AIR_PLAY_CONTROL,IPOD_CON_PAUSE,-1);
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_prev(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_PREV_TRACK);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
xprintf(IPOD_AIR_MODE,0x00,AIR_PLAY_CONTROL,IPOD_CON_PREV,-1);
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_next(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_NEXT_TRACK);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
xprintf(IPOD_AIR_MODE,0x00,AIR_PLAY_CONTROL,IPOD_CON_NEXT,-1);
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_BL(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_BL30);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_pon(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_SELECT);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_poff(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_SELECT);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_ff(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_FF);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
xprintf(IPOD_AIR_MODE,0x00,AIR_PLAY_CONTROL,IPOD_CON_FF,-1);
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_fb(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_FB);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
xprintf(IPOD_AIR_MODE,0x00,AIR_PLAY_CONTROL,IPOD_CON_FS,-1);
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_random(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_SHUFFLE);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
xprintf(IPOD_AIR_MODE,0x00,AIR_PLAY_CONTROL,ipod_random,-1);
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_intro(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_SHUFFLE);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_repeat(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_REPEAT);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
xprintf(IPOD_AIR_MODE,0x00,AIR_PLAY_CONTROL,ipod_repeat,-1);
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_mode(void)
{
if(ipod_mode == IPOD_SIR_MODE)
{
ipod_mode = IPOD_AIR_MODE;
xprintf(0x00,0x01,ipod_mode,-1);
// if(mode04_come_back() != AIR_ACK)
// return;
mode04_init();
}
else
{
ipod_mode = IPOD_SIR_MODE;
xprintf(0x00,0x01,ipod_mode,-1);
}
return ipod_mode;
}
UB IPOD_key_vup(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_VOL_UP);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
UB IPOD_key_vdown(void)
{
UB flag = 0;
//Send Command;
switch(ipod_mode)
{
case IPOD_GEN_MODE:
break;
case IPOD_MIC_MODE:
break;
case IPOD_SIR_MODE:
mode02_send(SIR_VOL_DOWN);
break;
case IPOD_DIR_MODE:
break;
case IPOD_AIR_MODE:
break;
case IPOD_RFT_MODE:
break;
}
return flag;
}
void IPOD_redisp(void)
{
}
//for output variable argument.
static void xprintf(UW start,...)
{
va_list arg_ptr;
UB i=0;
UB check_sum;
UW temp;
uart_tr_buff[0] = IPOD_PREFIX1;
uart_tr_buff[1] = IPOD_PREFIX2;
uart_tr_buff[3] = (UB)start;
check_sum = uart_tr_buff[3];
va_start(arg_ptr, start);
for(i=4; ; i++ )
{
temp = va_arg(arg_ptr,UW);
if(temp == -1)
break;
uart_tr_buff[i] = (UB)temp;
check_sum += (UB)uart_tr_buff[i];
}
va_end(arg_ptr);
uart_tr_buff[2] = i - 3;
check_sum += uart_tr_buff[2];
check_sum = 0x100 - check_sum;
uart_tr_buff[i] = check_sum;
ipod_com_init();
uart_transfer();
}
static void mode02_send(SIR_INDEX command)
{
switch(command2[command][0])
{
case 0: //Refer to IPOD Simple Remote.
xprintf(IPOD_SIR_MODE,0x00,command2[command][1],-1);
break;
case 1:
xprintf(IPOD_SIR_MODE,0x00,0x00,command2[command][1],-1);
break;
case 2:
xprintf(IPOD_SIR_MODE,0x00,0x00,0x00,command2[command][1],-1);
break;
default:
xprintf(IPOD_SIR_MODE,0x00,0x00,0x00,0x00,command2[command][1],-1);
break;
}
xprintf(IPOD_SIR_MODE,0x00,command2[0][1],-1);
}
static void mode03_send()
{
}
static void mode04_init(void)
{
UB temp = 0;
UB temp_count;
ipod_disp = IPOD_DISP_MODE04;
ipod_layer = IPOD_LAYER_MAIN; //DIE TIE
ipod_bank = IPOD_BANK_LEFT;
ipod_db_position = 0;
ipod_pb_position = 1;
ipod_db_count = 0;
ipod_pb_count = 0;
ipod_db_page = 0;
ipod_db_page =0;
ipod_db_last_page = 0;
ipod_pb_last_page = 0;
mode04_init_data();
mode04_db_reset();
if(mode04_come_back() != AIR_ACK)
return;
ipod_bank = IPOD_BANK_RIGHT;
mode04_pb_count();
if(mode04_come_back() == AIR_RET_PLAY_TRACK)
{
ipod_pb_count = (uart_rc_buff[6]<<24)|(uart_rc_buff[7]<<16)|(uart_rc_buff[8]<<8)|uart_rc_buff[9];
}
if(ipod_db_count < NUM_IPOD_DISP)
temp_count = ipod_db_count;
else
temp_count = NUM_IPOD_DISP;
if(ipod_pb_count > 0)
{
for(temp = 0; temp<temp_count; temp++)
{
mode04_pb_name(temp);
if(mode04_come_back() == AIR_RET_TRACK_NAME)
mode04_get_name(temp);
else
continue;
}
}
ipod_bank = IPOD_BANK_LEFT;
//INIT OSD
Cd_WaitTime100msReq( TIM_CONT_START , 5, TIM_100MS_IPOD_OSD);
IPOD_send_disp_msg(MS_OSD_REQ,DSP_ID_MP3_NAME, DSP_DAT_ON);
}
static void mode04_select(void)
{
UB temp_category;
UB temp;
UB temp_count;
UB last_category;
if(ipod_bank == IPOD_BANK_LEFT)
{
if(ipod_layer>IPOD_LAYER_MAIN)
{
last_category = mode04_get_category();
mode04_db_select(last_category,ipod_db_position);
if(mode04_come_back() != AIR_ACK)
return;
}
ipod_layer++;
temp_category = mode04_set_category();
mode04_db_get(temp_category);
if(mode04_come_back() == AIR_RET_NUM_CATE)
{
ipod_db_count = (uart_rc_buff[6]<<24)|(uart_rc_buff[7]<<16)|(uart_rc_buff[8]<<8)|uart_rc_buff[9];
}
else
{
ipod_db_count = 0;
}
if(ipod_db_count < NUM_IPOD_DISP)
temp_count = ipod_db_count;
else
temp_count = NUM_IPOD_DISP;
for(temp = 0; temp<temp_count; temp++)
{
mode04_db_retrieve(temp_category, temp, 1);
if(mode04_come_back() == AIR_RET_CATE_DB)
mode04_get_name(temp);
else
continue;
ipod_db_position = 0;
}
/*
mode04_db_retrieve(temp_category, 0, temp_count);
for(temp = 0; temp<temp_count; temp++)
{
if(mode04_come_back() == AIR_RET_CATE_DB)
mode04_get_name(temp);
else
break;
}
*/
for(;temp<NUM_IPOD_DISP;temp++)
{
ipod_db_disp_info[temp].file_name[0]='\0';
ipod_db_disp_info[temp].file_name[1]='\0';
}
}
else
{
mode04_pb_play(ipod_pb_position);
if(mode04_come_back() != AIR_ACK)
return;
// ipod_pb_position = 0;
}
IPOD_send_disp_msg(MS_OSD_REQ,DSP_ID_MP3_NAME, DSP_DAT_ON);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -