Example #1
0
void idle_mode(void)
{
    u8 key;
    input_number_en = 0;

    if(mic_plugged){	

		mic_counter=0;
    		set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量
		
		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{

    	vol_change_en=0;
   }

 disp_port(MENU_NODEVICE);			

   while (1)
    {
        key = app_get_msg();

        switch (key)
        {
        case MSG_NO_DEVICE:
	    clear_all_event();
	    flush_low_msg();
	    disp_port(MENU_NODEVICE);			
		break;
		
    	case MSG_MIC_OUT:
		if(mic_plugged){	
			work_mode =  last_work_mode;
			mic_plugged = 0;
			return;
	      	 	//put_msg_lifo(MSG_CHANGE_WORK_MODE);		
		}
		break;
        case MSG_MUSIC_NEW_DEVICE_IN:							//有新设备接入	
        case MSG_CHANGE_WORK_MODE:
		break;
            work_mode = MUSIC_MODE;
            return;

        case MSG_HALF_SECOND:
////////////////////////////////////////////////////////////
//显示界面的切换
#if 0            
            set_brightness_fade_out();
            if (main_menu_conter < SUB_MENU_TIME)
            {
                main_menu_conter++;
            }
            else if (cur_menu != main_menu)
            {
                cur_menu = main_menu;
                disp_port(cur_menu);
            }
#endif

            break;
#if RTC_ENABLE
        case MSG_ALM_ON:
            write_next_alm_sec();
            work_mode = RTC_MODE;
            put_msg_lifo(MSG_CHANGE_WORK_MODE);
            break;
#endif
        default:

            ap_handle_hotkey(key);        
            break;
        }
    }

}
/*----------------------------------------------------------------------------*/
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();
}