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

📄 setup.c

📁 Zoran VP2K731 DVD源代码,极具参考价值!
💻 C
📖 第 1 页 / 共 5 页
字号:
	dts_digital_action( ITEMNUM_DOUT_OFF );
	choice6->current_choice = ITEMNUM_DOUT_OFF;
	choice6->widget.user_op(&choice6->widget,MS_UOP_DISPLAY,0);
  }
#endif // D_UNHOOK_DTS_ANALOG
}
#endif // defined(D30_BOARD) || defined(D50_BOARD)

#ifdef D_NO_OTHERS_ANALOG_DEFAULT
#else
void others_analog_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  int iOthersAnalog = PS_GET_ANALOG_AUDIO_SETTING(AUDIO_STREAM_LPCM);
  
  switch ( iOthersAnalog )
  {
#ifndef D_NO_2CHANNEL_OUTPUT
	case ANALOG_AUDIO_2CH:
	  iChoice = ITEMNUM_2CH;
	  break;
#else
#endif
#ifndef D_NO_6CHANNEL_OUTPUT
	case ANALOG_AUDIO_6CH:
	  iChoice = ITEMNUM_6CH;
	  break;
#else
#endif

	case NO_ANALOG_AUDIO:
	// Fall through
	
	default:
	  iChoice = ITEMNUM_AOUT_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}
#endif // D_NO_OTHERS_ANALOG_DEFAULT

void others_analog_action(int num)
{
#ifdef D_UNHOOK_OTHERS_ANALOG
	printf("Others analog is %d\n",num);
#else
  DWORD d_Cmd;
#ifdef D_NO_2CHANNEL_OUTPUT
  int iOthersAnalog[] = { ANALOG_AUDIO_6CH, NO_ANALOG_AUDIO };
#endif
#ifdef D_NO_6CHANNEL_OUTPUT
  int iOthersAnalog[] = { ANALOG_AUDIO_2CH, NO_ANALOG_AUDIO };
#endif
#if D_NO_2CHANNEL_OUTPUT|D_NO_6CHANNEL_OUTPUT
#else
  int iOthersAnalog[] = { ANALOG_AUDIO_2CH, ANALOG_AUDIO_6CH, NO_ANALOG_AUDIO };
#endif
  int iSetting;
  
  dbouts("\nAnalog Output Others Settings");
  dbouti( num );

  iSetting = iOthersAnalog[ num ];
  PS_SET_ANALOG_AUDIO_SETTING(AUDIO_STREAM_LPCM,iSetting);
  PS_SET_ANALOG_AUDIO_SETTING(AUDIO_STREAM_PCM,iSetting);
  PS_SET_ANALOG_AUDIO_SETTING(AUDIO_STREAM_MPEG,iSetting);
//#ifdef HDCD_CAPABLE
//  PS_SET_ANALOG_AUDIO_SETTING(AUDIO_STREAM_HDCD,iSetting);
//#endif
  
  d_Cmd = (((DWORD)PS_UPDATE_ANALOG_SETTINGS_LSB)<<16) + (gps->analog_setting&0xFFFFL);
  ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);

#ifdef D20_BOARD
#if D_NO_6CHANNEL_OUTPUT|D_NO_2CHANNEL_OUTPUT
#else
  if ( (num == ITEMNUM_6CH) && (choice8->current_choice == ITEMNUM_RAW) )
  {
	others_digital_action( ITEMNUM_DOUT_OFF );
	choice8->current_choice = ITEMNUM_DOUT_OFF;
	choice8->widget.user_op(&choice8->widget,MS_UOP_DISPLAY,0);
  }
#endif
#endif // D20_BOARD

#endif // D_UNHOOK_OTHERS_ANALOG
}


//
// Digital choice handling
//

#ifdef D_NO_AC3_DIGITAL_DEFAULT
#else
void ac3_digital_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  int iAC3Digital = PS_GET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_AC3);
  
  switch ( iAC3Digital )
  {
	case DIGITAL_AUDIO_PCM:
	  iChoice = ITEMNUM_PCM;
	  break;

	case DIGITAL_AUDIO_BITSTREAM:
	  iChoice = ITEMNUM_RAW;
	  break;

	case NO_DIGITAL_AUDIO:
	// Fall through
	
	default:
	  iChoice = ITEMNUM_DOUT_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}
#endif // D_NO_AC3_DIGITAL_DEFAULT


void ac3_digital_action(int num)
{
#ifdef D_UNHOOK_AC3_DIGITAL
  printf("AC3 digital is %d\n",num);
#else
  DWORD d_Cmd;
  int iAC3Digital[] = { DIGITAL_AUDIO_PCM, DIGITAL_AUDIO_BITSTREAM, NO_DIGITAL_AUDIO };
  
  dbouts("\nDigital Output AC3 Settings");
  dbouti( num );

  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_AC3,iAC3Digital[ num ]);
  
  d_Cmd = (((DWORD)PS_UPDATE_DIGITAL_SETTINGS_LSB)<<16) + (gps->digital_setting&0xFFFFL);
  ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);

#ifdef D20_BOARD
#if D_NO_6CHANNEL_OUTPUT|D_NO_2CHANNEL_OUTPUT
#else
  if ( (num != ITEMNUM_DOUT_OFF) && (choice1->current_choice == ITEMNUM_6CH) )
  {
	// set Digital settings to Off
	ac3_analog_action( ITEMNUM_2CH );
	choice1->current_choice = ITEMNUM_2CH;
	choice1->widget.user_op(&choice1->widget,MS_UOP_DISPLAY,0);
  }
#endif
#endif // D20_BOARD

#endif // D_UNHOOK_AC3_DIGITAL
}

#ifdef D_NO_MPEG_DIGITAL_DEFAULT
#else
void mpeg_digital_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  int iMPEGDigital = PS_GET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_MPEG);
  
  switch ( iMPEGDigital )
  {
	case DIGITAL_AUDIO_PCM:
	  iChoice = ITEMNUM_PCM;
	  break;

	case DIGITAL_AUDIO_BITSTREAM:
	  iChoice = ITEMNUM_RAW;
	  break;

	case NO_DIGITAL_AUDIO:
	// Fall through
	
	default:
	  iChoice = ITEMNUM_DOUT_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}
#endif // D_NO_MPEG_DIGITAL_DEFAULT


void mpeg_digital_action(int num)
{
#ifdef D_UNHOOK_MPEG_DIGITAL
  printf("MPEG digital is %d\n",num);
#else
  DWORD d_Cmd;
  int iMPEGDigital[] = { DIGITAL_AUDIO_PCM, DIGITAL_AUDIO_BITSTREAM, NO_DIGITAL_AUDIO };
  
  dbouts("\nDigital Output MPEG Settings");
  dbouti( num );

  num = iMPEGDigital[ num ];
  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_MPEG,num);
  
  d_Cmd = (((DWORD)PS_UPDATE_DIGITAL_SETTINGS_LSB)<<16) + (gps->digital_setting&0xFFFFL);
  ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);

#endif // D_UNHOOK_MPEG_DIGITAL
}

#ifdef D_NO_MP3_DIGITAL_DEFAULT
#else
void mp3_digital_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  int iMP3Digital = PS_GET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_MP3);
  
  switch ( iMP3Digital )
  {
	case DIGITAL_AUDIO_PCM:
	  iChoice = ITEMNUM_MP3_PCM;
	  break;

	case NO_DIGITAL_AUDIO:
	// Fall through
	
	default:
	  // REMINDER should be _OFF
	  iChoice = ITEMNUM_MP3_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}
#endif // D_NO_MP3_DIGITAL_DEFAULT

void mp3_digital_action(int num)
{
#ifdef D_UNHOOK_MP3_DIGITAL
	printf("MP3 digital is %d\n",num);
#else
  DWORD d_Cmd;
  int iMP3Digital[] = { DIGITAL_AUDIO_PCM, NO_DIGITAL_AUDIO };
  
  dbouts("\nDigital Output MP3 Settings: ");
  dbouti( num );

  num = iMP3Digital[ num ];
  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_MP3,num);
  
  d_Cmd = (((DWORD)PS_UPDATE_DIGITAL_SETTINGS_LSB)<<16) + (gps->digital_setting&0xFFFFL);
  ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);

#endif // D_UNHOOK_MP3_DIGITAL
}

// <<< ZORAN CDE0724 : Fix usage of D20_BOARD and DTS_DISABLE macros
#ifndef DTS_DISABLE

#if (defined(D30_BOARD) || defined(D50_BOARD))
#ifdef D_NO_DTS_DIGITAL_DEFAULT
#else
void dts_digital_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  int iDTSDigital = PS_GET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_DTS);
  
  switch ( iDTSDigital )
  {
	case DIGITAL_AUDIO_PCM:
	  iChoice = ITEMNUM_PCM;
	  break;

	case DIGITAL_AUDIO_BITSTREAM:
	  iChoice = ITEMNUM_RAW;
	  break;

	case NO_DIGITAL_AUDIO:
	// Fall through
	
	default:
	  iChoice = ITEMNUM_DOUT_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}
#endif // D_NO_DTS_DIGITAL_DEFAULT

void dts_digital_action(int num)
{
#ifdef D_UNHOOK_DTS_DIGITAL
	printf("DTS digital is %d\n",num);
#else
  DWORD d_Cmd;
  int iDTSDigital[] = { DIGITAL_AUDIO_PCM, DIGITAL_AUDIO_BITSTREAM, NO_DIGITAL_AUDIO };
  
  dbouts("\nDigital Output DTS Settings");
  dbouti( num );

  num = iDTSDigital[ num ];
  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_DTS,num);
  
  d_Cmd = (((DWORD)PS_UPDATE_DIGITAL_SETTINGS_LSB)<<16) + (gps->digital_setting&0xFFFFL);
  ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
#ifndef DTS_DISABLE		//DM0316 enable DTS SPDIF when disable DTS
  if  ( (num == DIGITAL_AUDIO_BITSTREAM ) && (choice2->current_choice != ITEMNUM_AOUT_OFF) )
  {
	dts_analog_action( ITEMNUM_AOUT_OFF );
	choice2->current_choice = ITEMNUM_AOUT_OFF;
	choice2->widget.user_op(&choice2->widget,MS_UOP_DISPLAY,0);
  }
#endif
#endif // D_UNHOOK_DTS_DIGITAL
}
#endif // defined(D30_BOARD) || defined(D50_BOARD)
#endif // DTS_DISABLE
// ZORAN CDE0724 >>>

// ZORAN CDE0724 : Fix usage of D20_BOARD and DTS_DISABLE macros
#if (defined(D20_BOARD) || defined(DTS_DISABLE))
//#ifdef D20_BOARD
void dts_digital_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  int iDTSDigital = PS_GET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_DTS);
  
  switch ( iDTSDigital )
  {
	case DIGITAL_AUDIO_BITSTREAM:
	  iChoice = ITEMNUM_DTS_RAW;
	  break;

	case NO_DIGITAL_AUDIO:
	// Fall through
	
	default:
	  iChoice = ITEMNUM_DTS_DOUT_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}

void dts_digital_action(int num)
{
  DWORD d_Cmd;
  int iDTSDigital[] = { DIGITAL_AUDIO_BITSTREAM, NO_DIGITAL_AUDIO };
  
  dbouts("\nDigital Output DTS Settings");
  dbouti( num );

  num = iDTSDigital[ num ];
  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_DTS,num);
  
  d_Cmd = (((DWORD)PS_UPDATE_DIGITAL_SETTINGS_LSB)<<16) + (gps->digital_setting&0xFFFFL);
  ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
}
#endif // D20_BOARD

#ifdef D_NO_OTHERS_DIGITAL_DEFAULT
#else
void others_digital_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  int iOthersDigital = PS_GET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_LPCM);
  
  switch ( iOthersDigital )
  {
	case DIGITAL_AUDIO_PCM:
	  iChoice = ITEMNUM_PCM;
	  break;

	case DIGITAL_AUDIO_BITSTREAM:
	  iChoice = ITEMNUM_RAW;
	  break;

	case NO_DIGITAL_AUDIO:
	// Fall through
	
	default:
	  iChoice = ITEMNUM_DOUT_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}
#endif // D_NO_OTHERS_DIGITAL_DEFAULT

void others_digital_action(int num)
{
#ifdef D_UNHOOK_OTHERS_DIGITAL
	printf("Others digital is %d\n",num);
#else
  DWORD d_Cmd;
  int iOthersDigital[] = { DIGITAL_AUDIO_PCM, DIGITAL_AUDIO_BITSTREAM, NO_DIGITAL_AUDIO };
  
  dbouts("\nDigital Output Others Settings");
  dbouti( num );

  num = iOthersDigital[ num ];
  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_LPCM,num);
  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_PCM,num);
  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_MPEG,num);
#ifdef HDCD_CAPABLE
//  PS_SET_DIGITAL_AUDIO_SETTING(AUDIO_STREAM_HDCD,num);
#endif
  
  d_Cmd = (((DWORD)PS_UPDATE_DIGITAL_SETTINGS_LSB)<<16) + (gps->digital_setting&0xFFFFL);
  ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);

#ifdef D20_BOARD
#if D_NO_6CHANNEL_OUTPUT|D_NO_2CHANNEL_OUTPUT
#else
  if ( (num == ITEMNUM_RAW) && (choice4->current_choice == ITEMNUM_6CH) )
  {
	others_analog_action( ITEMNUM_2CH );
	choice4->current_choice = ITEMNUM_2CH;
	choice4->widget.user_op(&choice4->widget,MS_UOP_DISPLAY,0);
  }
#endif
#endif // D20_BOARD

#endif // D_UNHOOK_OTHERS_DIGITAL
}


#ifdef D_NO_SUBWOOFER_DEFAULT
#else
void sub_aud_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  
  switch ( gps->subwoofer )
  {
	case SW_SETTING_ON:
	  iChoice = ITEMNUM_SUB_ON;
	  break;

	case SW_SETTING_OFF:
	  // Fall through

	default:
	  iChoice = ITEMNUM_SUB_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}
#endif // D_NO_SUBWOOFER_DEFAULT

void sub_aud_action(int num)
{
#ifdef D_UNHOOK_SUBWOOFER
	printf("Subwoofer is %d\n",num);
#else
  DWORD d_Cmd;
  int iSubwoofer[]={ SW_SETTING_ON, SW_SETTING_OFF };

  dbouts("\Subwoofer is ");
  dbouti(num);

  num = iSubwoofer[num];

  d_Cmd = (((DWORD)PS_UPDATE_SW_SETTING)<<16) + (DWORD)num;
  ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
#endif // D_UNHOOK_SUBWOOFER
}

#ifdef D_NO_PROLOGIC_DEFAULT
#else
void pro_aud_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  
  switch ( gps->prologic )
  {
	case PROLOGIC_SETTING_AUTO:
	  iChoice = ITEMNUM_PRO_AUTO;
	  break;

	case PROLOGIC_SETTING_ON:
	  iChoice = ITEMNUM_PRO_ON;
	  break;

	case PROLOGIC_SETTING_OFF:
	  // Fall through

	default:
	  iChoice = ITEMNUM_PRO_OFF;
	  break;
  }

  msChoice->current_choice = iChoice;
}
#endif // D_NO_PROLOGIC_DEFAULT

void pro_aud_action(int num)
{
#ifdef D_UNHOOK_PROLOGIC
	printf("Prologic is %d\n",num);
#else
  DWORD d_Cmd;
  int iPrologic[]={ PROLOGIC_SETTING_AUTO, PROLOGIC_SETTING_ON, PROLOGIC_SETTING_OFF };

  dbouts("\nPrologic is ");
  dbouti(num);

  num = iPrologic[num];

  d_Cmd = (((DWORD)PS_UPDATE_PROLOGIC_SETTING)<<16) + (DWORD)num;
  ie_send_ex(IE_CORE_UPDATE_PS, (void *) d_Cmd);
#endif // D_UNHOOK_PROLOGIC
}

/////////////////////////////////// Ban
#ifdef D_ENABLE_SETUP_PKNOISE
void pknoise_aud_choice(MS_CHOICE *msChoice)
{
  msChoice->current_choice = ITEMNUM_PKNOISE_OFF;
}

void pknoise_aud_action(int num)
{
#ifdef D_UNHOOK_PKNOISE
	printf("Pink noise is %d\n",num);
#else
//  DWORD d_Cmd;
//  int iPknoise[]={ PKNOISE_SETTING_OFF,  };

	dbouts("\nPknoise is ");
	dbouti(num);

	if (num == ITEMNUM_PKNOISE_SUB) {
#ifdef D_NO_FORCE_CHOICE_MACRO
		sub_aud_action (ITEMNUM_SUB_ON);
		choice2->current_choice = ITEMNUM_SUB_ON;
		choice2->widget.user_op(&choice2->widget,MS_UOP_DISPLAY,0);
#else
		FORCE_CHOICE( sub_aud_action, ITEMNUM_SUB_ON, choice2 );
#endif
	}



  ie_send_ex(IE_CORE_PINK_NOISE, (void *) num);
#endif // D_UNHOOK_PKNOISE
}
#endif // D_ENABLE_SETUP_PKNOISE
/////////////////////////////////// Ban


#ifdef D_NO_SPK_AUD_DEFAULT
#else
void spk_aud_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  
  // REMINDER This is obsolete
  iChoice = 0;
  
  msChoice->current_choice = iChoice;
}
#endif // D_NO_SPK_AUD_DEFAULT

void spk_aud_action(int num)
{
	printf("Speaker is %d\n",num);
}


#ifdef D_NO_RES_VID_DEFAULT
#else
void res_vid_choice(MS_CHOICE *msChoice)
{
  int iChoice;
  
  switch ( gps->widescreen_mode )
  {
	case PS_TV43LB:
	  iChoice = ITEMNUM_4_3_LETTERBOX;
	  break;

	case PS_TV169:
	  iChoice = ITEMNUM_16_9;
	  break;

	case PS_TV43PS:
	  // Fall through

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -