/*----------------------------------------------------------------------------*/ void fm_rev( void ) { u8 key; #if defined(SPECTRUM_FUNC_ENABLE) set_spectrum_lock(UNLOCK); #endif #if defined(FM_PAUSE_LED_INDICATOR) set_play_flash(LED_FLASH_NOR); #endif my_main_vol(my_music_vol); while (1) { key = get_msg(); #if defined(KEY_PRESS_LED_INDICATOR) key_press_led_indicator(key); #elif defined(CUSTOM_KEY_FEATURE_USE) custom_key_hdlr(key); #endif #if defined(KPL_MSG_COMPATIBLE) kpl_msg_hdlr(key); #endif #if 0 if(key!=0xff) printf(" music_play get_msg %x \r\n",(u16)key); #endif dac_sw_check(); #ifndef FM_BY_PASS dac_out_select(aux_ch_reg); #endif switch (key) { #if defined(K000_HG_898_V001)||defined(USE_STOP_KEY_SHORT_CH_DOWN) case INFO_STOP |KEY_SHORT_UP : goto __CH_DOWN; break; #endif #ifdef USE_STOP_KEY_SHORT_SCAN case INFO_STOP| KEY_SHORT_UP : goto __SCAN_FREQ; #endif #ifdef IR_INFO_EQ_DOWN_SCAN case INFO_EQ_DOWN| KEY_SHORT_UP : if(IR_KEY_Detect){ IR_KEY_Detect = 0; goto __SCAN_FREQ; } break; #endif #ifdef USE_MODE_KEY_LONG_SCAN case INFO_MODE | KEY_LONG : goto __SCAN_FREQ; #endif #ifdef RADIO_MODE_HOT_KEY_ENABLE #ifdef RADIO_MODE_HOT_KEY_LONG_SCAN case INFO_FM_MOD| KEY_LONG : goto __SCAN_FREQ; #endif #endif #ifdef USE_EQ_KEY_SHORT_SCAN case INFO_EQ_UP| KEY_SHORT_UP : goto __SCAN_FREQ; #endif #ifdef USE_EQ_KEY_SHORT_CH_UP case INFO_EQ_UP | KEY_SHORT_UP : goto __CH_DOWN; break; #endif #if 1//def USE_POWER_KEY #ifdef USE_POWER_KEY_SHORT_SCAN case INFO_POWER | KEY_SHORT_UP : #ifdef USE_IR_POWER_KEY_TO_POWER_OFF if(IR_KEY_Detect){ IR_KEY_Detect =0; goto _HOT_KEY_HDLR; } #endif goto __SCAN_FREQ; #endif #endif #if defined(VOL_TUNE_VOL_DEFAULT_TUNE_FREQ_POP) case INFO_CUS_KEY_1 | KEY_SHORT_UP : radio_freq_tune_pop=~radio_freq_tune_pop; radio_tune_timer=12; if(radio_freq_tune_pop){ Disp_Con(DISP_FREQ); } break; #endif #ifdef RADIO_MODE_HOT_KEY_ENABLE #ifdef RADIO_AM_WM_SEL_IN_ONE_KEY #ifdef RADIO_AM_WM_ENABLE case INFO_FM_MOD | KEY_SHORT_UP: if (work_mode == SYS_AMREV){ Set_Curr_Func(SYS_FMREV); FMAM_Mode_Switch_Profile(SYS_FMREV); } else if(work_mode == SYS_FMREV){ Set_Curr_Func(SYS_AMREV); FMAM_Mode_Switch_Profile(SYS_AMREV); } break; #endif #endif #endif #if defined(USE_POWER_KEY_FOR_FM_PLAY) case INFO_POWER | KEY_SHORT_UP : #if defined(USE_IR_LONG_POWER_KEY_TO_FAKE_POWER_OFF) if(IR_KEY_Detect){ IR_KEY_Detect = 0; break; } #endif #ifdef USE_IR_POWER_KEY_TO_POWER_OFF if(IR_KEY_Detect){ IR_KEY_Detect = 0; break; } #endif #elif defined(USE_MODE_LONG_FOR_FM_PLAY) case INFO_MODE| KEY_LONG: #endif case INFO_PLAY | KEY_SHORT_UP : #if defined(FM_PLAY_KEY_PAUSE) #if defined(K722_YJH_722_V001) if(IR_KEY_Detect){ IR_KEY_Detect = 0; break; } #endif #if defined(IR_PLAY_KEY_SCAN_FREQ_ALL) if(IR_KEY_Detect){ IR_KEY_Detect = 0; goto __SCAN_FREQ; } #endif play_status = !play_status; if (play_status) { my_main_vol(my_music_vol); Mute_Ext_PA(UNMUTE); #if defined(FM_PAUSE_LED_INDICATOR) set_play_flash(LED_FLASH_ON); #endif } else{ Mute_Ext_PA(MUTE); my_main_vol(0); #if defined(USE_SPECTRUM_PARTTERN) set_lcd_flash_lock(LOCK); #endif #if defined(FM_PAUSE_LED_INDICATOR) set_play_flash(LED_FLASH_NOR); #endif } #if defined(PAUSE_FLASH_WHOLE_SCREEN) if (play_status == MUSIC_PAUSE) set_led_flash_tpye(2); else{ set_led_flash_tpye(0); } #endif Disp_Con(DISP_FREQ); break; #endif if(IR_KEY_Detect){ IR_KEY_Detect =0; #if defined(IR_PLAY_KEY_SCAN_FREQ_DISABLE) break; #elif defined(IR_PLAY_SHORT_CH_UP) goto __CH_UP; #else goto __SCAN_FREQ; #endif } else{ #if defined(ADKEY_PLAY_SHORT_SCAN_FRE_DISABLE) break; #endif #ifdef ADKEY_PLAY_SHORT_SCAN_FRE goto __SCAN_FREQ; #else #if defined( ADKEY_NEXT_ADJST_FREQ) goto __CH_UP; #endif #if defined(ADKEY_PLAY_SHORT_ADJ_CH) goto __CH_UP; #endif #endif } break; #if defined(K120_YJH_120_V001)||defined(K000_HG_898_V001)||defined(EQ_DOWN_SCAN_ALL) case INFO_EQ_DOWN| KEY_SHORT_UP : #if 1//defined(EQ_DOWN_SCAN_ALL) goto __SCAN_FREQ; #endif #ifndef K722_YJH_722_V001 goto __FRE_DOWN; #endif #endif case INFO_PLAY | KEY_LONG : if(IR_KEY_Detect){ IR_KEY_Detect =0; #if defined(IR_PLAY_KEY_LONG_SCAN_FREQ) goto __SCAN_FREQ; #else break; #endif } #ifdef USE_LONG_PLAY_KEY_TO_SWITCH_MODE goto _HOT_KEY_HDLR; #endif #ifdef AUX_MODE_HOT_KEY_USE_PLAY_LONG goto _HOT_KEY_HDLR; #endif #ifdef USE_EQ_KEY_SHORT_SCAN break; #endif #ifdef ADKEY_PLAY_SHORT_SCAN_FRE break; #endif __SCAN_FREQ: #if defined(USE_SPECTRUM_PARTTERN) set_lcd_flash_lock(LOCK); #endif #ifdef DISP_SCH_AT_FM_SCAN Disp_Con(DISP_SCH); delay_10ms(60); #endif scan_fre(); #if defined(USE_SPECTRUM_PARTTERN) set_lcd_flash_lock(UNLOCK); #endif if(IR_KEY_Detect){ IR_KEY_Detect =0; //break; } //flush_low_msg(); fre_channl = 1; get_channl(fre_channl); //Disp_Con(DISP_FREQ); break; #if RTC_ENABLE case INFO_ALM_BELL : ///<闹钟响消息,进入闹钟循环 sys_clock_pll(); dac_out_select(DAC_DECODE); if(alm_bell_mode()) { dac_out_select(DAC_AMUX0); return; } dac_out_select(DAC_AMUX0); break; #endif case INFO_HALF_SECOND : #if ((USE_DEVICE == MEMORY_STYLE)&&(FAT_MEMORY)) updata_fat_memory(); #endif #if defined(AD_MEASURE_TEMP_FUNC) adc_diode_temp_measure_hdlr(); #endif #ifdef DISP_BACKLIGHT_AUTO_SAVE_POWER Disp_BL_time_out(); #endif #ifdef USE_USB_HOTPLUG_FUNC usb_hotplug_hdlr(); #endif #ifdef MUTE_EXAMP_AT_FM_NEXT_PREV_IMPROVE if(mute_release_timer>0) mute_release_timer--; if(mute_release_timer==0){ my_main_vol(my_music_vol); Mute_Ext_PA(UNMUTE); } #endif #if defined(VOL_TUNE_VOL_DEFAULT_TUNE_FREQ_POP) if(radio_tune_timer>0){ radio_tune_timer--; if(radio_tune_timer==0){ radio_freq_tune_pop=0; Disp_Con(DISP_FREQ); } if(radio_freq_tune_pop){ pop_spark=~pop_spark; if(pop_spark){ Disp_Con(DISP_PWR_OFF); } else{ Disp_Con(DISP_FREQ); } } } #endif #ifdef VOL_ADJ_SPARK_LED if(vol_adj_spark_bit){ vol_adj_spark_bit=0; restore_led_flash_mod(last_led_play_mod); } #endif if (return_cnt < RETURN_TIME) { return_cnt++; } #if defined(TIME_FORCE_SHOW_ON_SCREEN) if (DISP_FREQ == curr_menu){ if (time_show_return_cnt>RETURN_TIME_SHOW_TIME){ get_curr_date(); Disp_Con(DISP_RTC_POINT); break; } else{ #if defined(MANUAL_SWITCH_TIME_DISPLAY) Disp_Con(DISP_FREQ); #else if(DISP_RTC != curr_menu){ time_show_return_cnt++; } #endif } } #endif if (RETURN_TIME == return_cnt) { #ifdef SUPPORT_PT2313 clr_aud_effect_state(); #endif #if defined(LED_DRV_USE_SM1628) led_spark_protect=0; #endif if (DISP_DWORD_NUMBER == curr_menu) { goto _PICK_CH; } else if (DISP_FREQ != curr_menu) Disp_Con(DISP_FREQ); #if defined(NEW_VOLUME_KEY_FEATURE)||defined(VOL_TUNE_NEW_VOLUME_KEY_FEATURE) if(new_vol_feature){ new_vol_feature =0; if(last_disp_menu!=DISP_NULL) Disp_Con(last_disp_menu); } #endif } #if defined(USE_BAT_MANAGEMENT) bmt_hdlr(); #endif Disp_Update(); break; case INFO_PICK_FRE | KEY_LONG: save_fre(frequency); Disp_Con(DISP_FREQ); break; case INFO_PICK_FRE | KEY_SHORT_UP: _PICK_CH: if (DISP_DWORD_NUMBER != curr_menu) { break; } if (( cfilenum <= MAX_FRE) && (cfilenum >= MIN_FRE)) { frequency = cfilenum; cfilenum = 0; set_fre(frequency, 1); } else if ((cfilenum) && (cfilenum<=all_channl)) { fre_channl = cfilenum; get_channl(fre_channl); } cfilenum = 0; Disp_Con(DISP_FREQ); write_info(MEM_FRE,frequency - MIN_FRE); break; #if defined(VOL_TUNE_FREQ_VOL)||defined(VOL_TUNE_FREQ_ONLY)||defined(VOL_TUNE_NEW_VOLUME_KEY_FEATURE)||defined(VOL_TUNE_VOL_DEFAULT_TUNE_FREQ_POP) case INFO_PLUS: frequency += 2; goto __FRE_DOWN; case INFO_MINUS: goto __FRE_DOWN; break; #endif case INFO_NEXT_FIL | KEY_SHORT_UP: #if defined(NEW_VOLUME_KEY_FEATURE) break; case INFO_NEXT_FIL : case INFO_NEXT_FIL | KEY_HOLD: if(new_vol_feature){ goto _HOT_KEY_HDLR; } #endif if(IR_KEY_Detect){ IR_KEY_Detect =0; #if defined(IR_NEXT_PREV_SHORT_ADJ_CH) goto __CH_UP; #elif defined( IR_NEXT_PREV_DO_NOTHING) break; #elif defined( IR_NEXT_PREV_SHORT_AUTO_SCAN) goto __SCAN_UP; #else frequency += 2; goto __FRE_DOWN; #endif } else{ #if defined(K722_YJH_722_V001) if(fre_channl==1){ frequency += 2; goto __FRE_DOWN; } else{ goto __CH_UP; } #endif #if defined( ADKEY_NEXT_ADJST_FREQ) frequency += 2; goto __FRE_DOWN; #elif defined(ADKEY_NEXT_PREV_SHORT_AUTO_SCAN) goto __SCAN_UP; #else goto __CH_UP; #endif } case INFO_PREV_FIL | KEY_SHORT_UP: #if defined(NEW_VOLUME_KEY_FEATURE) break; case INFO_PREV_FIL : case INFO_PREV_FIL | KEY_HOLD: if(new_vol_feature){ goto _HOT_KEY_HDLR; } #endif if(IR_KEY_Detect){ IR_KEY_Detect =0; #if defined(IR_NEXT_PREV_SHORT_ADJ_CH) goto __CH_DOWN; #elif defined( IR_NEXT_PREV_DO_NOTHING) break; #elif defined(IR_NEXT_PREV_SHORT_AUTO_SCAN) goto __SCAN_DOWN; #else goto __FRE_DOWN; #endif } else{ #if defined(K722_YJH_722_V001) if(fre_channl==1){ goto __FRE_DOWN; } else{ goto __CH_DOWN; } #endif #if defined( ADKEY_NEXT_ADJST_FREQ) goto __FRE_DOWN; #elif defined(ADKEY_NEXT_PREV_SHORT_AUTO_SCAN) goto __SCAN_DOWN; #else goto __CH_DOWN; #endif } __FRE_DOWN: frequency--; #ifdef MUTE_EXAMP_AT_FM_NEXT_PREV #ifdef MUTE_EXAMP_AT_FM_NEXT_PREV_IMPROVE if(mute_release_timer==0) #endif { Mute_Ext_PA(MUTE); my_main_vol(0); } #endif #ifdef RADIO_AM_WM_ENABLE if(work_mode==SYS_FMREV){ if ( frequency > MAX_FRE) { frequency = MIN_FRE; } else if (frequency < MIN_FRE) { frequency = MAX_FRE; } set_fre(frequency, 1); write_info(MEM_FRE,frequency - MIN_FRE); } else { if ( frequency > AM_MAX_FRE) { frequency = AM_MIN_FRE; } else if (frequency < AM_MIN_FRE) { frequency = AM_MAX_FRE; } set_fre(frequency, 1); Save_AM_Freq((frequency - AM_MIN_FRE),(AM_FREQ_MAGIC_NUM)); } #else if ( frequency > MAX_FRE) { frequency = MIN_FRE; } else if (frequency < MIN_FRE) { frequency = MAX_FRE; } set_fre(frequency, 1); write_info(MEM_FRE,frequency - MIN_FRE); #endif Disp_Con(DISP_FREQ); #ifdef MUTE_EXAMP_AT_FM_NEXT_PREV #ifdef MUTE_EXAMP_AT_FM_NEXT_PREV_IMPROVE mute_release_timer=2; #else my_main_vol(my_music_vol); Mute_Ext_PA(UNMUTE); #endif #endif //delay_ms(20); break; #if defined(USE_MODE_LONG_FOR_FM_CH_UP) case INFO_MODE| KEY_LONG: #endif case INFO_CH_NEXT | KEY_SHORT_UP: case INFO_CH_UP| KEY_SHORT_UP: __CH_UP: fre_channl += 2; case INFO_CH_PREV | KEY_SHORT_UP: case INFO_CH_DOWN| KEY_SHORT_UP: __CH_DOWN: fre_channl--; if (fre_channl > all_channl) { fre_channl = 1; } else if (!fre_channl) { fre_channl = all_channl; } get_channl(fre_channl); Disp_Con(DISP_FREQ); flush_low_msg(); break; #ifdef SEMI_AUTO_SCAN_FREQ #if defined(K722_YJH_722_V001) case INFO_PLAY_MODE | KEY_SHORT_UP: frequency += 2; goto __FRE_DOWN; #endif case INFO_CH_UP| KEY_HOLD: case INFO_NEXT_FIL | KEY_HOLD: if(IR_KEY_Detect){ IR_KEY_Detect =0; #if defined(IR_NEXT_PREV_HOLD_AUTO_SCAN) #elif defined(IR_NEXT_PREV_KEY_HOLD_DO_NOTHING) break; #else break; #endif } else{ #if defined(ADKEY_NEXT_PREV_HOLD_AUTO_SCAN) //goto __SCAN_UP; #elif defined(ADKEY_NEXT_PREV_HOLD_FREQ_ADJ) frequency += 2; goto __FRE_DOWN; #elif defined(ADKEY_NEXT_PREV_HOLD_CH_SEL) goto __CH_UP; #else goto _HOT_KEY_HDLR; #endif } case INFO_PLUS | KEY_SHORT_UP: #if defined(INDEPENDENT_KEY_TUNE_FREQ) frequency += 2; goto __FRE_DOWN; #endif case INFO_PLUS | KEY_HOLD: #if defined(INDEPENDENT_KEY_FAST_TUNE_FREQ) frequency += 2; goto __FRE_DOWN; #endif __SCAN_UP: auto_scan(SEARCH_UP); break; #if defined(K722_YJH_722_V001) case INFO_EQ_UP | KEY_SHORT_UP: goto __FRE_DOWN; #endif case INFO_CH_DOWN| KEY_HOLD: case INFO_PREV_FIL | KEY_HOLD: if(IR_KEY_Detect){ IR_KEY_Detect =0; #if defined(IR_NEXT_PREV_HOLD_AUTO_SCAN) #elif defined(IR_NEXT_PREV_KEY_HOLD_DO_NOTHING) break; #else break; #endif } else{ #if defined(ADKEY_NEXT_PREV_HOLD_AUTO_SCAN) //goto __SCAN_DOWN; #elif defined(ADKEY_NEXT_PREV_HOLD_FREQ_ADJ) goto __FRE_DOWN; #elif defined(ADKEY_NEXT_PREV_HOLD_CH_SEL) goto __CH_DOWN; #else goto _HOT_KEY_HDLR; #endif } case INFO_MINUS|KEY_SHORT_UP: #if defined(INDEPENDENT_KEY_TUNE_FREQ) goto __FRE_DOWN; #endif case INFO_MINUS| KEY_HOLD: #if defined(INDEPENDENT_KEY_FAST_TUNE_FREQ) goto __FRE_DOWN; #endif __SCAN_DOWN: auto_scan(SEARCH_DN); break; #endif default : _HOT_KEY_HDLR: if (!ap_handle_hotkey(key)) return; } } }
void Show_Main(char n) { long min, max; char s; Disp_Clear(); //clear display //blink name: if(!Hide) { if(n == MODE_FIF) Disp_PutChar('f'); //display "f" else Disp_PutString(Str_V[n]); //show value name } long v = Count_GetValue(); //read counter if(Count_Ready()) Count_Start(); //start counter char p = (Scale & ~AUTO_SCALE) + 1; //DP position switch(n) { #ifdef HI_RES case MODE_F: case MODE_FIF: case MODE_P: case MODE_D: s = 3; min = 100000000L; max = 999999999L; break; case MODE_R: s = 5; min = 1000000L; max = 9999999L; break; default: s = 4; //first position min = 10000000L; //min value for auto scale max = 99999999L; //max value for auto scale #else case MODE_F: case MODE_FIF: case MODE_P: case MODE_D: s = 3; min = 10000000L; max = 99999999L; break; case MODE_R: s = 5; min = 100000L; max = 999999L; break; default: s = 4; //first position min = 1000000L; //min value for auto scale max = 9999999L; //max value for auto scale #endif } //blink value: //if(!Hide) Disp_Val(s, p, v); //show value Disp_Update(); //update display if(Scale & AUTO_SCALE) //if auto scale { if(v >= 0) { if(v < min) MoveDP(KEY_DN); //move DP left if(v > max) MoveDP(KEY_UP); //move DP right } else { if(v > -min) MoveDP(KEY_DN); //move DP left if(v < -max) MoveDP(KEY_UP); //move DP right } Scale |= AUTO_SCALE; //restore auto scale flag Count_SetScale(Scale); //update scale } }
void ipone_hdlr() { u8 key; #if defined(IPHONE_PP_FLASH) bool PP_FLASH_LED = 0; #endif Disp_Con(DISP_IPOD); #if defined(TURN_ON_MUSIC_WHEN_IPHONE_DOCK) delay_10ms(120); IPOD_STOP; delay_10ms(1); IPOD_RELEASE; delay_10ms(2); IPOD_PLAY; delay_10ms(1); IPOD_RELEASE; delay_10ms(10); #endif #if defined(IPONE_LINE_IN_CHANNEL_USE_AUX0) aux_channel_crosstalk_improve(DAC_AMUX0); #else aux_channel_crosstalk_improve(DAC_AMUX1); #endif Mute_Ext_PA(UNMUTE); my_main_vol(my_music_vol); while (1) { key = get_msg(); #if 0 if(key!=0xff) printf(" ipone_hdlr %x \r\n",(u16)key); #endif dac_out_select(aux_ch_reg); dac_sw_check(); switch (key) { case INFO_PLAY | KEY_SHORT_UP : play_status = !play_status; #if defined(IPHONE_CTRL_FAKE) if (play_status) { my_main_vol(my_music_vol); Mute_Ext_PA(UNMUTE); } else{ Mute_Ext_PA(MUTE); my_main_vol(0); } #endif IPOD_PLAY; delay_10ms(1); IPOD_RELEASE; Disp_Con(DISP_IPOD); break; case INFO_NEXT_FIL | KEY_SHORT_UP: IPOD_NEXT_TRACK; delay_10ms(1); IPOD_RELEASE; break; case INFO_PREV_FIL | KEY_SHORT_UP: IPOD_PREVIOUS_TRACK; delay_10ms(1); IPOD_RELEASE; break; case INFO_HALF_SECOND : #ifdef USE_USB_HOTPLUG_FUNC usb_hotplug_hdlr(); #endif #ifdef DISP_BACKLIGHT_AUTO_SAVE_POWER Disp_BL_time_out(); #endif if (return_cnt < RETURN_TIME) { return_cnt++; } #if defined(TIME_FORCE_SHOW_ON_SCREEN) if (time_show_return_cnt>RETURN_TIME_SHOW_TIME){ get_curr_date(); Disp_Con(DISP_RTC_POINT); break; } else{ #if defined(MANUAL_SWITCH_TIME_DISPLAY) Disp_Con(DISP_IPOD); #else if(DISP_RTC != curr_menu){ time_show_return_cnt++; } #endif } #endif if (RETURN_TIME == return_cnt) { #ifdef SUPPORT_PT2313 clr_aud_effect_state(); #endif if (DISP_DWORD_NUMBER == curr_menu) { cfilenum = 0; } if (DISP_IPOD != curr_menu) Disp_Con(DISP_IPOD); } #if defined(IPHONE_PP_FLASH) if(!play_status){ PP_FLASH_LED=~PP_FLASH_LED; if(PP_FLASH_LED){ Disp_Con(DISP_CLR); } else{ Disp_Con(DISP_IPOD); } } #endif #if defined(USE_BAT_MANAGEMENT) bmt_hdlr(); #endif Disp_Update(); break; case INFO_VOL_PLUS: case INFO_VOL_PLUS | KEY_HOLD : #if 1//!defined(INDEPENDENT_VOLUME_KEY) //case INFO_NEXT_FIL: //case INFO_NEXT_FIL| KEY_HOLD : // if(IR_KEY_Detect){ // IR_KEY_Detect =0; // break; // } #endif IPOD_VOLUME_UP; delay_10ms(1); IPOD_RELEASE; delay_10ms(1); goto __HOTKEY_HDLR; break; case INFO_VOL_MINUS: case INFO_VOL_MINUS | KEY_HOLD : #if 1//!defined(INDEPENDENT_VOLUME_KEY) //case INFO_PREV_FIL: //case INFO_PREV_FIL| KEY_HOLD : // if(IR_KEY_Detect){ // IR_KEY_Detect =0; // break; // } #endif IPOD_VOLUME_DOWN; delay_10ms(1); IPOD_RELEASE; delay_10ms(1); goto __HOTKEY_HDLR; break; default : __HOTKEY_HDLR: if (!ap_handle_hotkey(key)) return; } } }
/*----------------------------------------------------------------------------*/ void blue_tooth_main(void) { u8 key; #ifdef TURN_OFF_PLAY_STATUS_LED_IN_BLUETOOTH_MODE set_play_flash(LED_FLASH_STOP); #endif #ifdef K000_XC_BC_BT_V001 play_status =MUSIC_PAUSE; #endif while (1) { key = get_msg(); #if 0 if(key!=0xFF) printf( "---->---deal_aux %x \r\n",(u16)key); #endif #if defined(KEY_PRESS_LED_INDICATOR) key_press_led_indicator(key); #elif defined(CUSTOM_KEY_FEATURE_USE) custom_key_hdlr(key); #endif #ifdef BLUE_TOOTH_GPIO_STATUS if(blue_tooth_detect){ blue_tooth_detect=0; bt_disp_status_hdlr(); } #endif #if defined(KPL_MSG_COMPATIBLE) kpl_msg_hdlr(key); #endif dac_sw_check(); switch (key) { #ifdef BLUE_TOOTH_DETECTION_FOR_POWER_OFF case INFO_POWER|KEY_SHORT_UP: sys_power_down(); break; #endif #ifdef PP_KEY_LONG_CONFIG_BT case INFO_PLAY | KEY_LONG: blue_tooth_key_hdlr(BT_CONFIG_HOLD); break; #endif case INFO_PLAY | KEY_HOLD: #ifdef PP_KEY_LONG_CONFIG_BT break; //blue_tooth_key_hdlr(BT_CONFIG_HOLD); #else blue_tooth_key_hdlr(BT_PP_HOLD); #endif break; case INFO_PLAY | KEY_SHORT_UP : blue_tooth_key_hdlr(BT_PP); #ifndef BLUE_TOOTH_NO_SYS_MUTE_CTRL #if !defined(BLUE_TOOTH_BYPASS) if (play_status == MUSIC_PAUSE) { play_status =MUSIC_PLAY; my_main_vol(my_music_vol); #ifndef BLUE_TOOTH_PP_NOT_EXT_MUTE Mute_Ext_PA(UNMUTE); #endif } else if (play_status == MUSIC_PLAY){ play_status =MUSIC_PAUSE; #ifndef BLUE_TOOTH_PP_NOT_EXT_MUTE Mute_Ext_PA(MUTE); #endif my_main_vol(0); } #endif #endif Disp_Con(DISP_BLUE_TOOTH); break; case INFO_NEXT_FIL | KEY_SHORT_UP: blue_tooth_key_hdlr(BT_NEXT_FILE); break; case INFO_PREV_FIL | KEY_SHORT_UP: blue_tooth_key_hdlr(BT_PREV_FILE); break; case INFO_HALF_SECOND : #ifdef USE_USB_HOTPLUG_FUNC usb_hotplug_hdlr(); #endif #ifdef BLUE_TOOTH_MUTE_DETECT_FUNC blue_tooth_mute_detect(); #endif #if defined(USE_BAT_MANAGEMENT) bmt_hdlr(); #endif #ifdef DISP_BACKLIGHT_AUTO_SAVE_POWER Disp_BL_time_out(); #endif #ifdef BLUE_TOOTH_LINK_IDLE_POWER_OFF bt_link_idle_hdlr(); #endif if(bt_key_release_cnt--==0){ #ifdef PP_KEY_HOLD_CONFIG_BT if(key_release_hdlr==BT_CONFIG_HOLD){ blue_tooth_key_hdlr(BT_CONFIG_HOLD_RELEASE); #else if(key_release_hdlr==BT_PP_HOLD){ blue_tooth_key_hdlr(BT_PP_HOLD_RELEASE); #endif } else if((key_release_hdlr==BT_VOL_UP_HOLD)||(key_release_hdlr==BT_VOL_DOWN_HOLD)){ blue_tooth_key_hdlr(BT_VOL_HOLD_RELEASE); } } #ifdef USE_BT_ACTIVATED_PIN if(ACTIVATED_PIN_cnt--==0){ BT_RST_OFF(); } #endif #ifdef BT_DISP_CONNECT_TIME bt_disp_time_hdlr(); #endif #if defined(LINE_IN_PLAY_KEY_PAUSE) if(play_status==MUSIC_PAUSE){ #ifdef LINE_IN_FLASH_WHOLE_SCREEN aux_screen_flash_bit=~aux_screen_flash_bit; if(aux_screen_flash_bit){ Disp_Con(DISP_BLUE_TOOTH); } else{ Disp_Con(DISP_PWR_OFF); break; } #endif } #endif #if defined(TIME_FORCE_SHOW_ON_SCREEN) if(DISP_BLUE_TOOTH == curr_menu){ if (time_show_return_cnt>RETURN_TIME_SHOW_TIME){ get_curr_date(); Disp_Con(DISP_RTC_POINT); break; } else{ #if defined(MANUAL_SWITCH_TIME_DISPLAY) Disp_Con(DISP_BLUE_TOOTH); #else if(DISP_RTC != curr_menu){ time_show_return_cnt++; } #endif } } #endif if (return_cnt < RETURN_TIME) { return_cnt++; } else if (RETURN_TIME == return_cnt) { if (DISP_BLUE_TOOTH != curr_menu) Disp_Con(DISP_BLUE_TOOTH); #if defined(CUSTOM_MAIN_DISP_VOL) if (DISP_BLUE_TOOTH== curr_menu){ Disp_Con(DISP_VOL); } #endif } if (DISP_BLUE_TOOTH == curr_menu) Disp_Con(DISP_BLUE_TOOTH); Disp_Update(); break; #ifdef BLUE_TOOTH_BYPASS case INFO_VOL_PLUS: case INFO_VOL_PLUS | KEY_HOLD : case INFO_NEXT_FIL: case INFO_NEXT_FIL| KEY_HOLD : case INFO_VOL_MINUS: case INFO_VOL_MINUS | KEY_HOLD : case INFO_PREV_FIL: case INFO_PREV_FIL| KEY_HOLD : break; #else #if defined(NEW_VOLUME_KEY_FEATURE) case INFO_NEXT_FIL : case INFO_NEXT_FIL | KEY_SHORT_UP: case INFO_NEXT_FIL | KEY_HOLD: if(!new_vol_feature){ break; } #else case INFO_VOL_PLUS: break; case INFO_VOL_PLUS| KEY_SHORT_UP: #ifdef BLUE_TOOTH_INDEPENDENT_VOLUME_KEY blue_tooth_key_hdlr(BT_VOL_UP); break; #endif case INFO_VOL_PLUS | KEY_HOLD : #if !defined(INDEPENDENT_VOLUME_KEY) //case INFO_NEXT_FIL: case INFO_NEXT_FIL| KEY_HOLD : if(IR_KEY_Detect){ IR_KEY_Detect =0; break; } #endif #endif #ifdef SUPPORT_PT2313 if((audio_effect_state>0)){ audio_effect_hdlr(0x01); flush_low_msg(); break; } #endif #ifndef BLUE_TOOTH_INDEPENDENT_VOLUME my_music_vol += 2; #endif blue_tooth_key_hdlr(BT_VOL_UP_HOLD); goto __VOL_HDLR; #if defined(NEW_VOLUME_KEY_FEATURE) case INFO_PREV_FIL : case INFO_PREV_FIL | KEY_SHORT_UP: case INFO_PREV_FIL | KEY_HOLD: if(!new_vol_feature){ break; } #else case INFO_VOL_MINUS: break; case INFO_VOL_MINUS| KEY_SHORT_UP: #ifdef BLUE_TOOTH_INDEPENDENT_VOLUME_KEY blue_tooth_key_hdlr(BT_VOL_DOWN); break; #endif case INFO_VOL_MINUS | KEY_HOLD : #if !defined(INDEPENDENT_VOLUME_KEY) //case INFO_PREV_FIL: case INFO_PREV_FIL| KEY_HOLD : if(IR_KEY_Detect){ IR_KEY_Detect =0; break; } #endif #endif #ifdef SUPPORT_PT2313 if((audio_effect_state>0)){ audio_effect_hdlr(0x02); flush_low_msg(); break; } #endif blue_tooth_key_hdlr(BT_VOL_DOWN_HOLD); __VOL_HDLR: #ifndef BLUE_TOOTH_INDEPENDENT_VOLUME if(my_music_vol) my_music_vol--; if (my_music_vol > MAX_VOL) { my_music_vol = MAX_VOL; } #if defined(LINE_IN_PLAY_KEY_PAUSE) if (play_status == MUSIC_PAUSE) { play_status =MUSIC_PLAY; } #endif clear_super_mute_lock(); write_info(MEM_VOL,my_music_vol); my_main_vol(my_music_vol); Disp_Con(DISP_VOL); #endif break; #endif #if RTC_ENABLE case INFO_ALM_BELL : ///<闹钟响消息,进入闹钟循环 sys_clock_pll(); dac_out_select(DAC_DECODE); if(alm_bell_mode()) { dac_out_select(DAC_AMUX0); return; } dac_out_select(DAC_AMUX0); break; #endif default : if (!ap_handle_hotkey(key)) return; } } } /*----------------------------------------------------------------------------*/ /**@brief AUX功能入口 @param 无 @return 无 @note void aux_function(void) */ /*----------------------------------------------------------------------------*/ void blue_tooth_hdlr(void) { #if 1//defined(LINE_IN_PLAY_KEY_PAUSE) play_status =MUSIC_PLAY; #endif #ifdef BLUE_TOOTH_MUTE_DETECT_FUNC bluetooth_mute_detect=0; #endif #ifdef BT_DISP_CONNECT_TIME link_sec =0; link_min =0; link_hour =0; #endif set_play_flash(LED_FLASH_ON); Disp_Con(DISP_BLUE_TOOTH); PT1 = 1; //timer1 interrupt 低优先级 flush_low_msg(); #if SDMMC_CMD_MODE sd_chk_ctl(SET_SD_L_CHK); #endif main_vol(0); blue_tooth_init(); set_max_vol(MAX_ANALOG_VOL, MAX_DIGITAL_VOL); //设置AUX模式的音量上限 #ifdef SUPPORT_PT2313 #ifdef BT_USE_AUX_0 aux_channel_crosstalk_improve(DAC_AMUX0); //4P24,P25 AUX_IN #else aux_channel_crosstalk_improve(DAC_AMUX1);//4 P26,P27 AUX_IN #endif PT2313_Config(MP3_CHAN,CHAN_ADJ); my_main_vol(my_music_vol); #elif defined(BLUE_TOOTH_BYPASS)||defined(BLUE_TOOTH_PATH_DIRECT_IN_PA) dac_out_select(DAC_DECODE); my_main_vol(0); #else #ifdef BT_USE_AUX_0 aux_channel_crosstalk_improve(DAC_AMUX0); //4P24,P25 AUX_IN #else aux_channel_crosstalk_improve(DAC_AMUX1);//4 P26,P27 AUX_IN #endif my_main_vol(my_music_vol); #endif #ifdef FIX_VOL_TO_MAX my_main_vol(30); #endif sysclock_div2(1); Mute_Ext_PA(UNMUTE); blue_tooth_main(); main_vol_set(0, CHANGE_VOL_NO_MEM); sys_clock_pll(); Mute_Ext_PA(MUTE); #ifdef BLUETOOTH_GPIO_CTRL BT_PWR_OFF(); #endif #if SDMMC_CMD_MODE sd_chk_ctl(SET_SD_H_CHK); #endif }
void deal_aux( void ) { u8 key; #if defined(K755_JinYeHeLi_755_V001)||defined(K755_AnJieEr_755_V001) set_play_flash(LED_FLASH_SLOW); #endif #if defined(AUX_PAUSE_LED_INDICATOR_FLASH_WHEN_PLAY) set_play_flash(LED_FLASH_NOR); #endif #if defined(SPECTRUM_FUNC_ENABLE) set_spectrum_lock(UNLOCK); #endif my_main_vol(my_music_vol); while (1) { key = get_msg(); #if 0 if(key!=0xFF) printf( "---->---deal_aux %x \r\n",(u16)key); #endif dac_out_select(aux_ch_reg); #if defined(KEY_PRESS_LED_INDICATOR) key_press_led_indicator(key); #elif defined(CUSTOM_KEY_FEATURE_USE) custom_key_hdlr(key); #endif #if defined(KPL_MSG_COMPATIBLE) kpl_msg_hdlr(key); #endif dac_sw_check(); switch (key) { #ifdef USE_IR_LONG_POWER_KEY_TO_FAKE_POWER_OFF case INFO_POWER | KEY_LONG: if(IR_KEY_Detect){ goto _HOT_KEY_HDLR; } break; #endif #if defined(LINE_IN_PLAY_KEY_PAUSE) #if 1//defined(USE_ONLY_POWER_HOLD_CTRL) #if defined(USE_POWER_KEY_FOR_AUX_PLAY) case INFO_POWER | KEY_SHORT_UP : #ifdef USE_IR_LONG_POWER_KEY_TO_FAKE_POWER_OFF if(IR_KEY_Detect){ IR_KEY_Detect=0; break; } case INFO_PLAY | KEY_SHORT_UP : #endif #ifdef USE_IR_POWER_KEY_TO_POWER_OFF if(IR_KEY_Detect){ goto _HOT_KEY_HDLR; } case INFO_PLAY | KEY_SHORT_UP : #endif #else case INFO_PLAY | KEY_SHORT_UP : #endif #else case INFO_PLAY | KEY_SHORT_UP : #endif #ifdef K722_YJH_722_V001 if(IR_KEY_Detect){ IR_KEY_Detect = 0; break; } #endif if (play_status == MUSIC_PAUSE) { play_status =MUSIC_PLAY; my_main_vol(my_music_vol); #ifndef NO_AUX_MUTE_WHEN_PAUSE Mute_Ext_PA(UNMUTE); #endif #if defined(USE_SPECTRUM_PARTTERN) set_lcd_flash_lock(UNLOCK); #endif #if defined(AUX_PAUSE_LED_INDICATOR) set_play_flash(LED_FLASH_ON); #elif defined(AUX_PAUSE_LED_INDICATOR_FLASH_WHEN_PLAY) set_play_flash(LED_FLASH_NOR); #endif #if defined(SPECTRUM_FUNC_ENABLE) set_spectrum_lock(UNLOCK); #endif } else if (play_status == MUSIC_PLAY){ play_status =MUSIC_PAUSE; #ifndef NO_AUX_MUTE_WHEN_PAUSE Mute_Ext_PA(MUTE); #endif my_main_vol(0); #if defined(USE_SPECTRUM_PARTTERN) set_lcd_flash_lock(LOCK); #endif #if defined(AUX_PAUSE_LED_INDICATOR) set_play_flash(LED_FLASH_FAST); #elif defined(AUX_PAUSE_LED_INDICATOR_FLASH_WHEN_PLAY) set_play_flash(LED_FLASH_ON); #endif #if defined(SPECTRUM_FUNC_ENABLE) set_spectrum_lock(LOCK); #endif } #if defined(PAUSE_FLASH_WHOLE_SCREEN) if (play_status == MUSIC_PAUSE) set_led_flash_tpye(2); else{ set_led_flash_tpye(0); } #endif Disp_Con(DISP_AUX); break; #endif #ifdef ADC_DETECT_LINE_IN case MSG_AUX_IN : sys_printf(" MSG_AUX_IN"); my_main_vol(my_music_vol); Mute_Ext_PA(UNMUTE); break; case MSG_AUX_OUT : sys_printf(" MSG_AUX_OUT"); Mute_Ext_PA(MUTE); main_vol(0); break; #endif #ifdef USE_AUX_2 case INFO_MODE | KEY_SHORT_UP: if(aux_2_sel==0){ aux_2_sel =1; Set_Curr_Func(AUX_2_DEV); set_play_flash(LED_FLASH_ON); PT2313_Config(AUX_CHAN,CHAN_ADJ); } else{ aux_2_sel =0; goto _HOT_KEY_HDLR; } break; case INFO_AUX_MOD | KEY_SHORT_UP: aux_2_sel=~aux_2_sel; if(aux_2_sel){ Set_Curr_Func(AUX_2_DEV); PT2313_Config(AUX_CHAN,CHAN_ADJ); } else{ Set_Curr_Func(AUX_DEV); PT2313_Config(MP3_CHAN,CHAN_ADJ); } set_play_flash(LED_FLASH_ON); break; #endif case INFO_HALF_SECOND : #if ((USE_DEVICE == MEMORY_STYLE)&&(FAT_MEMORY)) updata_fat_memory(); #endif #if defined(AD_MEASURE_TEMP_FUNC) adc_diode_temp_measure_hdlr(); #endif #ifdef USE_USB_HOTPLUG_FUNC usb_hotplug_hdlr(); #endif #ifdef VOL_ADJ_SPARK_LED if(vol_adj_spark_bit){ vol_adj_spark_bit=0; restore_led_flash_mod(last_led_play_mod); } #endif #ifdef DISP_BACKLIGHT_AUTO_SAVE_POWER Disp_BL_time_out(); #endif if (return_cnt < RETURN_TIME) { return_cnt++; } #if defined(LINE_IN_PLAY_KEY_PAUSE) if(play_status==MUSIC_PAUSE){ #ifdef LINE_IN_FLASH_WHOLE_SCREEN aux_screen_flash_bit=~aux_screen_flash_bit; if(aux_screen_flash_bit){ Disp_Con(DISP_AUX); } else{ Disp_Con(DISP_PWR_OFF); break; } #endif } #endif #if defined(TIME_FORCE_SHOW_ON_SCREEN) if(DISP_AUX == curr_menu){ if (time_show_return_cnt>RETURN_TIME_SHOW_TIME){ get_curr_date(); Disp_Con(DISP_RTC_POINT); break; } else{ #if defined(MANUAL_SWITCH_TIME_DISPLAY) Disp_Con(DISP_AUX); #else if(DISP_RTC != curr_menu){ time_show_return_cnt++; } #endif } } #endif if (RETURN_TIME == return_cnt) { #ifdef SUPPORT_PT2313 clr_aud_effect_state(); #endif #if defined(LED_DRV_USE_SM1628) led_spark_protect=0; #endif if (DISP_DWORD_NUMBER == curr_menu) { cfilenum = 0; } if (DISP_AUX != curr_menu) Disp_Con(DISP_AUX); #if defined(CUSTOM_MAIN_DISP_VOL) if (DISP_AUX== curr_menu){ Disp_Con(DISP_VOL); } #endif } #if defined(USE_BAT_MANAGEMENT) bmt_hdlr(); #endif Disp_Update(); break; #if defined(NEW_VOLUME_KEY_FEATURE) case INFO_NEXT_FIL : case INFO_NEXT_FIL | KEY_SHORT_UP: case INFO_NEXT_FIL | KEY_HOLD: if(!new_vol_feature){ break; } #else case INFO_VOL_PLUS: case INFO_VOL_PLUS | KEY_HOLD : #ifdef KEY_NEXT_PREV_HOLD_ADJ_VOL_IN_AUX case INFO_NEXT_FIL| KEY_HOLD : #endif #if !defined(INDEPENDENT_VOLUME_KEY) case INFO_NEXT_FIL: case INFO_NEXT_FIL| KEY_HOLD : if(IR_KEY_Detect){ IR_KEY_Detect =0; break; } #endif #endif #ifdef SUPPORT_PT2313 if((audio_effect_state>0)){ audio_effect_hdlr(0x01); flush_low_msg(); break; } #endif my_music_vol += 2; #if defined(NEW_VOLUME_KEY_FEATURE) case INFO_PREV_FIL : case INFO_PREV_FIL | KEY_SHORT_UP: case INFO_PREV_FIL | KEY_HOLD: if(!new_vol_feature){ break; } #else case INFO_VOL_MINUS: case INFO_VOL_MINUS | KEY_HOLD : #ifdef KEY_NEXT_PREV_HOLD_ADJ_VOL_IN_AUX case INFO_PREV_FIL| KEY_HOLD : #endif #if !defined(INDEPENDENT_VOLUME_KEY) case INFO_PREV_FIL: case INFO_PREV_FIL| KEY_HOLD : if(IR_KEY_Detect){ IR_KEY_Detect =0; break; } #endif #endif #ifdef SUPPORT_PT2313 if((audio_effect_state>0)){ audio_effect_hdlr(0x02); flush_low_msg(); break; } #endif if(my_music_vol) my_music_vol--; #ifdef VOL_ADJ_SPARK_LED if(!vol_adj_spark_bit){ vol_adj_spark_bit=1; last_led_play_mod = get_led_flash_mode(); } set_play_flash(LED_FLASH_VERY_FAST); #endif if (my_music_vol > MAX_VOL) { my_music_vol = MAX_VOL; } #if defined(LINE_IN_PLAY_KEY_PAUSE) if (play_status == MUSIC_PAUSE) { play_status =MUSIC_PLAY; #ifndef NO_AUX_MUTE_WHEN_PAUSE Mute_Ext_PA(UNMUTE); #endif } #endif clear_super_mute_lock(); write_info(MEM_VOL,my_music_vol); my_main_vol(my_music_vol); Disp_Con(DISP_VOL); break; #if RTC_ENABLE case INFO_ALM_BELL : ///<闹钟响消息,进入闹钟循环 sys_clock_pll(); dac_out_select(DAC_DECODE); if(alm_bell_mode()) { dac_out_select(DAC_AMUX0); return; } dac_out_select(DAC_AMUX0); break; #endif default : _HOT_KEY_HDLR: if (!ap_handle_hotkey(key)) return; } } }