📄 setup.c
字号:
default:
iChoice = ITEMNUM_4_3_PANSCAN;
break;
}
msChoice->current_choice = iChoice;
}
#endif // D_NO_RES_VID_DEFAULT
void res_vid_action(int num)
{
#ifdef D_UNHOOK_WIDESCREEN_MODE
printf("TV shape is %d\n",num);
#else
DWORD d_Cmd;
int iTvShape[] = { PS_TV43PS, PS_TV43LB, PS_TV169 };
dbouts("\nTV shape is ");
dbouti(num);
num = iTvShape[num];
d_Cmd = (((DWORD)PS_UPDATE_WIDESCREEN_MODE)<<16) + (DWORD)num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
#endif // D_UNHOOK_WIDESCREEN_MODE
}
#ifdef D_NO_STD_DEFAULT
#else
void std_vid_choice(MS_CHOICE *msChoice)
{
int iChoice;
switch ( gps->tv_standard )
{
case TV_SYS_PAL:
iChoice = ITEMNUM_STD_PAL;
break;
#ifndef NO_PAL_M//ZORAN LX0316
case TV_SYS_PAL60:
iChoice = ITEMNUM_STD_PAL_60;
break;
case TV_SYS_PALM:
iChoice = ITEMNUM_STD_PAL_M;
break;
#endif//NO_PAL_M
case TV_SYS_AUTO:
iChoice = ITEMNUM_STD_AUTO;
break;
//<<<<<VW0604 add PALN & PALNC
#ifdef PAL_N_ENABLE
case TV_SYS_PALN:
iChoice = ITEMNUM_STD_PAL_N;
break;
#endif
#ifdef PAL_NC_ENABLE
case TV_SYS_PALNC:
iChoice = ITEMNUM_STD_PAL_NC;
break;
#endif
//VW0604 >>>>
case TV_SYS_NTSC:
// Fall through
default:
iChoice = ITEMNUM_STD_NTSC;
break;
}
msChoice->current_choice = iChoice;
}
#endif // D_NO_STD_DEFAULT
void std_vid_action(int num)
{
#ifdef D_UNHOOK_STANDARD
printf("Video Standard is %d\n",num);
#else
DWORD d_Cmd;
#ifdef NO_PAL_M//ZORAN LX0316
int iTvSys[] = { TV_SYS_NTSC, TV_SYS_PAL, TV_SYS_AUTO
#ifdef PAL_N_ENABLE
,TV_SYS_PALN //VW0604
#endif
#ifdef PAL_NC_ENABLE
,TV_SYS_PALNC //VW0604
#endif
};
#else//NO_PAL_M
int iTvSys[] = { TV_SYS_NTSC, TV_SYS_PAL, TV_SYS_PAL60, TV_SYS_PALM, TV_SYS_AUTO
#ifdef PAL_N_ENABLE
,TV_SYS_PALN //VW0604
#endif
#ifdef PAL_NC_ENABLE
,TV_SYS_PALNC //VW0604
#endif
};
#endif//NO_PAL_M
dbouts("\nVideo Standard is ");
dbouti(num);
num = iTvSys[num];
d_Cmd = (((DWORD)PS_UPDATE_TV_STANDARD)<<16) + (DWORD)num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
#endif // D_UNHOOK_STANDARD
}
//<<<<<<<< FW0310 Add video output
#ifdef D_VIDEO_OUTPUT_MODE
void vid_out_choice(MS_CHOICE *msChoice)
{
int iChoice;
switch ( gps->vid_out )
{
case VID_OUT_CVBS:
iChoice = ITEMNUM_VID_CVBS;
break;
case VID_OUT_YUV:
iChoice = ITEMNUM_VID_YUV;
break;
#ifndef NO_RGB
case VID_OUT_RGB:
iChoice = ITEMNUM_VID_RGB;
break;
#endif
default:
iChoice = ITEMNUM_VID_CVBS;
break;
}
msChoice->current_choice = iChoice;
}
void vid_out_action(int num)
{
#ifdef D_UNHOOK_VID_OUT
printf("Video Standard is %d\n",num);
#else
DWORD d_Cmd;
#ifndef NO_RGB
int iVidOut[] = { VID_OUT_CVBS, VID_OUT_YUV, VID_OUT_RGB};
#else
int iVidOut[] = { VID_OUT_CVBS, VID_OUT_YUV};
#endif
dbouts("\nVideo output format is ");
dbouti(num);
num = iVidOut[num];
d_Cmd = (((DWORD)PS_UPDATE_VID_OUT)<<16) + (DWORD)num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
#endif // D_UNHOOK_STANDARD
}
#endif //D_VIDEO_OUTPUT_MODE
// FW0310 >>>>>>>>>>>
#ifdef TV_GUARDIAN_ENABLE
void tvg_mode_choice(MS_CHOICE *msChoice)
{
int iChoice;
// switch( gps->tvg_mode){
switch ( PS_Get_TVG_Mode_Value()){
case TVG_MODE_OFF:
iChoice = ITEM_TVG_MODE_OFF;
break;
case TVG_MODE_ONTOL:
iChoice = ITEM_TVG_MODE_ONTOL;
break;
case TVG_MODE_ONSTR:
iChoice = ITEM_TVG_MODE_ONSTR;
break;
default:
iChoice = ITEM_TVG_MODE_OFF;
break;
}
msChoice->current_choice = iChoice;
}
void tvg_mode_action(int num)
{
DWORD d_Cmd;
int iTVGMode[] = { TVG_MODE_OFF, TVG_MODE_ONTOL, TVG_MODE_ONSTR };
num = iTVGMode[num];
d_Cmd = (DWORD)num + (((DWORD)PS_UPDATE_TVG_MODE) << 16);
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
if ( num != TVG_MODE_OFF ){
num = SUBTITLE_OFF;
//we need to turn off the subtitle display if TVG Mode is not OFF
d_Cmd = (DWORD)num + (((DWORD)PS_UPDATE_SUBTITLE_LANGUAGE) << 16 );
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
}
}
void tvg_cc_choice(MS_CHOICE *msChoice)
{
int iChoice;
// switch( gps->tvg_cc){
switch( PS_Get_TVG_CC_Value()){
case TVG_CC_OFF:
iChoice = ITEM_TVG_CC_OFF;
break;
case TVG_CC_ON:
iChoice = ITEM_TVG_CC_ON;
break;
case TVG_CC_ONCUSS:
iChoice = ITEM_TVG_CC_CUSS;
break;
default:
iChoice = ITEM_TVG_CC_OFF;
break;
}
msChoice->current_choice = iChoice;
}
void tvg_cc_action(int num)
{
DWORD d_Cmd;
int iTVGCC[] = { TVG_CC_OFF, TVG_CC_ONCUSS, TVG_CC_ON};
num = iTVGCC[num];
d_Cmd = (DWORD)num + (((DWORD)PS_UPDATE_TVG_CC) << 16);
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
}
void tvg_cc_channel_choice(MS_CHOICE *msChoice)
{
int iChoice;
// switch( gps->tvg_cc_channel){
switch( PS_Get_TVG_CC_Channel_Value()){
case TVG_CC1:
iChoice = ITEM_TVG_CC_CC1;
break;
case TVG_CC2:
iChoice = ITEM_TVG_CC_CC2;
break;
default:
iChoice = ITEM_TVG_CC_CC1;
break;
}
msChoice->current_choice = iChoice;
}
void tvg_cc_channel_action(int num)
{
DWORD d_Cmd;
int iTVGCC_Channel[] = {TVG_CC1, TVG_CC2 };
num = iTVGCC_Channel[num];
d_Cmd = (DWORD)num + (((DWORD)PS_UPDATE_TVG_CC_CHANNEL) << 16);
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
}
#endif
#ifdef D_ENABLE_SETUP_JPG_VIEW //DM1015 enable setup the option for JPG view,original/full screen size.
#define ITEMNUM_JPG_VIEW_ORIGINAL 0
#define ITEMNUM_JPG_VIEW_FULLSCR 1
void jpg_view_choice(MS_CHOICE *msChoice)
{
int iChoice;
switch ( gps->jpg_view )
{
case JPG_VIEW_ORIGINAL:
iChoice = ITEMNUM_JPG_VIEW_ORIGINAL;
break;
case JPG_VIEW_FULLSCR:
iChoice = ITEMNUM_JPG_VIEW_FULLSCR;
break;
}
msChoice->current_choice = iChoice;
}
void jpg_view_action(int num)
{
DWORD d_Cmd;
dbouts("\nJpg view is ");
dbouti(num);
d_Cmd = (((DWORD)PS_UPDATE_JPG_VIEW_SETTING)<<16) + (DWORD)num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
}
#endif // D_ENABLE_SETUP_JPG_VIEW
void init_osd_language(void)
{
#ifndef D_NO_CHINESE
if ( gps->osd_menu_language == w_language_code[LANGUAGE_CHINESE] )
gCurrentLanguage = LANGUAGE_CHINESE;
else
#elif D_SPANISH
if ( gps->osd_menu_language == w_language_code[LANGUAGE_SPANISH] )
gCurrentLanguage = LANGUAGE_SPANISH;
else
#endif // D_SPANISH
gCurrentLanguage = LANGUAGE_ENGLISH;
}
#ifdef D_NO_OSD_LNG_DEFAULT
#else
void osd_lng_choice(MS_CHOICE *msChoice)
{
int iChoice;
WORD wLanguage = gps->osd_menu_language;
#ifndef D_NO_CHINESE
if ( wLanguage == w_language_code[LANGUAGE_CHINESE] )
iChoice = ITEMNUM_OSD_LNG_CHINESE;
else
#elif D_SPANISH
if( wLanguage == w_language_code[LANGUAGE_SPANISH] )
iChoice = ITEMNUM_OSD_LNG_SPANISH;
else
#endif // D_SPANISH
iChoice = ITEMNUM_OSD_LNG_ENGLISH;
msChoice->current_choice = iChoice;
}
#endif // D_NO_OSD_LNG_DEFAULT
void setup_erase_menu(void)
{
MS_WIDGET *widget = (MS_WIDGET *) screen;
OSD_SetOrigin((MS_WIDGET *) screen);
OSD_PutRect(0, MS_LINE_HEIGHT, widget->pos.w, widget->pos.h - MS_LINE_HEIGHT, BG_COLOR(widget->color));
}
void osd_lng_action(int num)
{
DWORD d_Cmd;
#ifdef NO_C_STDLIB
rtouts("\nOSD language is "); rtouti(num);
#endif
d_Cmd = (((DWORD)PS_UPDATE_OSD_MENU_LANGUAGE)<<16) + (DWORD) w_language_code[num];
ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
#if 1 // ifdef D_CHANGE_LANGUAGE
if ( gCurrentLanguage != num )
{
// REMINDER This should be handled in ms_multi
((MS_WIDGET *)choice1)->attr &= (unsigned char) ~MS_CHOICE_OPEN;
// REMINDER We should eliminate this redundancy
gCurrentLanguage = num;
setup_erase_menu();
MS_refresh((MS_DIALOG *) screen);
}
#endif // D_CHANGE_LANGUAGE
}
#ifdef D_NO_AUD_LNG_DEFAULT
#else
void aud_lng_choice(MS_CHOICE *msChoice)
{
int iChoice;
WORD wLanguage = gps->audio_language;
#ifndef D_NO_CHINESE
if ( wLanguage == w_language_code[LANGUAGE_CHINESE] )
iChoice = ITEMNUM_AUD_LNG_CHINESE;
else
#elif D_SPANISH
if( wLanguage == w_language_code[LANGUAGE_SPANISH] )
iChoice = ITEMNUM_AUD_LNG_SPANISH;
else
#endif // D_SPANISH
iChoice = ITEMNUM_AUD_LNG_ENGLISH;
msChoice->current_choice = iChoice;
}
#endif // D_NO_AUD_LNG_DEFAULT
void aud_lng_action(int num)
{
DWORD d_Cmd;
#ifdef NO_C_STDLIB
rtouts("\nAudio language is "); rtouti(num);
#endif
num = (int) w_language_code[num];
d_Cmd = (((DWORD)PS_UPDATE_AUDIO_LANGUAGE)<<16) + (DWORD) num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
}
#ifdef D_NO_SUB_LNG_DEFAULT
#else
void sub_lng_choice(MS_CHOICE *msChoice)
{
int iChoice;
WORD wLanguage = gps->subtitle_language;
if ( wLanguage == SUBTITLE_OFF )
iChoice = ITEMNUM_SUB_LNG_OFF;
else
if ( wLanguage == SUBTITLE_AUTO )
iChoice = ITEMNUM_SUB_LNG_AUTO;
else
#ifndef D_NO_CHINESE
if ( wLanguage == w_language_code[LANGUAGE_CHINESE] )
iChoice = ITEMNUM_SUB_LNG_CHINESE;
else
#elif D_SPANISH
if( wLanguage == w_language_code[LANGUAGE_SPANISH] )
iChoice = ITEMNUM_SUB_LNG_SPANISH;
else
#endif // D_SPANISH
iChoice = ITEMNUM_SUB_LNG_ENGLISH;
msChoice->current_choice = iChoice;
}
#endif // D_NO_SUB_LNG_DEFAULT
void sub_lng_action(int num)
{
DWORD d_Cmd;
#ifdef NO_C_STDLIB
rtouts("\nSubtitle language is "); rtouti(num);
#endif
num = (int) w_language_code[num];
d_Cmd = (((DWORD)PS_UPDATE_SUBTITLE_LANGUAGE)<<16) + (DWORD) num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
#ifdef TV_GUARDIAN_ENABLE
//turn off TVG mode
if ( num != SUBTITLE_OFF ){
num = TVG_MODE_OFF;
d_Cmd = (((DWORD)PS_UPDATE_TVG_MODE)<<16) + (DWORD)num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
}
#endif
}
#ifdef D_NO_MENU_LNG_DEFAULT
#else
void menu_lng_choice(MS_CHOICE *msChoice)
{
int iChoice;
WORD wLanguage = gps->dvd_menu_language;
#ifndef D_NO_CHINESE
if ( wLanguage == w_language_code[LANGUAGE_CHINESE] )
iChoice = ITEMNUM_MENU_LNG_CHINESE;
else
#elif D_SPANISH
if( wLanguage == w_language_code[LANGUAGE_SPANISH] )
iChoice = ITEMNUM_MENU_LNG_SPANISH;
else
#endif // D_SPANISH
iChoice = ITEMNUM_MENU_LNG_ENGLISH;
msChoice->current_choice = iChoice;
}
#endif // D_NO_MENU_LNG_DEFAULT
void menu_lng_action(int num)
{
DWORD d_Cmd;
#ifdef NO_C_STDLIB
rtouts("\nDVD menu language is "); rtouti(num);
#endif
num = (int) w_language_code[num];
d_Cmd = (((DWORD)PS_UPDATE_DVD_MENU_LANGUAGE)<<16) + (DWORD) num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
}
static void on_setup_close(void)
{
printf("Setup screen closed\n");
}
void open_setup(void)
{
screen = MS_create_screen((MS_POS *)&setup_pos,screen_color,0,on_setup_close,layout);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&lng_btn, C_FOCUSED);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&vid_btn, !C_FOCUSED);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&aud_btn, !C_FOCUSED);
#ifndef D_NO_6CHANNEL_OUTPUT
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&more_aud_btn, !C_FOCUSED);
#endif
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&par_btn, !C_FOCUSED);
MS_dialog_display((MS_DIALOG*)screen);
}
static void close_dialog_box(void)
{
MS_remove_item((MS_WIDGET *)dialog_box);
}
void osd_enable_choice(MS_CHOICE *msChoice)
{
int iChoice;
BOOL bEnabled;
ui_get_OSD_enabled(&bEnabled);
if ( bEnabled == B_OSD_ENABLED )
iChoice = ITEMNUM_OSD_ON;
else
iChoice = ITEMNUM_OSD_OFF;
msChoice->current_choice = iChoice;
}
void osd_enable_action(int num)
{
BOOL bEnabled[] = { B_OSD_ENABLED, !B_OSD_ENABLED };
#ifdef NO_C_STDLIB
rtouts("\nOSD enabled is "); rtouti(num);
#endif
ui_enable_OSD( bEnabled[num] );
}
static void open_language(void)
{
#ifdef NO_C_STDLIB
rtouts("\nLanguage Button pressed");
#endif //
dialog_box = MS_create_dialog((MS_POS *)&dialog_pos,dialog_color,(MS_DIALOG *)screen,close_language,MS_HOT_SPOT|MS_DLG_CLOSE_ON_UP_FAIL);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)dialog_box, C_FOCUSED);
choice1 = MS_create_choice(&pos1,i_color,&osd_lng_list,&choice_pos1,osd_lng_action,MS_HOT_SPOT);
#ifdef D_NO_OSD_LNG_DEFAULT
#else
osd_lng_choice(choice1);
#endif // D_NO_OSD_LNG_DEFAULT
MS_add_item((MS_DIALOG*)dialog_box,(MS_WIDGET*)&osd_lng_stat, !C_FOCUSED);
MS_add_item((MS_DIALOG*)dialog_box,(MS_WIDGET*)choice1, C_FOCUSED);
choice2 = MS_create_choice(&pos2,i_color,&sub_lng_list,&choice_pos2,sub_lng_action,MS_HOT_SPOT);
#ifdef D_NO_SUB_LNG_DEFAULT
#else
sub_lng_choice(choice2);
#en
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -