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

📄 bbktuner.c

📁 关于收音功能代码,并且显示在OSD和VFD上
💻 C
📖 第 1 页 / 共 3 页
字号:
/**************************************************************************************/
/***********************                    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 + -