?? ircmd_mode.c
字號:
#ifdef IR_SWITCH_DVD_USB_CARD_AVIN_DVB
//Qiaohuilin:2005-9-22
#ifdef MUSTEK_LCD_DRIVE_BITEK
#include "LCD\OSD.h"
#include "LCD\YUV.H"
#endif
/**************************************************************************
* Function Name: ircmd_dvd_usb_card_avin_dvb *
* Purposes: *
* Switch Media play between DVD,USB,Card,AV_IN and DVB-T *
* Descriptions: *
* 1.If you use this function,system will not automatically detect USB *
* or Card. *
* 2.You can freely switch system between the state below:DVD,USB,Card,*
* AV_IN and DVB-T in this function. *
* Arguments: *
* NULL *
* Returns: *
* NULL *
**************************************************************************/
#ifdef FIX_STATE_CHANE_NOT_READ_USB
extern void force_detached();
#endif// end=> #ifdef FIX_STATE_CHANE_NOT_READ_USB
#ifdef SUPPORT_DVB_DESKTOP_STOP_SERVO_WHEN_TUNEON //yangli add for usb ,card stop servo,2006-2-16 16:30,
extern int stop_servo_flag;
#endif
#ifdef SUPPORT_DVB_BOOKING
extern UINT8 iCountTime;
#endif
void ircmd_dvd_usb_card_avin_dvb(void)
{
if(prog_cnt) ///yangli ,2006-2-27 23:07
{
prog_cnt = 0;
prog_func_clear();
}
printf_w("----------yang li 1 = %d --------\n",source_play_mode);
#ifdef MODE_SWITCH_DELAY
// if(usb_card_state == USB_CARD_WAS_PLUG_OUT)
// return;
//counter_down = 2;
mode_key_delay_cnt = 3;//MODE_DELAY_CNT;
#endif
#ifdef SUPPORT_DVB_BOOKING
if(iCountTime>0)
return;
#endif
//by justin 2005/11/15 close the setup_menu if you want to change mode and setup menu is openning
if(full_scrn&SETUP)
ExitSetupPage(1);
//Jack highly notes:in reading CD/DVD TOC state ,we should not let this key can change system state!!
//Otherwise will cause some inexplicable issues.
#ifdef MUSTEK_K100D_MODEL
if( (source_play_mode==DVD_PLAY_MODE) && ((system_state==SYSTEM_READ_TITLE)||((system_state==SYSTEM_OPEN)/*&&(play_state==VCD_STATE_CLOSE)*/)) )
#else
if( (source_play_mode==DVD_PLAY_MODE) && ((system_state==SYSTEM_READ_TITLE)||(CDOpened())/*||((system_state==SYSTEM_OPEN)&&(play_state==VCD_STATE_CLOSE))*/) )
#endif
return;
GPIO_MUTE();
if(source_play_mode == DVD_PLAY_MODE)
{
osd_clear_and_init();
#ifdef SUPPORT_DVD_TO_USB_CARD_DVB_ENABLE_RESUME//tianye 200607
#ifdef SUPPORT_LAST_MEMERY
if(memery_resumeflag)
#endif//end=> #ifdef SUPPORT_LAST_MEMERY
{
RsmInfo2Flash(0);
}
#endif//end=> #ifdef SUPPORT_DVD_TO_USB_CARD_DVB_ENABLE_RESUME
//-------------------------------------------
#ifdef STOP_LOADER
//Jack marked "If" 06/02/20
//if( !((play_state==VCD_STATE_OPEN) || ((play_state==VCD_STATE_STOP)&&!resumeMSF) || (system_state==SYSTEM_NODISC)) )
{
delay_srv_10ms(5);
#ifdef TRAY_AVAILABLE//It seems that this will cause some servo bug,so markd again 06/02/22
stop_loader();
#endif
delay_srv_10ms(5);
}
#endif
if(system_state != SYSTEM_OPEN)
{
AVD_SetMediaTimeout();
ircmd_post_func(CMD_FUNC|CMD_FUNC_OPEN);
}
#ifdef TRAY_AVAILABLE
if(CDOpened())
{
close_tray(1);
delay_srv_10ms(300);
printf_w("here 2=\n");
}
#endif
#ifdef SUPPORT_DVB_DESKTOP_STOP_SERVO_WHEN_TUNEON ///YANGLI ADD FOR STOP SERVO,2005-12-28 15:00
atapi_p_start_stop_unit(4);
stop_servo_flag = 1;
#endif
#ifdef FIX_CARD_USD_OSD_ERR
polling_storage();
#endif// end=> #ifdef FIX_CARD_USD_OSD_ERR
#ifdef NO_USB_NO_CARD
ircmd_dvb_dvd();
#else
switch_usb_card();
#endif
#ifdef FIX_STATE_CHANE_NOT_READ_USB
force_detached();
#endif// end=> #ifdef FIX_STATE_CHANE_NOT_READ_USB
#ifdef ONLY_CARD_NO_USB
source_play_mode = CARD_PLAY_MODE;
#elif defined(NO_USB_NO_CARD)
source_play_mode = DVB_T_MODE;
#else
source_play_mode = USB_PLAY_MODE;
#endif
}
else if(source_play_mode == USB_PLAY_MODE)
{
osd_clear_and_init();
#ifdef ONLY_USB_NO_CARD
ircmd_dvb_dvd();
source_play_mode = DVB_T_MODE;
#else
switch_usb_card();
source_play_mode = CARD_PLAY_MODE;
#endif
}
else if(source_play_mode == CARD_PLAY_MODE)
#ifdef AV_IN_THROUGH_EXT_ADC
{
osd_clear_and_init();
ircmd_post_func(CMD_FUNC|CMD_FUNC_OPEN);
//play_state = VCD_STATE_NORMAL;
//psprintf(RegionValStr[REGION2], "AV IN STATE");
//PrintOsdMsg(STR_OS_SPACE, REGION2, 3, 1);
source_play_mode = AV_IN_MODE;
if(!(detect_type&0x1e))
{
system_state = SYSTEM_AVIN;
usb_card_state = USB_CARD_NO_CHANGE;
mode_switch_reset_var();
}
else
usb_card_state = FROM_CARD_TO_AV_IN;
//QiaoHuilin:2005-9-22
#ifdef MUSTEK_LCD_DRIVE_BITEK
YUV_SetSourceMode(YUV_ID_CVBS_11);
// POR_PowerOn();//Sunpluss advice
OSD_ShowMsg(OSD_MESSAGE,0,0," AV IN");
OSD_EnableWindow(OSD_MESSAGE, TRUE);
if(user_mute)
LCD_ShowMuteIcon();
#endif
}
else if(source_play_mode == AV_IN_MODE)
#endif
{
enable_video_DAC_out(1);
ircmd_dvb_dvd();
source_play_mode = DVB_T_MODE;
//QiaoHuilin:2005-9-22
#ifdef MUSTEK_LCD_DRIVE_BITEK
YUV_SetSourceMode(YUV_ID_YCBCR);
OSD_ShowMsg(OSD_MESSAGE,0,0," DVB");
OSD_ShowMsg(OSD_MESSAGE,0,1," ");
OSD_EnableWindow(OSD_MESSAGE, TRUE);
#endif
}
else if(source_play_mode == DVB_T_MODE)
{//switch to DVD play mode
printf_w("====source_play_mode == dvb_t_mode ====\n");
volatile int *iMagic=(int *)(DATA_RAM_BASE|0xa0); ///yangli ,2006-2-20 19:56
*iMagic = 0xff;
ircmd_dvb_dvd();
source_play_mode = DVD_PLAY_MODE;
#ifdef MODE_SWITCH_DELAY///YANGLI ,2006-2-22 23:18
mode_key_delay_cnt = 10;
#endif
no_disk_cnt = DETECT_TIMES;
media_type = MEDIA_CD;
#ifndef SUPPORT_DPF_UI
if(play_state != VCD_STATE_OPEN)//20051230 tiany add
PrintOsdMsg(STR_OS_READ,REGION1,0,0);
#endif
//QiaoHuilin:2005-9-22
#ifdef MUSTEK_LCD_DRIVE_BITEK
YUV_SetSourceMode(YUV_ID_YCBCR);
OSD_ShowMsg(OSD_MESSAGE,0,0," ");
OSD_EnableWindow(OSD_MESSAGE, FALSE);
#endif
}
#ifdef DEBUG_SWITCH_DVD_USB_CARD_AVIN_DVB
printf_w("now system play mode--->%d\n",source_play_mode);
#endif
}
/**************************************************************************
* Function Name: switch_usb_card *
* Purposes: *
* Switch Media play only between USB and Card *
* Descriptions: *
* Called by ircmd_dvd_usb_card_avin_dvb() *
* Arguments: *
* NULL *
* Returns: *
* NULL *
**************************************************************************/
#ifdef ONLY_CARD_NO_USB
void switch_usb_card(void)
{
if(/*(detect_result_last == 0x01)||*/(source_play_mode==DVD_PLAY_MODE))//when play USB
{
if(!(detect_type&0x1e))
{
if((detect_type&USB_DEVICE) && (system_state==SYSTEM_BROWSE))
{
AVD_SetMediaTimeout();
ircmd_post_func(CMD_FUNC | CMD_FUNC_OPEN);
}
psprintf(RegionValStr[REGION1], "CARD NOT FOUND");
PrintOsdMsg(STR_OS_SPACE, REGION1, 2, 1);
usb_card_state = SWITCH_TO_CARD_BUT_HAS_NO_CARD;
}
else
{
#ifdef DEBUG_SWITCH_DVD_USB_CARD_AVIN_DVB
printf_w("has Card in............\n");
#endif
now_valid_type = (detect_type & 0x1e);
storage_type = now_valid_type;
detect_result_last = storage_type;
SwitchMedia(CARD2CARD);
usb_card_state = HAS_CARD_AND_SWITCH_TO_CARD;
}
}
}
#elif defined(ONLY_USB_NO_CARD)
void switch_usb_card(void)
{
if(source_play_mode == DVD_PLAY_MODE)
{
if( !(/*IsCardMediaExist()&&*/(detect_type&USB_DEVICE)) )
{
psprintf(RegionValStr[REGION1], "USB NOT FOUND");
PrintOsdMsg(STR_OS_SPACE, REGION1, 2, 1);
usb_card_state = SWITCH_TO_USB_BUT_HAS_NO_USB;
media_type = MEDIA_CARD;
cd_type_loaded = CDUNKNOWN;
play_state = VCD_STATE_IDLE;
no_disk_cnt = DETECT_TIMES;
}
else
{
#ifdef DEBUG_SWITCH_DVD_USB_CARD_AVIN_DVB
printf_w("has USB in............\n");
#endif
now_valid_type = USB_DEVICE;
storage_type = USB_DEVICE;
detect_result_last = storage_type;
SwitchMedia(CD2CARD);
usb_card_state = HAS_USB_AND_SWITCH_TO_USB;
}
}
}
#else//#ifdef ONLY_CARD_NO_USB//tianye 200607
#ifdef SUPPORT_OTHER_LANGUAGE_STRING
extern const char *const osd_other_str[N_OSD_LANGS][STRINE_NUM];
#endif //end=> #ifdef SUPPORT_OTHER_LANGUAGE_STRING
void switch_usb_card(void)
{
#ifdef DEBUG_SWITCH_DVD_USB_CARD_AVIN_DVB
printf_w("media_type:%d...detect_result_last:%d...now_valid_type:%d...\n",media_type,detect_result_last,now_valid_type);
printf_w("detect_type:%d............storage_type:%x\n",detect_type,storage_type);
#endif
media_type = MEDIA_CARD;
if(source_play_mode == DVD_PLAY_MODE)
{
if( !(/*IsCardMediaExist()&&*/(detect_type&USB_DEVICE)) )
{
#ifdef SUPPORT_OTHER_LANGUAGE_STRING//tianye 200607
psprintf(RegionValStr[REGION1], osd_other_str[osd_font_mode][USB_NOT_FOUND]);
#else //else => #ifdef SUPPORT_OTHER_LANGUAGE_STRING
psprintf(RegionValStr[REGION1], "USB NOT FOUND");
#endif//end=> #ifdef SUPPORT_OTHER_LANGUAGE_STRING
PrintOsdMsg(STR_OS_SPACE, REGION1, 2, 1);
usb_card_state = SWITCH_TO_USB_BUT_HAS_NO_USB;
media_type = MEDIA_CARD;
cd_type_loaded = CDUNKNOWN;
play_state = VCD_STATE_IDLE;
no_disk_cnt = DETECT_TIMES;
}
else
{
#ifdef DEBUG_SWITCH_DVD_USB_CARD_AVIN_DVB
printf_w("has USB in............\n");
#endif
now_valid_type = USB_DEVICE;
storage_type = USB_DEVICE;
detect_result_last = storage_type;
SwitchMedia(CD2CARD);
usb_card_state = HAS_USB_AND_SWITCH_TO_USB;
}
}
else if(/*(detect_result_last == 0x01)||*/(source_play_mode==USB_PLAY_MODE))//when play USB
{
if(!(detect_type&0x1e))
{
if((detect_type&USB_DEVICE) && (system_state==SYSTEM_BROWSE))
{
AVD_SetMediaTimeout();
ircmd_post_func(CMD_FUNC | CMD_FUNC_OPEN);
}
#ifdef SUPPORT_OTHER_LANGUAGE_STRING//tianye 200607
psprintf(RegionValStr[REGION1], osd_other_str[osd_font_mode][CARD_NOT_FOUND]);
#else //else => #ifdef SUPPORT_OTHER_LANGUAGE_STRING
psprintf(RegionValStr[REGION1], "CARD NOT FOUND");
#endif//end=> #ifdef SUPPORT_OTHER_LANGUAGE_STRING
PrintOsdMsg(STR_OS_SPACE, REGION1, 2, 1);
usb_card_state = SWITCH_TO_CARD_BUT_HAS_NO_CARD;
}
else
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -