Пример #1
0
/*----------------------------------------------------------------------------*/
u8 alm_bell_mode(void)
{
	u8 key;
	u8 flag;
	alm_flag = 2;
    fond_alm_clk();
	
	while(1)
	{
#if ((USB_DEVICE_CFG & USB_MASS) == USB_MASS)
        if(SYS_USBDEVICE == work_mode)
		{
		    UFI_massstorage();
		}
#endif
		key = get_msg();

		switch (key)
		{
		case INFO_HALF_SECOND :
			if(alm_bell())
			{
				break;
			}
			return 0;

		default :
			flag = alm_bell_key(key);
            if (flag)
            {
                close_alm_bell();
				//return_cnt = RETURN_TIME - 1;		  //
				if(flag == 2)
					return 1;
				if(flag == 1)
					return 0;
            }
		}
	}	
}
/*----------------------------------------------------------------------------*/
void usb_device(void)
{
    u8 key;
    u8 connect_counter = 0;
    bool usb_con = 0;

    while (1)
    {
#if ((USB_DEVICE_CFG & USB_MASS) == USB_MASS)
        UFI_massstorage();
#endif
#if ((USB_DEVICE_CFG & USB_SPEAKER) == USB_SPEAKER)
        key_voice_en=1;
        dac_out_select(DAC_MUSIC, 0);
#endif

        key = app_get_msg();
        if (alm_request_cnt)
        {
            key = alm_request_msg_convert(key);
        }
        switch (key)
        {

#if ((USB_DEVICE_CFG & USB_SPEAKER) == USB_SPEAKER)
#if (MUSIC_SPECTRUM_EN == 1)
        case MSG_100MS:
            if (cur_menu == MENU_USBDEV_MAIN)
            {
                music_spec_cul(1);
                disp_port(MENU_100MS_REFRESH);
            }
            break;
#endif

        /*  case MSG_MUSIC_NEXT_EQ:
              eq_mode++;
              if (eq_mode > CLASSIC)
              {
                  eq_mode = NORMAL;
              }
              //set_dsp_eq(eq_mode);
          	set_eq(eq_mode);
              disp_port(MENU_SET_EQ);
              break;	 */

        case MSG_PC_MUTE:
            dac_mute_control(1,1);
            break;
        case MSG_PC_UNMUTE:
            dac_mute_control(0,1);
            break;
#else
        case MSG_VOL_UP:
            break;

        case MSG_VOL_DOWN:
            break;
#endif


#if ((USB_DEVICE_CFG & USB_HID) == USB_HID)
        case MSG_MUSIC_PP:
            //Usb_Audio_Mute_Ctl();
            usb_hid_control(USB_AUDIO_PP);
            break;

        case MSG_MUSIC_NEXT_FILE:
            usb_hid_control(USB_AUDIO_NEXTFILE);
            break;

        case MSG_MUSIC_PREV_FILE:
            usb_hid_control(USB_AUDIO_PREFILE);
            break;

#endif

        case MSG_USB_PC_OUT:
            Set_Curr_Func(SYS_MP3DECODE_USB);
            return;

        case MSG_HALF_SECOND:
            if (!usb_con)
            {
                connect_counter++;
                if(USBCON0 & BIT(6))
                    usb_con = 1;
                else if (connect_counter > 4)
                    return;
            }
            //printf("alm_request_cnt:%u,main_menu_conter:%u\n",(u16)alm_request_cnt,(u16)main_menu_conter);
            if (alm_request_cnt)
            {
                alm_request_cnt++;
                disp_port(MENU_ALM_REQUEST);
                if (alm_request_cnt > 60)
                {
                    alm_request_cnt = 0;
                    Set_Curr_Func(SYS_RTC);
                    put_msg_lifo(MSG_CHANGE_WORK_MODE);
                }
                break;
            }
            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);
            }
            break;
#if RTC_ENABLE
        case MSG_CHANGE_WORK_MODE:
            if (alm_cnt)
            {
                return;
            }
            break;

        case MSG_REQUEST_Y:
            alm_request_cnt = 0;
            Set_Curr_Func(SYS_RTC);
            put_msg_lifo(MSG_CHANGE_WORK_MODE);
            break;
        case MSG_REQUEST_N:
            alm_request_cnt = 0;
            close_alarm();
            main_menu_conter = SUB_MENU_TIME;
            break;
        case MSG_ALM_ON:
            alm_request_cnt = 1;
            write_next_alm_sec();
            disp_port(MENU_ALM_REQUEST);
            break;
#endif

        default :
            ap_handle_hotkey(key);
            break;
        }

    }

}