📄 bbktuner.~c
字号:
_bDisplayStep=0;
if(_bDisplayState!=D_mDIS_TUNEAUTOSEARCH) _bDisplayState=D_mDIS_TUNEAUTOSEARCH;
/*else
{
_bVfdTimer=0;
_bProcess=RUN_NOTHING;
_bDisplayState=D_mDIS_NORMAL;
} */
break;
case 1:
if(_fgAutoSearchTune==OFF)
{
_bProgram=1;
_bPreset=1;
_fgAutoSearchTune=ON;
_fgTuneAuto=ON;
if(_fgAmFm==AMFM_FM) _bIntRegister=_bFmFreq;
else _bIntRegister=_bAmFreq;
_fgRunTuner=ON;
_bProcess=RUN_TUNER;
}
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vRunTunerSleep(void) large
{
_fgAutoSearchTune=OFF;
_fgTuneAuto=OFF;
switch(_bRunStep)
{
case 0:
//_bKeyEnable=ENABLE_NON_KEY; // 按键无效
_bRunStep=1;
_bDisplayStep=0;
if(_bDisplayState==D_mDIS_TUNESLEEP)
{
switch(_bSetSleepState)
{
case SLEEP_ON:
_bSetSleepState = SLEEP_ON_DISPLAY;
_bSleepOSDCounter = 4;
break;
case SLEEP_ON_DISPLAY:
_bSetSleepState = SLEEP_90M;
_wSleepCounter = 91 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_OFF:
_bSetSleepState = SLEEP_90M;
_wSleepCounter = 91 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_90M:
_bSetSleepState = SLEEP_75M;
_wSleepCounter = 76 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_75M:
_bSetSleepState = SLEEP_60M;
_wSleepCounter = 61 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_60M:
_bSetSleepState = SLEEP_45M;
_wSleepCounter = 46 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_45M:
_bSetSleepState = SLEEP_30M;
_wSleepCounter = 31*SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_30M:
_bSetSleepState = SLEEP_15M;
_wSleepCounter = 16*SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_15M:
_bSetSleepState = SLEEP_OFF;
_wSleepCounter = 0;
_bSleepOSDCounter = 4;
break;
default:
_bSetSleepState = SLEEP_OFF;
_wSleepCounter = 0;
_bSleepOSDCounter = 4;
break;
}
}
else
{
_bSetSleepState = SLEEP_90M;
_wSleepCounter = 91 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
//bVfdTimer=0;
_bDisplayState=D_mDIS_TUNESLEEP;
}
_bDisplayState=D_mDIS_TUNESLEEP;
_bDisplayStep=0;
break;
case 1:
_bProcess=RUN_NOTHING;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vRunTunerChannel(void) large
{
_fgAutoSearchTune=OFF;
_fgTuneAuto=OFF;
switch(_bRunStep)
{
case 0:
//_bKeyEnable=ENABLE_TUNER_KEY;
switch(_bDisplayState)
{
case D_mDIS_TUNEMEMORY:
case D_mDIS_TUNECLEAR:
case D_mDIS_TUNED:
if((_bProgram==0)||((_fgAmFm==AMFM_AM)&&(_bProgram>TOTAL_SAVE_AM_NUM))||((_fgAmFm==AMFM_FM)&&(_bProgram>TOTAL_SAVE_FM_NUM))) _bRunStep=5;
else _bRunStep=1;
_bComReg=0;
_bDisplayStep=4;
break;
default:
_bDisplayStep=0xFF;
_bDisplayState=D_mDIS_TUNED;
break;
}
break;
case 1:
_bComReg++;
if(_bComReg>60) _bRunStep=2;//if(_bComReg>30) _bRunStep=2;决定按两个数字键之间可以允许的间隔时间。
break;
case 2:
switch(_bDisplayState)
{
case D_mDIS_TUNEMEMORY:
if(_fgAmFm==AMFM_AM) eeprom_save_am(_bProgram);
else eeprom_save_fm(_bProgram);
_bRunStep=4;
break;
case D_mDIS_TUNECLEAR:
if(_fgAmFm==AMFM_AM) eeprom_clear_am(_bProgram);
else eeprom_clear_fm(_bProgram);
_bRunStep=4;
break;
case D_mDIS_TUNED:
default:
if(((_fgAmFm==AMFM_AM)&&(eeprom_call_am(_bProgram)==0))||((_fgAmFm==AMFM_FM)&&(eeprom_call_fm(_bProgram)==0)))
{
_bDisplayStep=12;
_bDisplayState=D_mDIS_TUNED;
_bRunStep=4;
}
else
{
_bRunStep=3;
_bPreset=_bProgram;
if(_fgAmFm==AMFM_FM) _bFmPreset=_bPreset;
else _bAmPreset=_bPreset;
_fgSaveAmFm=1;
}
break;
}
_fgTuneKey=0;
break;
case 3:
_fgRunTuner=ON;
_bProcess=RUN_TUNER;
break;
case 5:
_bComReg++;
if(_bComReg>30) _bRunStep=6;
break;
case 6:
_fgTuneKey=0;
_bProgram=_bPreset;
_bDisplayStep=0;
_bDisplayState=D_mDIS_NORMAL;//_bDisplayState=D_mDIS_OPNULL_BEYOND;
_bRunStep=4;
break;
case 4:
default:
//_bKeyEnable=ENABLE_ALL_KEY;
_bProcess=RUN_NOTHING;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vRunTunerPreset(void) large
{
_fgAutoSearchTune=OFF;
_fgTuneAuto=OFF;
switch(_bRunStep)
{
case 0:
//_bKeyEnable=ENABLE_TUNER_KEY;
if(_fgAmFm==AMFM_AM) _bComReg=TOTAL_SAVE_FM_NUM-TOTAL_SAVE_AM_NUM;
else _bComReg=0;
_bRunStep=1;
break;
case 1:
_bPreset++;
if(_fgAmFm==AMFM_AM)
{
if(_bPreset>TOTAL_SAVE_AM_NUM) _bPreset=1;
if(eeprom_call_am(_bPreset)) _bRunStep=4;
}
else
{
if(_bPreset>TOTAL_SAVE_FM_NUM) _bPreset=1;
if(eeprom_call_fm(_bPreset)) _bRunStep=4;
}
_bComReg++;
if(_bComReg>=TOTAL_SAVE_FM_NUM) _bRunStep=7;
break;
case 2:
if(_fgAmFm==AMFM_AM) _bComReg=TOTAL_SAVE_FM_NUM-TOTAL_SAVE_AM_NUM;
else _bComReg=0;
_bRunStep=3;
break;
case 3:
_bPreset--;
if(_fgAmFm==AMFM_AM)
{
if(_bPreset==0) _bPreset=TOTAL_SAVE_AM_NUM;
if(eeprom_call_am(_bPreset)) _bRunStep=4;
}
else
{
if(_bPreset==0) _bPreset=TOTAL_SAVE_FM_NUM;
if(eeprom_call_fm(_bPreset)) _bRunStep=4;
}
_bComReg++;
if(_bComReg>=TOTAL_SAVE_FM_NUM) _bRunStep=7;
break;
case 4:
_bComReg=0;
_bProgram=_bPreset;
if(_fgAmFm==AMFM_FM) _bFmPreset=_bPreset;
else _bAmPreset=_bPreset;
_fgSaveAmFm=1;
_bDisplayStep=4;
_bDisplayState=D_mDIS_TUNED;
_bRunStep=5;
break;
case 5:
_bComReg++;
if(_bComReg>20) _bRunStep=6;
break;
case 6:
_fgRunTuner=ON;
_bProcess=RUN_TUNER;
break;
case 7:
_bComReg=0;
_bDisplayStep=12;
_bDisplayState=D_mDIS_TUNED;
_bRunStep=9;
break;
case 8:
case 9:
default:
_bProcess=RUN_NOTHING;
break;
}
}
#ifdef TUNER_SHOWVOLUME
void vVol_Process(void)large
{
BYTE bByte;
BYTE bVal = bAdspCurrVol();
if (_bPlayerMute==1) // mute off
{
_bPlayerMute=0;
//tanglushan 05/10/11
SetDapMute();
V_MUTE=0;
}
switch(_bRunStep)
{
case 0:
//cutkeyflag=KEY_DISABLE; // 按键无效
_bRunStep=2;
if(_bDisplayState==D_mDIS_VOLUME) // master volume adjust
{
if (bVal < MAX_VOL_LEVEL)
{
bVal ++;
/* change volume level first */
vAdspVolume(bVal);
}
_bDisplayStep=1; // 显示屏显示参数
}
else _bDisplayStep=0;
_bDisplayState=D_mDIS_VOLUME;
break;
case 1:
//cutkeyflag=KEY_DISABLE; // 按键无效
_bRunStep=2;
if(_bDisplayState==D_mDIS_VOLUME) // master volume adjust
{
if (bVal > MIN_VOL_LEVEL)
{
bVal --;
/* change volume level first */
vAdspVolume(bVal);
}
_bDisplayStep=1; // 显示屏显示参数
}
else _bDisplayStep=0;
_bDisplayState=D_mDIS_VOLUME;
break;
case 2:
_bRunStep=3;
break;
case 3:
_bRunStep=4;
break;
case 4:
default:
_bProcess=RUN_NOTHING;
break;
}
}
#if 1
void vMute_Process(void)large
{
switch(_bRunStep)
{
case 0:
if(_bPlayerMute==FALSE) _bPlayerMute=TRUE;
else _bPlayerMute=FALSE;
// if(_rAudioCtrl.sVol.fgIsMute==FALSE) _rAudioCtrl.sVol.fgIsMute=TRUE;
//else _rAudioCtrl.sVol.fgIsMute=FALSE;
_bRunStep=1;
break;
case 1:
_bRunStep=2;
if((_bPlayerMute==TRUE)||(fgIsMute()))
{
//SetDapMute();
ClrDapMute();
V_MUTE=1;
_bDisplayStep=0;
}
else
{
SetDapMute();
V_MUTE=0;
_bDisplayStep=1;
}
_bDisplayState=D_mDIS_MUTE;
vVfdClearAll();
break;
case 2:
case 3:
default:
_bProcess=RUN_NOTHING;
break;
}
}
#endif
#endif
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vRunTunerClear(void) large
{
_fgAutoSearchTune=OFF;
_fgTuneAuto=OFF;
switch(_bRunStep)
{
case 0:
//_bKeyEnable=ENABLE_NON_KEY; // 按键无效
_bRunStep=1;
_bDisplayStep=0;
if(_bDisplayState!=D_mDIS_TUNECLEAR) _bDisplayState=D_mDIS_TUNECLEAR;
else
{
_bVfdTimer=0;
_bProcess=RUN_NOTHING;
_bDisplayState=D_mDIS_NORMAL;
}
break;
case 1:
_bProcess=RUN_NOTHING;
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vStepProcess(void) large
{
switch(_bProcess)
{
case RUN_NOTHING:
vRunWaiting();
break;
case RUN_TUNER:
vRunTuner();
break;
case RUN_KEYAMFM:
vRunAmFm();
break;
case RUN_KEYTUNEMORY:
vRunTunerMemory();
break;
case RUN_KEYAUTOSEARCH:
vRunAutoSearch();
break;
case RUN_TUNERSLEEP:
vRunTunerSleep();
break;
case RUN_KEYCHANNEL:
vRunTunerChannel();
break;
case RUN_KEYTUNEPRESET:
vRunTunerPreset();
break;
#ifdef TUNER_SHOWVOLUME
case RUN_KEYNORMALKEY:
vVol_Process();
break;
case RUN_KEYMUTE:
vMute_Process();
break;
#endif
case RUN_KEYTUNCLEAR:
vRunTunerClear();
break;
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerSaveString(void) large
{
_bVfdTimer=0;
#ifdef TEMP_CLOSE0426
vVfdMessage(VFD_MESSAGE_MEMORY);
#endif
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAutoSearchString(void) large
{
_bVfdTimer=0;
#ifdef TEMP_CLOSE0426
vVfdMessage(VFD_MESSAGE_SEARCH);
#endif
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerClearString(void) large
{
_bVfdTimer=0;
#ifdef TEMP_CLOSE0426
vVfdMessage(VFD_MESSAGE_SLEEPOFF);
#endif
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAutoManString(void) large
{
_bVfdTimer=0;
if(_fgTunerMode==MODE_AUTO)
{
#ifdef TEMP_CLOSE0426
vVfdMessage(VFD_MESSAGE_MAN);
#endif
}
else
{
#ifdef TEMP_CLOSE0426
vVfdMessage(VFD_MESSAGE_AUTO);
#endif
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAmStepString(void) large
{
_bVfdTimer=0;
if(_fgStep9K10K==STEP_9K)
{
#ifdef TEMP_CLOSE0426
vVfdMessage(VFD_MESSAGE_STEP9K);
#endif
}
else
{
#ifdef TEMP_CLOSE0426
vVfdMessage(VFD_MESSAGE_STEP10K);
#endif
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAmFmFreqString(void) large
{
WORD vol;
if (_fgAmFm==AMFM_AM)
{
if(_fgStep9K10K==STEP_9K)
{
vol=_bAmFreq*9+522;
}
else
{
vol=_bAmFreq*10+520;
}
}
else
{
#ifdef FM_PLUS
if(_bFmFreq<=MAX_FMFREQ_LOW)
{
vol=_bFmFreq*FMstep_LOW+FMstartFREQ_LOW;
}
else
{
vol=(_bFmFreq-MAX_FMFREQ_LOW-1)*FMstep_HIGH+FMstartFREQ_HIGH;
}
#else
vol=_bFmFreq*FMstep+FMstartFREQ;
#endif
}
vVfdShowFreq(vol, _fgAmFm);
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vTunerChanneString(BYTE flash) large
{
_bVfdTimer=0;
vVfdShowChannel(_bProgram, _fgAmFm);
if(flash==0)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -