📄 bbktuner.c
字号:
/**************************************************************************************/
/*********************** BBK CONFIDENTIAL ************************/
/*********************** ************************/
/*********************** Description : Digital Audio Process ************************/
/*********************** ************************/
/*********************** Company: BBK AV ELECTRONICS CORP.,LTD ************************/
/*********************** ************************/
/*********************** Programmer : Terry Lee ******** ****************/
/**************************************************************************************/
#define BBKTUNER_PAR
#pragma NOAREGS
#include "general.h"
//#include "..\..\procdef.h"
#include "..\..\typedef.h"
#include "..\..\vardef.h"
#ifdef AV_CENTER
#include "..\..\..\Procdef.h"
#endif
#if defined(DV997K) || defined(DV979) || defined(DV985) || defined(DVR003)
sbit V_MUTE = P3^0;
#endif
extern BOOL fgCOMVolumeDownKey(void) large;
extern BOOL fgCOMMuteKey(void) large;
extern BOOL fgCOMVolumeUpKey(void) large;
extern BYTE bSetMic(WORD wEEPos, BYTE bValue) large;
//extern void vKaraOkTunerToDvd(void)large;
extern void vPlayerFuncSwitch(BYTE bMode) large;
//#define BBKTUNER_DEBUG
#ifdef BBKTUNER_DEBUG
extern void DRS232LogS(char * pcStr);
extern void DRS232LogB(BYTE bV1, BYTE bV2, BYTE bV3, BYTE bV4);
#endif
#ifdef AV_CENTER
extern BYTE bSetMic(WORD wEEPos, BYTE bValue) large;
#endif
#ifdef BBK_RD2_OLD_TUNER
//#define BBKTUNER_DEBUG
#ifdef BBKTUNER_DEBUG
extern void DRS232LogS(char * pcStr);
extern void DRS232LogB(BYTE bV1, BYTE bV2, BYTE bV3, BYTE bV4);
#endif
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vBandKey(void) large
{
_bProcess=RUN_KEYAMFM;
_bRunStep=0;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAmStepKey(void) large
{
if(_fgAmFm!=AMFM_AM) return;
_bProcess=RUN_KEYAMFM;
_bRunStep=13;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAutoManKey(void) large
{
_bRunStep=8;
_bProcess=RUN_KEYAMFM;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vStepUpDownKey(BYTE conreg) large
{
_bRunStep=2;
if(conreg==0x0F)
{
_fgTunerDir=T_FREQUP;
}
else
{
_fgTunerDir=T_FREQDN;
}
_bProcess=RUN_KEYAMFM;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vSearchUpDownKey(BYTE conreg) large
{
_bRunStep=3;
if(conreg==0x0F)
{
_fgTunerDir=T_FREQUP;
}
else
{
_fgTunerDir=T_FREQDN;
}
_bProcess=RUN_KEYAMFM;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAutoSearchLongKey(void) large
{
_bRunStep=0;
_bProcess=RUN_KEYAUTOSEARCH;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void fgTunerSleepKey(void) large
{
_bRunStep=0;
_bProcess=RUN_TUNERSLEEP;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerMemoryKey(void) large
{
_bRunStep=0;
_bProcess=RUN_KEYTUNEMORY;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerChKey(BYTE channel) large
{
static BYTE xdata r_ch0;
static BYTE xdata r_ch1;
if(_fgTuneKey==0)
{
if(channel==0)
{
return;
}
r_ch1=0;
r_ch0=0;
}
if(channel==10)
{
r_ch0=0;
r_ch1+=10;
if(r_ch1>=20)
{
r_ch1=20;
_fgTuneKey=0;
}
else
{
_fgTuneKey=1;
}
}
else
{
r_ch0=channel;
//_bKeyEnable=ENABLE_NON_KEY;
}
_bProgram=r_ch1+r_ch0;
_bRunStep=0;
_bProcess=RUN_KEYCHANNEL;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vPresetUpDownKey(BYTE conreg) large
{
if(conreg==0x0F)
{
_bRunStep=0; // UP
}
else
{
_bRunStep=2; // DN
}
_bProcess=RUN_KEYTUNEPRESET;
}
#ifdef TUNER_SHOWVOLUME
/*============================================================================*/
/*============================================================================*/
/* system master volume processor */
/*============================================================================*/
/*============================================================================*/
void vVolKey(BYTE conreg)large
{
//if(f_mute==MUTE_ON) f_mute=MUTE_OFF;
if(conreg==0x0F) _bRunStep=0;
else _bRunStep=1;
_bProcess=RUN_KEYNORMALKEY;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
#if 1
void vMuteKey(void )large
{
_bProcess=RUN_KEYMUTE;
_bRunStep=0;
}
#endif
#endif
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerClearKey(void) large
{
_bRunStep=0; // UP
_bProcess=RUN_KEYTUNCLEAR;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
BOOL vIrKeyEnableTunerPro(void) large
{
switch(_bIRKey)
{
case IR_AMP_SAVE:
vTunerMemoryKey();
break;
case IR_AMP_BAND:
vBandKey();
break;
#ifdef PANEL_CHANGESOURCE
case IR_PANEL_SOURCE:
fgAmpFunAudioKey();
// _fgFMAMChange++;
//case IR_AMP_BAND:
// if(_fgFMAMChange==1)
//{
// vBandKey();
// }
// else if((_fgFMAMChange==2))
// {
// _fgFMAMChange=0;
// vBBKTunerExit();
//}
break;
#endif
#ifdef PANEL_CHANGESOURCE
case IR_FUNCTION:
_fgFMAMChange++;
if(_fgFMAMChange==1)
{
vBandKey();
}
else if((_fgFMAMChange==2))
{
_fgFMAMChange=0;
vBBKTunerExit();
}
break;
#endif
case IR_AMP_AUTO_MAN:
vAutoManKey();
break;
case IR_AMP_AM_STEP:
vAmStepKey();
break;
//case IR_FR:
case IR_LEFT:
vStepUpDownKey(0xf0);
break;
//case IR_FF:
case IR_RIGHT:
vStepUpDownKey(0x0f);
break;
// case IR_DOWNSEARCH:
case IR_DOWN:
_bVfdTimer=0;
vSearchUpDownKey(0xf0);
break;
// case IR_UPSEARCH:
case IR_UP:
_bVfdTimer=0;
vSearchUpDownKey(0x0f);
break;
case IR_AMP_SEARCHLONG:
vAutoSearchLongKey();
break;
case IR_NUM0:
case IR_NUM1:
case IR_NUM2:
case IR_NUM3:
case IR_NUM4:
case IR_NUM5:
case IR_NUM6:
case IR_NUM7:
case IR_NUM8:
case IR_NUM9:
case IR_ADD10:
vTunerChKey(_bIRKey);
break;
case IR_PREV:
vPresetUpDownKey(0xf0);
break;
case IR_NEXT:
vPresetUpDownKey(0x0f);
break;
case IR_AMP_TUNER_CLEAR:
vTunerClearKey();
break;
default:
break;
}
return(1);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static BOOL bBBKTunerSpecKey(void) large
{
BOOL bRet = 1;//RET_SUCCESS;
switch(_bIRKey)
{
case IR_AMP_FUN_RADIO:
case IR_AMP_FUN_AUX_TEMP:
fgAmpFunAudioKey();
break;
#if 0//def AV_CENTER
case IR_AMP_FUN_RADIO_TEMP:
vBandKey();
break;
#endif
case IR_AMP_MUTE:
//fgNonDvdCOMMuteKey();
break;
/*This keys are processed in main keyproc!*/
case IR_POWER:
ClrDapMute();
#ifdef DVR003
V_MUTE=1;
#endif
SetVMute();
//_bBBKSysState = SYS_STATE_POWERDOWN;
// vBBKAuxinExit();
_bSysState =PD_STATE;
vBBKDvdEnterSeting();
break;
#ifdef BBK_RD2_RDS
case IR_SETUP:
vRDSDispDeal();
break;
#endif
#ifdef TIME_SLEEP_FUCTION
case IR_AMP_SLEEP:
vVfdClearAll();
fgTunerSleepKey();
break;
#endif
case IR_AMP_FUN_DVD:
//vBBKDvdEnter();
break;
case IR_AMP_FUN:
_bIRKey=IR_AMP_FUN_AUX;
// case IR_AMP_FUN_DVD:
case IR_AMP_FUN_OPTICAL:
case IR_AMP_FUN_COAXIAL:
//case IR_AMP_FUN_AUX:
// case IR_FUNCTION:
#if 0//def PANEL_CHANGESOURCE
case IR_PANEL_SOURCE:
//_fgPanelChange=1;
#endif
//case IR_CAPTURE:
vBBKTunerExit();
break;
#if defined (DVR003)||defined(AV_CENTER)
case IR_DEV_CHG:
// vBBKDvdEnter();
_bSysState = AUXIN_STATE;
vBBKDvdEnterSeting();
break;
#endif
#ifdef AV_CENTER
case IR_AMP_FUN_USB:
_bSysState = AUXIN_STATE;
vBBKDvdEnterSeting();
break;
#endif
/*case IR_AMP_FUN:
case IR_AMP_FUN_AUDIO:
#ifdef RDS_USE_BU1924
MDisableTimer1();
#endif
fgAmpFunAudioKey();
break;
case IR_AMP_FUN_MMUI:
fgAmpFunUsbKey();
break;*/
case IR_AMP_CHANNEL_LEFT:
fgAmpChannelLeftKey();
break;
case IR_AMP_CHANNEL_RIGHT:
fgAmpChannelRightKey();
break;
case IR_AMP_CHANNEL_UP:
fgAmpChannelUpKey();
break;
case IR_AMP_CHANNEL_DN:
fgAmpChannelDnKey();
break;
case IR_AMP_BASS_UP:
fgAmpBassUpKey();
break;
case IR_AMP_BASS_DN:
fgAmpBassDnKey();
break;
case IR_AMP_TREBLE_UP:
fgAmpTrebleUpKey();
break;
case IR_AMP_TRENLE_DN:
fgAmpTrebleDnKey();
break;
case IR_AMP_BASS_BOOST:
fgAmpBassBoostKey();
break;
#ifdef TUNER_SHOWVOLUME
case IR_VOLUME_DOWN:
//fgCOMVolumeDownKey();
vVolKey(0XF0);
break;
case IR_VOLUME_UP:
// fgCOMVolumeUpKey();
vVolKey(0X0F);
break;
case IR_MUTE:
vMuteKey();
break;
#else
case IR_VOLUME_UP:
//bSetMic(NULL_POSITION, 1);
fgCOMVolumeUpKey();
break;
case IR_VOLUME_DOWN:
fgCOMVolumeDownKey();
// bSetMic(NULL_POSITION, 0);
break;
case IR_MUTE:
fgNonDvdMuteKey();
break;
#endif
default:
bRet = 0;//RET_FAILURE;
break;
}
return(bRet);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vBBKTunerModeKey(void) large
{
switch(_eTunerMode)
{
case TUNER_MODE_INIT:
_bIRKey = IR_NONE;
break;
case TUNER_MODE_NORMAL:
switch(_bProcess)
{
case RUN_NOTHING:
break;
default:
switch(_bIRKey)
{
case IR_AMP_MUTE:
#ifdef TIME_SLEEP_FUCTION
case IR_AMP_SLEEP:
#endif
case IR_AMP_CHANNEL_LEFT:
case IR_AMP_CHANNEL_RIGHT:
case IR_AMP_CHANNEL_UP:
case IR_AMP_CHANNEL_DN:
case IR_AMP_BASS_UP:
case IR_AMP_BASS_DN:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -