📄 复件 bu2624.c
字号:
autosrch_step++;
};
}
}
break;
case AUTOSRCH_STEP5:
if(is_search_all_station)
{
if(gps->ps_amfm_flag)
{
if(AMfreq >=AMreq_MAX)
{
is_search_all_station = 0;
is_autosearching = 0;
AMfreq = gps->ps_am_station[0];
switch_fmam(gps->ps_amfm_flag);
mute_radio(0);
};
}
else
{
if(FMfreq>=FMreq_MAX)
{
is_search_all_station = 0;
is_autosearching = 0;
FMfreq = gps->ps_fm_station[0];
switch_fmam(gps->ps_amfm_flag);
mute_radio(0);
break;
};
};
};
change_freq_value(gps->ps_amfm_flag,search_dir);
ok_count = 0;
unok_count = 0;
autosrch_step = AUTOSRCH_STEP1;
break;
} //switch
}
#endif
extern const RADIO_KEY_REDIRECTION_MATRIX radio_key_lut;
void switch_radio_station(void)
{
if(gps->ps_am_no < MAX_AM_STATION ) AMfreq = gps->ps_am_station[gps->ps_am_no];
if(gps->ps_fm_no < MAX_FM_STATION) FMfreq = gps->ps_fm_station[gps->ps_fm_no];
switch_fmam(gps->ps_amfm_flag);
//mute_radio(0);
//radio_station_changed = 1;
g_ui_tmp_msg_cnt = 0;
radio_menu_id = RADIO_RUN_MENU;
}
void radio_action(WORD code)
{
int i;
unsigned long param;
WORD radio_key;
if(!map_radio_key( (code&0xff), &radio_key_lut, &radio_key))
return;
printf("radio_key=:");debug_out_wx(radio_key);printf("\n");
switch(radio_key)
{
/* case UICC_POWER:
ie_send_ex(IE_CORE_CMD_POWER, (void*)1);
break;
case UICC_AUDIO:
if(!gps->amfm_flag)
{
if(is_stereo) is_stereo = 0;
else is_stereo = 1;
switch_audio_channel(is_stereo);
};
break;*/
case RD_AUTO_SEARCH_F:
if(is_search_all_station) break;
radio_menu_id = RADIO_RUN_MENU;
is_search_all_station = 0;
is_autosearching = 1;
g_ui_tmp_msg_cnt = 0;
search_ok = 0;
search_dir = 1;
//gps->ps_amfm_flag = 0;
autosrch_step = AUTOSRCH_STEP5;
//turnauto_serach
break;
case RD_AUTO_SEARCH_R:
if(is_search_all_station) break;
radio_menu_id = RADIO_RUN_MENU;
is_autosearching = 1;
search_ok = 0;
search_dir = 0;
is_search_all_station = 0;
autosrch_step = AUTOSRCH_STEP5;
g_ui_tmp_msg_cnt = 0;
//turnauto_serach
break;
case RD_FMAM:
if(is_search_all_station||is_autosearching) break;
mute_radio(1);
if(gps->ps_amfm_flag) gps->ps_amfm_flag = 0;
else gps->ps_amfm_flag = 1;
switch_radio_station();
ps_update_radio(PS_UPDATE_AMFM_FLAG);
//radio_station_changed = 1;
usleep(100000); //100ms
mute_radio(0);
break;
case RD_VOLUME_UP:
switch(radio_menu_id)
{
case RADIO_RUN_MENU:
case RADIO_ERR_MENU:
radio_menu_id = RADIO_VOL_MENU;
volume_key_pressed = 1;
break;
case RADIO_VOL_MENU:
if(Mchvolume < 2*MAX_VOLUME)
{
Mchvolume++;
#ifdef USE_M62429
write_volume_to_m62429();
#endif
#ifdef USE_M62420
write_volume_to_m62420();
#endif
}
volume_key_pressed = 1;
break;
case RADIO_BASS_MENU:
m62420_bass_up();
bass_key_pressed = 1;
break;
case RADIO_TREBLE_MENU:
m62420_treble_up();
treble_key_pressed = 1;
break;
case RADIO_STORE_MENU:
radio_count = radio_count+1;
if(gps->ps_amfm_flag)
radio_count = radio_count%MAX_AM_STATION;
else
radio_count = radio_count%MAX_FM_STATION;
break;
}
g_ui_tmp_msg_cnt = 30; //3s
break;
case RD_VOLUME_DOWN:
switch(radio_menu_id)
{
case RADIO_RUN_MENU:
case RADIO_ERR_MENU:
radio_menu_id = RADIO_VOL_MENU;
volume_key_pressed = 1;
break;
case RADIO_VOL_MENU:
Mchvolume--;
#ifdef USE_M62429
write_volume_to_m62429();
#endif
#ifdef USE_M62420
write_volume_to_m62420();
#endif
volume_key_pressed = 1;
break;
case RADIO_BASS_MENU:
m62420_bass_down();
bass_key_pressed = 1;
break;
case RADIO_TREBLE_MENU:
m62420_bass_down();
bass_key_pressed = 1;
break;
case RADIO_STORE_MENU:
if(radio_count >0)
radio_count = radio_count-1;
else
{
if(gps->ps_amfm_flag)
radio_count = MAX_AM_STATION - 1;
else
radio_count = MAX_FM_STATION - 1;
};
break;
}
g_ui_tmp_msg_cnt = 30; //3s
break;
case RD_STEP_B:
if(is_autosearching || is_search_all_station) break;
//tuner_handsearch(0,0);
tuner_handsearch(gps->ps_amfm_flag, 0);
break;
case RD_STEP_F:
if(is_autosearching || is_search_all_station) break;
//tuner_handsearch(0,1);
tuner_handsearch(gps->ps_amfm_flag,1);
break;
case RD_STOP:
is_autosearching = 0;
is_search_all_station = 0;
switch_radio_station();
usleep(50000);
mute_radio(0);
break;
case RD_AUDIO:
if(!gps->ps_amfm_flag)
{
if(is_stereo)
is_stereo = 0;
else
is_stereo = 1;
switch_audio_channel(is_stereo);
};
break;
case RD_SKIPB:
if(is_search_all_station || is_autosearching) break;
mute_radio(1);
if(gps->ps_amfm_flag)
{
if( gps->ps_am_no == 0 )
gps->ps_am_no = MAX_AM_STATION-1;
else
gps->ps_am_no--;
ps_update_radio(PS_UPDATE_AM_NO);
}
else
{
if(gps->ps_fm_no==0)
gps->ps_fm_no=MAX_FM_STATION-1;
else
gps->ps_fm_no--;
ps_update_radio(PS_UPDATE_FM_NO);
};
switch_radio_station();
usleep(100000);//100ms
mute_radio(0);
//radio_station_changed = 1;
break;
case RD_SKIPF:
if(is_search_all_station||is_autosearching) break;
mute_radio(1);
if(gps->ps_amfm_flag)
{
gps->ps_am_no=(gps->ps_am_no+1)%MAX_AM_STATION;
ps_update_radio(PS_UPDATE_AM_NO);
}
else
{
gps->ps_fm_no=(gps->ps_fm_no+1)%MAX_FM_STATION;
ps_update_radio(PS_UPDATE_FM_NO);
}
switch_radio_station();
usleep(100000); //100ms
mute_radio(0);
//radio_station_changed = 1;
break;
/*
case UICC_SEARCH:
if(is_search_all_station) break;
is_search_all_station = 1;
radio_menu_id = RADIO_RUN_MENU;
g_ui_tmp_msg_cnt = 0;
search_ok = 0;
search_dir = 1;
autosrch_step = 0;
if(gps->amfm_flag)
{
//am
gps->am_station_no = 0;
AMfreq = AMreq_MIN - AMreq_STEP;
}
else
{//FM
gps->fm_station_no = 0;
FMfreq = FMreq_MIN - FMreq_STEP;
};
is_autosearching = 1;
break;
*/
case RD_STORE:
if(is_search_all_station||is_autosearching) break;
if(radio_menu_id != RADIO_STORE_MENU)
{
// flashtime = 0;
radio_menu_id = RADIO_STORE_MENU;
if(gps->ps_amfm_flag)
radio_count = gps->ps_am_no;
else
radio_count = gps->ps_fm_no;
g_ui_tmp_msg_cnt = 40;
}
else
{
if(gps->ps_amfm_flag)
{
gps->ps_am_station[radio_count] = AMfreq;
gps->ps_am_no = radio_count;
ps_update_radio(PS_UPDATE_AM_STATION);
}
else
{
gps->ps_fm_station[radio_count] = FMfreq;
gps->ps_fm_no = radio_count;
ps_update_radio(PS_UPDATE_FM_STATION);
};
//switch_radio_station();
//radio_station_changed = 1;
}
/* else
{
radio_menu_id = RADIO_ERR_MENU;
g_ui_tmp_msg_cnt = 20; //6
}
*/
break;
case RD_0:
case RD_1:
case RD_2:
case RD_3:
case RD_4:
case RD_5:
case RD_6:
case RD_7:
case RD_8:
case RD_9:
if(is_search_all_station || is_autosearching) break;
if((radio_menu_id == RADIO_VOL_MENU) || (radio_menu_id == RADIO_BASS_MENU)
|| (radio_menu_id == RADIO_TREBLE_MENU)) break;
g_ui_tmp_msg_cnt = 40 ; //30s
if((radio_menu_id == RADIO_RUN_MENU)||(radio_menu_id == RADIO_ERR_MENU)) //first
{
radio_menu_id = RADIO_DIGIT_MENU;
radio_count = 0;
};
if(radio_count >= 10000) break;
radio_count *= 10;
printf("rd_code=");debug_out_wx(radio_key);printf("\n");
radio_count += ((radio_key&0xff) - RD_0);
printf("radio_count_1=");debug_out_wx(radio_count);printf("\n");
if(radio_menu_id == RADIO_STORE_MENU)
{
if(gps->ps_amfm_flag)
{
if(radio_count >= MAX_AM_STATION)
radio_count = radio_count / 10;
}
else
{
if(radio_count >= MAX_FM_STATION)
radio_count = radio_count / 10;
}
};
printf("radio_count_2=");debug_out_wx(radio_count);printf("\n");
break;
case RD_CLEAR:
radio_count = 0;
break;
case RD_ENTER:
mute_radio(1);
if(radio_menu_id != RADIO_DIGIT_MENU) break;
if((radio_count>=AMreq_MIN)&&(radio_count<=AMreq_MAX))
{
gps->ps_amfm_flag = 1;
AMfreq = radio_count;
//i = search_station_no(radio_count,gps->am_station);
//if(i<30)
// {
// gps->am_station_no = i;
// radio_station_changed = 1;
// }
// else gps->am_station_no +=60;
switch_fmam(gps->ps_amfm_flag);
//mute_radio(0);
ps_update_radio(PS_UPDATE_AMFM_FLAG);
}
else if((radio_count>=FMreq_MIN)&&(radio_count<=FMreq_MAX))
{
gps->ps_amfm_flag = 0;
FMfreq = radio_count;
//i = search_station_no(radio_count, gps->fm_station);
//if(i<30)
//{
// gps->fm_station_no = i;
// radio_station_changed = 1;
//}
//else gps->fm_station_no += 60;
switch_fmam(gps->ps_amfm_flag);
//mute_radio(0);
ps_update_radio(PS_UPDATE_AMFM_FLAG);
}
else
{
if(gps->ps_amfm_flag)
{
if(radio_count < MAX_AM_STATION)
{
gps->ps_am_no = radio_count;
switch_radio_station();
ps_update_radio(PS_UPDATE_AM_NO);
}
else
{
radio_menu_id = RADIO_ERR_MENU;
g_ui_tmp_msg_cnt = 20;
};
}
else
{
if(radio_count < MAX_FM_STATION)
{
gps->ps_fm_no = radio_count;
switch_radio_station();
ps_update_radio(PS_UPDATE_FM_NO);
}
else
{
radio_menu_id = RADIO_ERR_MENU;
g_ui_tmp_msg_cnt = 20;
};
}
}
if(radio_menu_id!=RADIO_ERR_MENU)
{
radio_menu_id = RADIO_RUN_MENU;
g_ui_tmp_msg_cnt = 0;
};
usleep(100000); //100ms
mute_radio(0);
break;
case RD_MUTE:
mute_radio(!radio_is_muted);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -