⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setup.c

📁 Zoran VP2K731 DVD源代码,极具参考价值!
💻 C
📖 第 1 页 / 共 5 页
字号:
	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 + -