📄 bbktuner.~c
字号:
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vFreqDiplay(void) large
{
if(_bProcess != RUN_NOTHING)
{
return;
}
#ifdef BBK_RD2_RDS
vTunerRdsPro();
if(_bTunerDispType==TUNER_DISP_RDS) return;
#endif
vVfdClearAll();
vAmFmFreqString();
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAmStepDiplay(void) large
{
switch(_bDisplayStep)
{
case 0: //7
_bDisplayStep=1;
vVfdClearAll();
case 1:
vAmStepString();
_bDisplayStep=2;
_bVfdTimer=110;
break;
case 2:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerDiplay(void) large
{
switch(_bDisplayStep)
{
case 0: // 显示收音频率
vVfdClearAll();
vAmFmFreqString();
_bDisplayStep=11;
_bVfdTimer=0;
break;
case 2: // 显示:立体声状态(未用)
vVfdClearAll();
vAutoManString();
_bDisplayStep=11;
_bVfdTimer=110;
break;
case 4: // 显示:当前存贮通道
vVfdClearAll();
vTunerChanneString(0);
_bDisplayStep=11;
_bVfdTimer=110;
break;
case 7:
case 8:
case 9:
vAmFmFreqString();
_bDisplayStep=10;
break;
case 10:
case 11:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
case 12:
_bVfdTimer=110;
_bDisplayStep=13;
case 13:
if(_bVfdTimer<3) _bDisplayStep=11;
break;
default:
break;
}
}
#ifdef TUNER_SHOWVOLUME
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vVolumeString(void) large
{
BYTE xdata bVOL;
BYTE bVal = bAdspCurrVol();
_bVfdTimer=0;
vVfdMessage(VFD_MESSAGE_VOLUM);
bVOL = bHEXToBCD( bVal);
vVfdSegDisplay(VFD_SEG_SEC_HIGH,(bVOL & 0xF0) >> 4,FALSE);
vVfdSegDisplay(VFD_SEG_SEC_LOW ,(bVOL & 0x0F),FALSE);
}
void vVolumeDiplay(void) large
{
switch(_bDisplayStep)
{
case 0: //7
_bDisplayStep=1;
vVfdClearAll();
case 1:
vVolumeString();
_bDisplayStep=2;
_bVfdTimer=110;
break;
case 2:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vMuteDiplay(void) large
{
switch(_bDisplayStep)
{
case 0: //7
//vVfdClearAll();
vVfdMessage(VFD_MESSAGE_MUTE);
break;
case 1:
vVfdClearAll();
vAmFmFreqString();
_bVfdTimer=0;
_bDisplayStep=2;
//_bDisplayState=D_mDIS_NORMAL;
break;
default:
case 2:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
}
}
#endif
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerMemoryDiplay(void) large
{
switch(_bDisplayStep)
{
case 0:
vVfdClearAll();
vTunerSaveString();
_bDisplayStep=3;
_bVfdTimer=110;
break;
case 3:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
case 4:
vTunerChanneString(0);
_bDisplayStep=6;
_bVfdTimer=110;
break;
case 6:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAutoSearchDiplay(void) large
{
switch(_bDisplayStep)
{
case 0:
vVfdClearAll();
vAutoSearchString();
_bDisplayStep=3;
_bVfdTimer=50;
break;
case 3:
if(_bVfdTimer<2)
{
_bDisplayStep=0;
_bDisplayState=D_mDIS_TUNED;
_bRunStep=1;
_bProcess=RUN_KEYAUTOSEARCH;
}
break;
case 4:
vTunerChanneString(0);
_bDisplayStep=6;
_bVfdTimer=110;
break;
case 6:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vSleepDisplay(void) large
{
switch(_bDisplayStep)
{
case 0:
vVfdClearAll();
vAmpVfdShowSleepTime() ;
_bDisplayStep=3;
_bVfdTimer=110;
break;
case 3:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
case 4:
vTunerChanneString(0);
_bDisplayStep=6;
_bVfdTimer=110;
break;
case 6:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerClearDiplay(void) large
{
switch(_bDisplayStep)
{
case 0:
vVfdClearAll();
vTunerClearString();
_bDisplayStep=3;
_bVfdTimer=110;
break;
case 3:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
case 4:
vTunerChanneString(0);
_bDisplayStep=6;
_bVfdTimer=110;
break;
case 6:
if(_bVfdTimer<2) _bDisplayState=D_mDIS_NORMAL;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vNormalDisplay(void) large
{
switch(_bDisplayState)
{
case D_mDIS_TUNED:
vTunerDiplay();
break;
case D_mDIS_TUNEMEMORY:
vTunerMemoryDiplay();
break;
case D_mDIS_TUNEAUTOSEARCH:
vAutoSearchDiplay();
break;
case D_mDIS_TUNECLEAR:
vTunerClearDiplay();
break;
case D_mDIS_STEP:
vAmStepDiplay();
break;
#ifdef TUNER_SHOWVOLUME
case D_mDIS_VOLUME:
vVolumeDiplay();
break;
case D_mDIS_MUTE:
vMuteDiplay();
break;
#endif
case D_mDIS_NORMAL:
vFreqDiplay();
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vBBKTunerRecover(void) large
{
vBBKTunerInit();
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vBBKTunerInit(void) large
{
while(bSharedInfo(SI_OSD_CMD_BUF_FULL) == TRUE);
#if 0//def BBK_RD2_RDS//clear RDS WB
vTnrClearMsgArea();
#endif
/*vOsdShowWb(OSD_WB_FULL_SCR);
vCreateWB(WB_TUNER_MENU, TRUE);
vSetWBTcColor(WB_TUNER_MENU);
vSetTcPal(WB_TUNER_MENU, TUNER_MENU_GRAY43, BLEND_2, TUNER_PURE_GRAY);
vSetTcPal(WB_TUNER_MENU, TUNER_MENU_GRAY42, BLEND_1, TUNER_PURE_GRAY);
vSetTcPal(WB_TUNER_MENU, TUNER_MENU_RED43, BLEND_2, TUNER_PURE_RED);
vSetTcPal(WB_TUNER_MENU, TUNER_MENU_RED42, BLEND_1, TUNER_PURE_RED);
vSetTcPal(WB_TUNER_MENU, TUNER_MENU_WHITE43, BLEND_2, TUNER_WHITE_PERCENT25);
vSetTcPal(WB_TUNER_MENU, TUNER_MENU_WHITE42, BLEND_2, TUNER_WHITE_PERCENT25);
vSetTransEn(WB_TUNER_MENU, TUNER_MENU_BG);
vEnableWB(WB_TUNER_MENU);*/
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
/*When return from tuner state, how to let plarer read disc automatically?*/
void vBBKTunerExit(void) large
{
#ifdef RDS_USE_BU1924
MDisableTimer1();
#endif
//vTnrStoreRadio();
//vDeleteWB(WB_TUNER_MENU);
//bSetMic(NULL_POSITION, 1);
//vKaraOkTunerToDvd();
SetDvd();
//ClrTuner();
//ClrAuxin();
//vVfdDirectClrAll();
//_bUISrvStatus = PLAYER_SRV_NORMAL;
//fgSetPlayPostKey(IR_POWER);
//vSendUopCmd(UOP_POWER, SV_PWR_STANDBY, 0, 0);
fgSetPlayPostKey(_bIRKey);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
/*When return from tuner state, how to let plarer read disc automatically?*/
BOOL vBBKDvdEnter(void) large
{
#ifdef RDS_USE_BU1924
MDisableTimer1();
#endif
//vTnrStoreRadio();
//vDeleteWB(WB_TUNER_MENU);
SetDvd();
//ClrTuner();
//ClrAuxin();
ClrKaraOK();
SetDvd();
_bUSBDsct = 0;
_bMCRDsct=0;
_bDCStChged =1;
_bDCTimer = 20;
_bDevType = 1;
_DCEntry = 1;
#ifdef SLOT_IN
_fgDoSlot = 0;
#endif
//ClrBitBIM(BIM_PCTL3, MCOFF);
// SetBitBIM(BIM_PCTL3, SOFF4);// 设为高电平会出现断续的声音现象
// ClrBitBIM(BIM_RIODRH, IOH_SDATA4);
//ClrBitBIM(BIM_RIODRH, IOH_MC);
//bSetMic(NULL_POSITION, 1);
vKaraOkTunerToDvd();
vPlayerFuncSwitch(PLAYER_FUNC_DVD);
_bIRKey = IR_NONE;
return (UOP_OK);
//vVfdDirectClrAll();
//_bUISrvStatus = PLAYER_SRV_NORMAL;
//fgSetPlayPostKey(IR_POWER);
//vSendUopCmd(UOP_POWER, SV_PWR_STANDBY, 0, 0);
//fgSetPlayPostKey(_bIRKey);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vBBKTunerEnter(void) large
{
SetTuner();
_eTunerInitStep = TUNER_INIT_STEP1;
_eTunerMode = TUNER_MODE_INIT;
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
BOOL fgBBKTunerKeyProc(void) large
{
BOOL fgRet = UOP_OK;
vBBKTunerModeKey();
vIrKeyEnableTunerPro();
bBBKTunerSpecKey();
return(fgRet);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrInitMode(void) large
{
BYTE bData;
switch(_eTunerInitStep)
{
case TUNER_INIT_STEP1:
//SetDapMute();
#if defined(BBK_RD2_THEATRE)
_bEcoderKeyBuf = 0;
_bMasterVol=10;
SetDapReset();
#endif
V_MUTE=1;
vSetSharedInfo(SI_TVE_OUT_MODE, 0xff);
vNotifySharedInfo(SI_TVE_OUT_MODE, 0, 0);
//vTunerMute(TRUE);
//vAdspMute(ADSP_ON, 0); // do soft mute ASAP
//vAdspMute(ADSP_ON, 0); // do soft mute ASAP
_rAudioCtrl.sVol.fgIsMute = FALSE;
//vSendUopCmd(UOP_STOP, 0, 0, SV_STOP_FORCE);
//vPlayerReset();
//_bUISrvStatus = PLAYER_SRV_STOP;
//vSendUopCmd(UOP_POWER, SV_PWR_IDLE_STOP, 0, 0);
//vPlayerShowLogo(DVD_STOP_LOGO, DVD_LOGO_COLOR);
_bVfdTimer=0;
vVfdClearAll();
_bTunerTimer = 2;
_eTunerInitStep = TUNER_INIT_STEP2;
break;
case TUNER_INIT_STEP2:
if(_bTunerTimer)
{
_bTunerTimer --;
break;
}
#if defined(BBK_RD2_THEATRE)
ClrDapReset();
#endif
vBBKTunerInit();
_bTunerTimer = 2;
_eTunerInitStep = TUNER_INIT_STEP3;
break;
case TUNER_INIT_STEP3:
if(_bTunerTimer)
{
_bTunerTimer --;
break;
}
vTunerPower(1);
SetKaraOK();
SetCD4052A();
SetCD4052B();
// ClrCD4052A();
// ClrCD4052B();
// vDapAuxInit(TRUE);
SetDapMute();// avtive low
SetReadDTSIo();
#ifdef BBK_RD2_RDS
SetReadRdsIo();
#endif
vInitTuned();//vTnrInitRadio();
_bTunerTimer = 2;
_eTunerInitStep = TUNER_INIT_STEP4;
break;
case TUNER_INIT_STEP4:
if(_bTunerTimer)
{
_bTunerTimer --;
break;
}
//vAdspMute(ADSP_OFF, 0);
V_MUTE=0;
// bSetMic(NULL_POSITION, 0);
_bTunerTimer = 2;
_eTunerInitStep = TUNER_INIT_FINISH;
break;
case TUNER_INIT_FINISH:
if(_bTunerTimer)
{
_bTunerTimer --;
break;
}
#ifdef BBK_RD2_RDS
vTunerRdsInit();// vRDSInit();
#endif
vAdspVolume(8);
//bSetMic(NULL_POSITION, 0);
_eTunerInitStep = TUNER_INIT_NONE;
_eTunerMode = TUNER_MODE_NORMAL;
break;
default:
vBBKTunerExit();
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
static void vTnrNormalMode(void) large
{
if(_bTunerWaitTime>0) _bTunerWaitTime--;
vStepProcess();
vNormalDisplay();
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vBBKTunerTime(void) large
{
switch(_eTunerMode)
{
case TUNER_MODE_INIT:
vTnrInitMode();
break;
case TUNER_MODE_NORMAL:
vTnrNormalMode();
break;
default:
break;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -