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

📄 bbktuner.~c

📁 关于收音功能代码,并且显示在OSD和VFD上
💻 ~C
📖 第 1 页 / 共 4 页
字号:

/***************************************************************************************
    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 + -