/*----------------------------------------------------------------------------*/ void rec_mic_fun(void) { #ifdef UART_ENABLE deg_str("encode \n"); #endif dac_mute_control(1,1); input_number_en = 0; //vol_change_en=1; main_menu = MENU_RECWORKING; disp_port(MENU_SCAN_DISK); delay_10ms(50); SYSTEM_CLK_DIV2(); encode_channel = REC_MIC; encode_vol = 7; key_table_sel(0); flush_all_msg(); if(RECODE_INIT == encode_status) { put_msg_lifo(MSG_REC_FIND); //put_msg_lifo(MSG_REC_START); } //put_msg_lifo(MSG_REC_START); set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 rec_mic_main(); dac_mute_control(0,0); break_encode(); lcd_clr_flash_icon(); }
/*----------------------------------------------------------------------------*/ void rtc_fun(void) { MAIN_POWER_PORT_INIT(); MAIN_POWER_PORT_DISABLE(); iic_gpio_set_low(); amp_mute(1); if(alm_on_flag){ if(sys_main_vol != alrm_vol_bakup) sys_main_vol = alrm_vol_bakup; alm_on_flag = 0; } input_number_en = 0; vol_change_en=0; key_voice_en=0; main_menu = MENU_RTC; close_alarm(); dsp_set_eq_mode(0); //系统时钟div前需关闭eq SYSTEM_CLK_DIV4(); key_table_sel(0); flush_all_msg(); set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 dac_out_select(DAC_MUSIC, 0); rtc_mode_setting = RTC_DISPLAY; rtc_coordinate = 0; alm_coordinate = 0; if (alm_cnt) { put_msg_lifo(MSG_ALM_ON); } else { read_rtc(&curr_time); chk_date_err(); disp_port(MENU_RTC); } MAIN_POWER_PORT_INIT(); MAIN_POWER_PORT_DISABLE(); deal_rtc(); amp_mute(1); MAIN_POWER_PORT_ENABLE(); delay_10ms(3); key_voice_en=0; main_vol_set(0, CHANGE_VOL_NO_MEM); MAIN_POWER_PORT_ENABLE(); amp_mute(1); delay_10ms(80); snooze_en =0; PT2313_Init(); delay_10ms(10); PT2313_Init(); }
/*----------------------------------------------------------------------------*/ void aux_main(void) { #ifdef AUX_DETECT_FUNC if(!aux_online){ work_mode = MUSIC_MODE; return ; } #endif #ifdef UART_ENABLE deg_str("aux \n"); #endif aux_detect_protect(FALSE); set_delay_mute(DELAY_MUTE_1000MS); key_table_sel(SYS_DEFUALT_KEY_TABLE); sys_mute_flag=0; input_number_en = 0; vol_change_en=1; main_menu = MENU_AUX_MAIN; disp_port(MENU_AUX_MAIN); amux_dsp_eq(); SYSTEM_CLK_DIV2(); encode_channel = REC_LINEIN; encode_vol = 3; key_table_sel(0); flush_all_msg(); set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 aux_main_handlr(); ext_amp_mute(MUTE); main_vol_set(0, CHANGE_VOL_NO_MEM); sys_mute_flag=0; break_encode(); }
/*----------------------------------------------------------------------------*/ void music_decode(void) { sys_printf(" ------------------------------------>music_decode "); #ifdef AC_SLAVE_ENABLE DSA_init(); #endif dev_remov_timer=0; play_mode = REPEAT_OFF; disk_toc_ok=0; dev_invalid=0; input_number_en = 1; //允许数字输入功能 vol_change_en=1; key_voice_en=1; main_menu = MENU_MUSIC_MAIN; dec_msg = get_dec_msg_ptr(); fat_ptr1.buf = win_buffer; SYSTEM_CLK_DIV1(); //sd_speed_init(0, 100); key_table_sel(0); flush_all_msg(); music_info_init(); set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 if(DSA_SEL_DEV==DEVICE_SDMMC0){ given_device = DEVICE_SDMMC0; } else if(DSA_SEL_DEV==DEVICE_UDISK){ given_device = DEVICE_UDISK; } //put_msg_lifo(MSG_MUSIC_SELECT_NEW_DEVICE); music_play(); //delay_10ms(3); stop_decode(); usb_suspend(); //Entered Suspend Mode key_voice_en=0; main_vol_set(0, CHANGE_VOL_NO_MEM); given_device = NO_DEVICE; }
/*----------------------------------------------------------------------------*/ void aux_fun(void) { flashled(3); // amp_abd(1); //work_mode++; //return ; input_number_en = 0; vol_change_en=1; main_menu = MENU_AUX; disp_port(MENU_AUX); amux_dsp_eq(); SYSTEM_CLK_DIV4(); encode_channel = REC_LINEIN; encode_vol = 3; key_table_sel(0); flush_all_msg(); set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 aux_main(); main_vol_set(0, CHANGE_VOL_NO_MEM); break_encode(); }
/*----------------------------------------------------------------------------*/ void rec_mic_fun(void) { dac_mute_control(1,1); input_number_en = 0; vol_change_en=1; main_menu = MENU_REC; disp_port(MENU_REC); SYSTEM_CLK_DIV2(); encode_channel = REC_MIC; encode_vol = 7; key_table_sel(0); flush_all_msg(); if(RECODE_INIT == encode_status) { put_msg_lifo(MSG_REC_FIND); //put_msg_lifo(MSG_REC_START); } //put_msg_lifo(MSG_REC_START); set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 rec_mic_main(); dac_mute_control(0,0); break_encode(); }
/*----------------------------------------------------------------------------*/ void fm_radio(void) { // printf("enter fm\n"); //P05_source_select(P05_SEL_OSC1); amux_dsp_eq(); sys_clk_div(2);//SYSTEM_CLK_DIV2(); init_fm_rev(); PT2313_Config(RADIO_CHAN,CHAN_ADJ); input_number_en = 1; vol_change_en=1; main_menu = MENU_FM_MAIN; key_table_sel(1); flush_all_msg(); enter_fm_rev(); disp_port(MENU_FM_MAIN); sys_clk_div(4);//SYSTEM_CLK_DIV4(); set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 dac_out_select(DAC_AMUX1, 0); encode_channel = REC_FM; #if ECHO_ENABLE encode_channel = REC_MIC ; #endif encode_vol = REC_AMUX_GAIN; fm_rev(); main_vol_set(0, CHANGE_VOL_NO_MEM); amp_mute(1); alm_on_flag =0; fm_rev_powerdown(); //P05_source_select(P05_SEL_IO); break_encode(); }
/*----------------------------------------------------------------------------*/ void rec_mic_fun(void) { REC_CHAN_PORT_INIT(); REC_CHAN_PORT_ENABLE(); set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 #if KALAOK_FUNCTION if(RECODE_STOP == encode_status) { dac_out_select(DAC_MUSIC | DAC_KALAOK, 0); kala_dac(); set_rec_vol(7); P3HD |=(1<<6); dsp_kalaok_channel(); vol_change_en=1; } else #endif { #if !ECHO_ENABLE ///<由于可能需要混响输出声音,此处不能静音 //if((BUSY != echo_ptr->status) ) dac_mute_control(1,1); #endif vol_change_en = 0; } input_number_en = 0; main_menu = MENU_REC; disp_port(MENU_REC); //while(1); sys_clk_div(2);//SYSTEM_CLK_DIV2(); //SYSTEM_CLK_DIV1(); #if 1 encode_channel = REC_LINEIN; encode_vol = REC_AMUX_GAIN; #else encode_channel = REC_MIC; encode_vol = REC_MIC_GAIN; #endif key_table_sel(0); flush_all_msg(); //deg_str("Rec Mode\n"); if(RECODE_INIT == encode_status) { put_msg_lifo(MSG_REC_FIND); //put_msg_lifo(MSG_REC_START); } //put_msg_lifo(MSG_REC_START); rec_mic_main(); #if KALAOK_FUNCTION if(RECODE_STOP == encode_status) { kala_dac_off(); P3HD &=~(1<<6); dsp_set_adc_con(0); } #endif dac_mute_control(0,0); REC_CHAN_PORT_DISABLE(); break_encode(); }
/*----------------------------------------------------------------------------*/ void usb_audio_massstorage(void) { device_check(); if (pc_connect) { input_number_en = 0; vol_change_en=1; //sd_speed_init(0, 100); main_menu = MENU_USBDEV_MAIN; disp_port(MENU_USBDEV_MAIN); usb_config(USB_DEVICE_CFG); write_protect_set(0); //不使用写保护功能,如果需要,请根据卡座写保护的状态改变配置 SYSTEM_CLK_DIV1(); init_usb_device_hardware(); #if((PLL_IN_HPRC == INPUT_OSC_SELECT) && USE_SOF_PLL) { u8 flag; flag = correct_hprc(); if(1 == flag) ///<限定时间内,校准通过,保存矫正值 { write_hprc_cnt(MEM_PLLCON0, memery_hprc_cnt); // deg_string("secuss\n"); } else if(0 == flag) ///<校准时USB线拔出 { work_mode = MUSIC_MODE; IE1 &= ~BIT(1); P3PU &= ~BIT(6); // deg_string("unsecuss\n"); return; } else if(2 == flag) ///<限定时间内,校准失效,可继续相应功能 { // work_mode = MUSIC_MODE; // IE1 &= ~BIT(1); // P3PU &= ~BIT(6); // return; } } #endif key_table_sel(0); flush_all_msg(); #if ((USB_DEVICE_CFG & USB_SPEAKER) == USB_SPEAKER) set_eq(eq_mode); #endif alm_request_cnt = 0; set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量 usb_device(); recording_end(); dac_mute_control(0,1); ///<退出PC后,关掉DAC MUTE。 #if ((USB_DEVICE_CFG & USB_SPEAKER) == USB_SPEAKER) main_vol_set(0, CHANGE_VOL_NO_MEM); #endif IE1 &= ~BIT(1); P3PU &= ~BIT(6); } else { work_mode++; Set_Curr_Func(work_mode); } }