📄 chips.c
字号:
if (++__b3DLevel > 5) __b3DLevel = 0;
break ;
default:
return FALSE;
}
KARAOKE_3DLevel(__b3DLevel);
OSD_OUTPUT_MACRO(MSG_3D, __b3DLevel+1, 0x3);
return TRUE;
#else
// Not support by W9922QF
//if (__btMute)
//{
// __btMute= FALSE;
// OSD_OUTPUT_MACRO(MSG_MUTE, __btMute, 0 );
//}
//OSD_OUTPUT_MACRO(MSG_3D, __b3DLevel, 0x3);
return FALSE ;
#endif
}
// *********************************************************************
// Function : CHIPS_MICControl
// Description : Toggle between mic effect levels
// w9922qf doesn't support mic control
// Arguments : bON :
// CHIPS_TOGGLE, toggle between mic level
// Return : TRUE : supported and carried out
// FALSE : Not supported
// Change :
// Side Effect :
// *********************************************************************
BYTE CHIPS_MICControl(BYTE bON)
{
#ifdef KARAOKE // WWH_HC2500
static _bMicHarmony=0;
switch (bON)
{
case CHIPS_TOGGLE :
if (++_bMicHarmony > 8) _bMicHarmony = 0;
break ;
default:
return FALSE;
}
KARAOKE_MicControl(_bMicHarmony);
OSD_OUTPUT_MACRO ( MSG_KARAOKE, _bMicHarmony, 0x3 );
return TRUE;
#else // #ifdef KARAOKE
// DVD_102Micky, support MIC on/off
#ifdef SUPPORT_MIC_CONTROL
if (bON == CHIPS_ON)
__sbMuteMic = 1 ;
else if (bON == CHIPS_OFF)
__sbMuteMic = 0 ;
#else //#ifdef SUPPORT_MIC_CONTROL
#ifdef SUPPORT_MIC_CONTROL_INV
if (bON == CHIPS_ON)
__sbMuteMic = 0 ;
else if (bON == CHIPS_OFF)
__sbMuteMic = 1 ;
#else //#ifdef SUPPORT_MIC_CONTROL_INV
return FALSE;
#endif //#ifdef SUPPORT_MIC_CONTROL_INV
#endif //#ifdef SUPPORT_MIC_CONTROL
return TRUE;
#endif // #ifdef KARAOKE
}
// *********************************************************************
// Function : CHIPS_VolumeControl
// Description : It will do volume level control according to the parameter
// Arguments : bFunction: The type of command
// CHIPS_UP : control up 1 level
// CHIPS_DOWN : control down 1 level
// CHIPS_NORMAL : set to default level
// CHIPS_TOGGLE : toggle between levels in range
// CHIPS_LEVEL : return current level
// CHIPS_SUPPORT : return if this function supported
// Return : TRUE : Supported/Succeeded
// : FALSE : Not supported
// Change : Will open audio if mute
// Side Effect :
// *********************************************************************
DWORD CHIPS_VolumeControl( BYTE bFunction)
{
//Kevin2.81, Filter if the desired function is supported or not in one place
if (!_CHIPS_FilterFunSupport(CHIPS_VOLUMECONTROL))
return FALSE;
switch(bFunction)
{
case CHIPS_UP:
// wyc.277a-AVSys, function to control the all channel volume up.
#ifdef SUPPORT_AV_SYSTEM
CHIPS_AMPAction(AMP_MODE_ALL_VOL_UP);
return TRUE;
#else
//_TuneAudioVolume(TRUE);
//Kevin2.81 delete _TuneAudioVolume()
__wVolAudio += VOLUME_GAP ;
if ( __wVolAudio > __dwVOLUME_MAX ) //jyliu.yhi
__wVolAudio= __dwVOLUME_MAX;
#endif // #ifdef SUPPORT_AV_SYSTEM
break;
case CHIPS_DOWN:
// wyc.277a-AVSys, function to control the all channel volume down.
#ifdef SUPPORT_AV_SYSTEM
CHIPS_AMPAction(AMP_MODE_ALL_VOL_DOWN);
return TRUE;
#else
//_TuneAudioVolume(FALSE);
//Kevin2.81 delete _TuneAudioVolume()
if ( __wVolAudio < VOLUME_MIN + VOLUME_GAP)
__wVolAudio = VOLUME_MIN;
else
__wVolAudio -= VOLUME_GAP;
#endif // #ifdef SUPPORT_AV_SYSTEM
break;
case CHIPS_LEVEL:
return __wVolAudio;
case CHIPS_NORMAL :
__wVolAudio = VOLUME_DEFAULT ;
break ;
case CHIPS_TOGGLE :
break ;
case CHIPS_SUPPORT :
return TRUE ;
default:
return FALSE;
}
//DVD018
if (__btMute)
{
//DVD018
__btMute= FALSE ;
OSD_OUTPUT_MACRO(MSG_MUTE, __btMute, 0 );
}
CHIPS_OpenAudio(TRUE);
//dwTemp=(_dwVolAudio / VOLUME_GAP);
OSD_OUTPUT_MACRO(MSG_VOLUME, (WORD)(__wVolAudio / VOLUME_GAP), 3 );
return TRUE;
}
//Kevin1.10, create
// *********************************************************************
// Function : CHIPS_MICVolControl
// Description : Do MIC volume level control
// Arguments : bFunction: The type of command
// CHIPS_UP : control up 1 level
// CHIPS_DOWN : control down 1 level
// CHIPS_NORMAL : set to default level
// Return : None
// Side Effect : None
// *********************************************************************
void CHIPS_MICVolControl( BYTE bFunction)
{
#ifndef NO_MIC_INPUT
switch(bFunction)
{
case CHIPS_UP:
__wMICVol += MIC_VOL_GAP ;
if ( __wMICVol > MIC_VOL_MAX )
__wMICVol= MIC_VOL_MAX;
break;
case CHIPS_DOWN:
if ( __wMICVol < MIC_VOL_MIN + VOLUME_GAP)
__wMICVol = MIC_VOL_MIN;
else
__wMICVol -= MIC_VOL_GAP;
break;
case CHIPS_NORMAL :
__wMICVol = MIC_VOL_DEFAULT ;
break;
}
_printf("__wMICVol=%lx\n",__wMICVol);
#define W99AV_DM_MIC_PCMSCALE 0x17ef //20 bits
W99AV_WriteDM(W99AV_DM_MIC_PCMSCALE,__wMICVol);
_bVolOrMIC = 1; //1: MIC
OSD_OUTPUT_MACRO(MSG_VOLUME, (__wMICVol / MIC_VOL_GAP), 3 );
_bVolOrMIC = 0; //0: VOLUME
#endif
}
//#######################################################################
// Function : CHIPS_EPPROMReadWriteVolume
// Description : Write to per-channel volume to serial EPPROM.
// Parameters : bState, the state of the write process.
// Return : None
//#######################################################################
// wyc2.79, rename this function and add read EPPROM code inside it
void CHIPS_EPPROMReadWriteVolume (BYTE bState)
{
#ifdef SUPPORT_AV_SYSTEM
#ifdef VOLUME_VALUE_SAVE_IN_SERIAL_EPROM
if (bState & WRITE_TO_EPPROM)
{
if (bState == WRITE_ALL_INITIAL)
{
__bAMPVol = DEFAULT_ALL_CHANNEL_VOLUME;
for (_bCHIPSTmp=0; _bCHIPSTmp < EPROM_PER_CHANNEL_VOLUME_BYTE; _bCHIPSTmp++)
__bPerVol[_bCHIPSTmp] = DEFAULT_OTHER_CHANNEL_DEGREE;
}
bState &= 0x3; //Kevin2.79-2, otherwise will always enter the following two cases simultaneously
if (bState & WRITE_ALL_CHANNEL_NOT_INITIAL)
HAL_EEPROM_Write(AVSYS_ADDR_ALL_VOLUME, __bAMPVol);
if (bState & WRITE_PER_CHANNEL_NOT_INITIAL)
{
//Kevin2.80, use HAL_EEPROM_PWrite instead of HAL_EEPROM_Write to decrease the # of times to do _I2C_Write()
//for (_bCHIPSTmp=0; _bCHIPSTmp<EPROM_PER_CHANNEL_VOLUME_BYTE; _bCHIPSTmp++)
// HAL_EEPROM_Write(AVSYS_ADDR_PER_CHANNEL_VOLUME + _bCHIPSTmp, __bPerVol[_bCHIPSTmp]);
HAL_EEPROM_PWrite(AVSYS_ADDR_PER_CHANNEL_VOLUME, __bPerVol, EPROM_PER_CHANNEL_VOLUME_BYTE);
}
}
else //READ_FROM_EPPROM
{
__bAMPVol = HAL_EEPROM_Read(AVSYS_ADDR_ALL_VOLUME);
HAL_EEPROM_PRead(AVSYS_ADDR_PER_CHANNEL_VOLUME, EPROM_PER_CHANNEL_VOLUME_BYTE, __bPerVol);
//Kevin2.81 add EEPROM read protection for __bAMPVol & __bPerVol
if(__bAMPVol>MAX_ALL_CHANNEL_VOLUME)
__bAMPVol = DEFAULT_ALL_CHANNEL_VOLUME;
for (_bCHIPSTmp=0; _bCHIPSTmp < EPROM_PER_CHANNEL_VOLUME_BYTE; _bCHIPSTmp++)
{
if(__bPerVol[_bCHIPSTmp]>MAX_OTHER_CHANNEL_DEGREE)
__bPerVol[_bCHIPSTmp] = DEFAULT_OTHER_CHANNEL_DEGREE;
}
}
#else
//bState &= 0x3; //Kevin2.79-2, commented, WRITE_ALL_CHANNEL_NOT_INITIAL/WRITE_PER_CHANNEL_NOT_INITIAL will do nothing
if ( (bState == READ_FROM_EPPROM) || (bState == WRITE_ALL_INITIAL) )
{
__bAMPVol = DEFAULT_ALL_CHANNEL_VOLUME;
for (_bCHIPSTmp=0; _bCHIPSTmp < EPROM_PER_CHANNEL_VOLUME_BYTE; _bCHIPSTmp++)
__bPerVol[_bCHIPSTmp] = DEFAULT_OTHER_CHANNEL_DEGREE;
}
#endif //
#endif // SUPPORT_AV_SYSTEM
}
// wyc2.80, move function CHIPS_ComputeVolumeValue to AMP module and rename to _AMP_CombineMainPerVol.
// .....
// *********************************************************************
// Function : CHIPS_AMPAction
// Description : This function is used to control AMP mode.
// Arguments : bAMPMode -> The operation of AMP mode.
// Return : void
// Change :
// Side Effect :
// *********************************************************************
//Kevin2.81 rename CHIPS_AMPActive as CHIPS_AMPAction
void CHIPS_AMPAction(BYTE bAMPMode)
{
#ifdef SUPPORT_AV_SYSTEM
__dwTimeAMP = UTL_GetSysTimer();
if ((bAMPMode == AMP_MODE_ALL_VOL_UP) || (bAMPMode == AMP_MODE_ALL_VOL_DOWN))
{
__bAMPActive |= AMP_TUNE_ALL_CHANNEL;
// wyc.278-3, only write per channel volume to serial EPPROM when enter tuning all volume mode from per-channel mode.
if (__bAMPActive & AMP_TUNE_PER_CHANNEL)
{
CHIPS_EPPROMReadWriteVolume(WRITE_PER_CHANNEL_NOT_INITIAL);
__bAMPActive &= ~AMP_TUNE_PER_CHANNEL;
}
if (bAMPMode == AMP_MODE_ALL_VOL_UP)
{
if (__bAMPVol < MAX_ALL_CHANNEL_VOLUME)
__bAMPVol++;
}
else
{
if (__bAMPVol != 0)
__bAMPVol--;
}
// wyc.278-3, mute on when enter AMP mode.
if (__btMute)
{
__btMute= FALSE ;
CHIPS_OpenAudio(TRUE);
OSD_OUTPUT_MACRO(MSG_MUTE, __btMute, 0 );
// wyc2.80, rename function name to AMP_mute
AMP_mute(__btMute?DAC_MUTE_ON:DAC_MUTE_OFF); // KCHong, shut down DDX when mute, 278b-Mustek
}
// wyc2.80, rename function name to AMP_SetChannelVolume
AMP_SetChannelVolume(AUDIO_CHANNEL_ALL, TRUE);
__wTemp = MAKEWORD(__bAMPVol, AUDIO_CHANNEL_ALL);
OSD_OUTPUT_MACRO(MSG_VOLUME, __wTemp, 0xff);
}
else
{
// wyc.277a, need to notice if updaing the key define number then need to update follow code also.
if (bAMPMode != AMP_MODE_ENTER_EXIT)
bAMPMode -= INPUT_KEY_GROUP8;
switch (bAMPMode)
{
case AMP_MODE_KEY_UP:
if (__bAudioChannel > AUDIO_CHANNEL_BEGIN)
__bAudioChannel--;
else
__bAudioChannel = AUDIO_CHANNEL_END;
break;
case AMP_MODE_KEY_DOWN:
if (__bAudioChannel < AUDIO_CHANNEL_END)
__bAudioChannel++;
else
__bAudioChannel = AUDIO_CHANNEL_BEGIN;
break;
case AMP_MODE_KEY_LEFT:
if (__bPerVol[__bAudioChannel] != 0)
__bPerVol[__bAudioChannel]--;
break;
case AMP_MODE_KEY_RIGHT:
if (__bPerVol[__bAudioChannel] < MAX_OTHER_CHANNEL_DEGREE ) // wyc2.79
__bPerVol[__bAudioChannel]++;
break;
case AMP_MODE_ENTER_EXIT:
if (__bAMPActive & AMP_TUNE_PER_CHANNEL)
{
__bAMPActive &= ~AMP_TUNE_PER_CHANNEL;
CHIPS_EPPROMReadWriteVolume(WRITE_PER_CHANNEL_NOT_INITIAL);
}
else
{
CHIPS_EPPROMReadWriteVolume(WRITE_ALL_CHANNEL_NOT_INITIAL);
__bAMPActive |= AMP_TUNE_PER_CHANNEL;
}
break;
}
__wTemp = MAKEWORD(__bPerVol[__bAudioChannel], __bAudioChannel);
__bKeyMessage = MSG_VOLUME;
if (__bAMPActive & AMP_TUNE_PER_CHANNEL)
{
// wyc2.80, rename function name to AMP_SetChannelVolume
if ((bAMPMode == AMP_MODE_KEY_LEFT) || (bAMPMode == AMP_MODE_KEY_RIGHT))
AMP_SetChannelVolume(__bAudioChannel, TRUE);
OSD_OUTPUT_MACRO(MSG_VOLUME, __wTemp, 0xFF);
}
else
{
// LLY.278, use meaning define for MSG_VOLUME, ex. "CLEAR_MSG"
OSD_OUTPUT_MACRO(MSG_VOLUME, CLEAR_MSG, NULL);
}
}
#endif // #ifdef SUPPORT_AV_SYSTEM
}
// end ..
// *********************************************************************
// Function : CHIPS_ChannelSwitch
// Description : It will set the desired channel mode
// Arguments : bCh: The type of channel
// CHIPS_LRD : Audio is Stereo (LR) Dolby Surround Compatible
// CHIPS_C : Audio is Center
// CHIPS_LR : Audio is LR
// CHIPS_LCR : Audio is LCR
// CHIPS_LRLS : Audio is LRLs
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -