📄 ircmd_subtitle.c
字号:
if(system_state == SYSTEM_TS)
{
extern int g_Ttx_Mode;
if(g_Ttx_Mode == 0)
EnterTeletextMode();
else
ExitTeletextMode();
return;
}
#endif
#endif //#ifdef DVB1000_NON_OS
#ifdef SUPPORT_MIDI_MENU_SEL //xlluo for midi title
if (Is_MIDI_STATE())
{
invalid_key();
return;
}
#endif
#ifdef SUPPORT_FILEKOK
//xlluo add, it's invalid in Mp4 kok status//0703027
extern BYTE g_scIsMp4Karaoke; //global variable
if (g_scIsMp4Karaoke)
{
invalid_key();
return;
}
#endif
#ifdef SUPPORT_MIDIDISK_TITLE
if (bIsPlayMidiTitle)//xlluo for midi title
{
invalid_key();
return;
}
#endif
#ifdef INVALID_SUBPICTURE_WHEN_SVCD //wuxiaofeng 2004-03-23
if(cd_type_loaded==CDSVCD)
{
invalid_key();
return;
}
#endif//#ifdef INVALID_SUBPICTURE_WHEN_SVCD
/*
#if defined(ADJUSTING_ACTION_VALID_RIGHT_NOW)
#ifdef NEWSTYLE_WINDOW
if ( (full_scrn&MESSAGE) && (action_click==2) ) // alan, 2003/8/28 05:32PM
action_click = 0;
else
#endif
action_click = 1; //Jeff 20030506
#endif
*/
#ifdef JPEG_EFFECT_MODE_USE_SUBTITLE//zhaoyanhua add 2003-12-24 9:50
if(cd_type_loaded == CDROM)
{
if (Is_JPEG_PLAY_STATE())
{
#ifdef JPG_EFFECT
jpeg_effect_toggle();
#endif
}
else
invalid_key();
return;
}
#endif
//kevinmonkey 060606 if IR command flows to this place, check stream number. currently
//meant for mpeg2 and AVI with subpicture/subtitle or multi audio track
//if(stream number == -1) invalid key, if(stream number == 1) print stream 1 message.
if(pDSV->dAv_SPST_Ns == 255)
{
invalid_key();
return;
}
else if(pDSV->dAv_SPST_Ns == 0)
{
#ifdef VOB_SUBTITLE
if(GetCurrentFileType()!=CDROM_MPG)
#endif
{
invalid_key();
return;
}
}
#ifdef SUPPORT_QUICKTIME
if ((GetCurrentFileType() ==CDROM_MP4) && (sub_picture_QT()))
return;
#endif //SUPPORT_QUICKTIME
//Jeff change, 20031006, fix press IR(GOTO) sub-picture will be "automatic" toggled
#if defined(ADJUSTING_ACTION_VALID_RIGHT_NOW)
#ifdef NEWSTYLE_WINDOW
if ( (full_scrn&MESSAGE) && (action_click==2) )
action_click = 0;
else
#endif
action_click = 1; //Jeff 20030506
#else
#ifdef NEWSTYLE_WINDOW
if ( (full_scrn&MESSAGE) && (action_click==2) ) // alan, 2003/8/28 05:32PM
action_click = 0;
#endif
#endif
#ifdef VOB_SUBTITLE
if(GetCurrentFileType()==CDROM_MPG) {
id=Subp_stream_Chg_VOB(action_click);
}
else
#endif
//chg & check subtitle stream id
if( !(!DVD_check_state()&&(cd_type_loaded==CDDVD)) )
{
#ifdef NEW_SEARCH_OSD //yw 021007
if(key_up_down==0)
//id=Subp_stream_Chg(action_click,-1); //Jeff 20021008
id=Subp_stream_Chg(action_click,1); //nono 2-11-22 11:19
else
#endif
id=Subp_stream_Chg(action_click,1); //Jeff 20021008
printf("chg sub-title\n");
}
printf("pDSV->dAv_SPST_Ns:%x\n",pDSV->dAv_SPST_Ns);
//setting osd data
//id : 0x40:Ch1, 0x41:Ch2, 0x42:Ch3, 0x43:Ch4, 0xbf:off
#ifdef ALCO_DVD_UI
if((id&0x40)&&((id&0x3f)<=pDSV->dAv_SPST_Ns)&&(pDSV->dAv_SPST_Ns>0))//shenyj modify for alco 11/22
#else
if( (id&0x40)&&( (id&0x3f)<pDSV->dAv_SPST_Ns ) )
#endif
{
timer=((id&0x3f)<<8)|0x01;
#ifdef TWO_SUBTITLE//terry,2004/8/4 09:39AM
#ifndef TWO_KEY_SWITCH_TWO_SUBTITLE //modified by wangwei,2004-9-29 17:02
sel_2nd_subtitle(id+1);
#else
if(action_click)
{
if(IDTWO==(NP_SPSTN&0x3f)) //same one,close the 2nd subtitle.
{
sup_select_subtitles(1);
twoSubTTFlag=1;
}
else if(IDTWO>=pDSV->dAv_SPST_Ns) //off,close the 2nd subtitle.
{
sup_select_subtitles(1);
twoSubTTFlag=0;
}
else if(IDTWO!=-1)
{
sup_select_subtitles(2);
twoSubTTFlag=2;
}
}
#endif//TWO_KEY_SWITCH_TWO_SUBTITLE
#endif
id_str=0x20;
}else
{
id_str=STR_OS_OFF;
timer=1;
}
PrepareToLoadMP4InternalSubtitle(); // 2004/09/17 yltseng
#if defined (SUPPORT_SMI_MultiLanguage)//parse external caption before show the caption id
PrepareToLoadMP4ExternalSubtitle();
#endif
//show osd str
if(id)
{
#ifdef SPHE1000_DVDSTATE_CALLBACK //2004/10/21 wjzhang , sphe1000B(stb-dvd): osd display
if(id==0xbf|id==0x7e)
OSD1000ISP_STATUS(OSDISP_TITLE_OFF, OSDIR_SUB_TITLE);
else
OSD1000ISP_STATUS(((pDSV->dAv_SPST_Ns)<<4)|(id+1&0x0f), OSDIR_SUB_TITLE);
#endif
//PrintOsdMsg(STR_OS_SUBTITLE|(id_str<<8),REGION1,timer,4);
#ifdef SUPPORT_DIVX6
extern UINT32 is_divx6_file;
extern void divx6_display_subpic_track(UINT8 sup_strm_num);
//kevinmonkey 060821 switch to divx6 display function only for clips with internal subpicture.
if (is_divx6_file == 1 && (file_sup_num != 0))
{
divx6_display_subpic_track(NP_SPSTN & 0x3f);
}
else
#endif
#ifdef SUPPORT_MP3_ENCODER //qinhua,2005-11-9 9:26
if ((cd_type == CDDA)&&!(detect_type))
{
psprintf(RegionValStr[REGION1], "NO DEVICE");
PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
}
else if((cd_type == CDDA)&&(detect_type))
{
return;
}
else
PrintOsdMsg(STR_OS_SUBTITLE|(id_str<<OSDSTR_ID_TOTL_BIT),REGION1,timer,4);
#else
{
PrintOsdMsg(STR_OS_SUBTITLE|(id_str<<OSDSTR_ID_TOTL_BIT),REGION1,timer,4);
#ifdef SUPPORT_MP4_SUBTITLE
if(show_unsupported_message)
{
psprintf(RegionValStr[REGION2], "UnSupported");
PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
}
#endif
}
#endif
}
else {
#ifdef NEWSTYLE_WINDOW
if(full_scrn&MESSAGE)//xyy 2003-7-29 15:08
psprintf(linebuf,"%s",_OsdMessegeFont1[osd_font_mode][STR_OS_NONE]);
else
#endif
invalid_key();
}
#ifdef NEWSTYLE_WINDOW
if(full_scrn&MESSAGE)//xyy 2003-7-29 15:08
updateSubtitle();
#endif
}
#ifdef DOUBLE_TITLE //susu 2003-8-22 18:44
void ircmd_double_picture(void)
{
if(full_scrn&DOUBLETITLE)
{
exit_double_title();
}
else
{
if( !(!DVD_check_state()&&(cd_type_loaded==CDDVD)) )
{
full_scrn=DOUBLETITLE;
exe_double_title();
//Maoyong added for IR U/D/L/R/Sel proc func setting 2004-9-24 9:13
SetFullscrnCmdFuncPtr( double_title_func_up, double_title_func_down, double_title_func_left,
double_title_func_right, double_title_func_select);
}
else
invalid_key();
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -