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

📄 ampkey.c

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

/***************************************************************************************
    Function : 
    Description : 
    Parameter : 
    Return    : 
***************************************************************************************/
BOOL fgAmpEarphoneOutKey(void) large
{
	ClrEarphoneIn();
	_bEarphoneProStep = EAR_OUT_STEP_START;
	
	return (UOP_OK);
}
#endif

/***************************************************************************************
    Function : 
    Description : 
    Parameter : 
    Return    : 
***************************************************************************************/
BOOL fgAmpComKeyFunc(void) large
{
	BOOL fgRet = UOP_OK;

	switch (_bIRKey)
	{
	 	case IR_AMP_FUN_RADIO:
	 	case IR_AMP_FUN_RADIO_TEMP:
		case IR_PANEL_SOURCE:
			if(bSharedInfo(SI_INIT_STATE)!=SV_LOADING_DISC)
			fgRet = fgCOMTunerKey();
			else
			{
         		 	 _bIRKey = IR_NONE;
      				  fgRet = UOP_OK;
			}
		break;	
		
#ifdef  AV_CENTER
	      case   IR_AMP_FUN_AUX_TEMP:
			if(bSharedInfo(SI_INIT_STATE)!=SV_LOADING_DISC)
			fgRet = fgAmpFunAudioKey();
			else
			{
         		 	 _bIRKey = IR_NONE;
      				  fgRet = UOP_OK;
			}
#endif			
		case IR_AMP_ECHO_TYPE:
			fgRet = fgAmpComEchoTypeKey();
		break;

		case IR_AMP_SURROUND:
			fgRet = fgAmpComSurroundKey();
		break;

		case IR_AMP_SPK_CFG:
			fgRet = fgAmpComSpkCfgKey();
		break;

		case IR_POWER:
			fgRet = fgAmpComPowerKey();
		break;
		
		case IR_AMP_MUTE:
			fgRet = fgAmpComMuteKey();
		break;

	//	case IR_AMP_RESET:
		case IR_AMP_RESETLONG:
			fgRet = fgAmpResetKey();
		break;
		/*case IR_AMP_FUN_DVD:
			fgRet = fgAmpFunDvdKey();
		break;

		case IR_AMP_FUN_AUDIO:
			if(bSharedInfo(SI_INIT_STATE)!=SV_LOADING_DISC)
			{
				fgRet = fgAmpFunAudioKey();
			}
			else
			{
				_bIRKey = IR_NONE;
				fgRet = UOP_OK;
			}
		break;

		case IR_AMP_FUN:
		case IR_AMP_FUN_RADIO:
			if(bSharedInfo(SI_INIT_STATE)!=SV_LOADING_DISC)
			{
				fgRet = fgCOMTunerKey();
			}
			else
			{
				_bIRKey = IR_NONE;
				fgRet = UOP_OK;
			}
		break;

		case IR_AMP_FUN_MMUI:
			fgRet = fgAmpFunUsbKey();
		break;*/

		case IR_AMP_CHANNEL_LEFT:
			fgRet = fgAmpChannelLeftKey();
		break;

		case IR_AMP_CHANNEL_RIGHT:
			fgRet = fgAmpChannelRightKey();
		break;

		case IR_AMP_CHANNEL_UP:
			fgRet = fgAmpChannelUpKey();
		break;

		case IR_AMP_CHANNEL_DN:
			fgRet = fgAmpChannelDnKey();
		break;

		case IR_AMP_BASS_UP:
			fgRet = fgAmpBassUpKey();
		break;

		case IR_AMP_BASS_DN:
			fgRet = fgAmpBassDnKey();
		break;

		case IR_AMP_TREBLE_UP:
			fgRet = fgAmpTrebleUpKey();
		break;

		case IR_AMP_TRENLE_DN:
			fgRet = fgAmpTrebleDnKey();
		break;

		case IR_AMP_BASS_BOOST:
			fgRet = fgAmpBassBoostKey();
		break;

    case IR_VOLUME_UP:
    	//bSetMic(NULL_POSITION, 1);
     fgRet = fgAmpCOMVolumeUpKey();
        
      break;

    case IR_VOLUME_DOWN:
   fgRet = fgAmpCOMVolumeDownKey();
        // bSetMic(NULL_POSITION, 0);
      break;

  case IR_MUTE:
      fgRet = fgCOMMuteKey();
      break;
#if 0
  case IR_MIC_VOLUMDN:
      fgRet = bComMicVolumeDnKey();
      break;

  case IR_MIC_VOLUMUP:
      fgRet = bComMicVolumeUpKey();
      break;
#endif	  
#ifdef TIME_SLEEP_FUCTION
		case IR_AMP_SLEEP:
			fgRet = fgAmpSetSleepKey();
		break;
#endif


#ifdef BBK_EARPHONE
		case IR_AMP_EARPHONE_IN:
			fgRet = fgAmpEarphoneInKey();
		break;

		case IR_AMP_EARPHONE_OUT:
			fgRet = fgAmpEarphoneOutKey();
		break;
#endif

		default:
			fgRet = UOP_OK;
		break;
	}

	return(fgRet);
}
#if  1
#ifdef  LED_LARGEMODE
  #ifdef MT1389_REV_E
  sbit          STROBE_PIN    =  P1^4; 
  sbit          DATA_PIN        =  P1^5;  
  sbit          CLK_PIN           =  P1^3;
  #elif defined( MT1389_REV_L)
  sbit          DATA_PIN        =  P1^7;  
  sbit          CLK_PIN           =  P1^6;

  #else
  sbit          STROBE_PIN    =   P1^5;
  sbit          DATA_PIN        =  P1^4;
  sbit          CLK_PIN           =  P1^3;
  #endif
//sbit          FS0_00     =  P3^0;

BYTE bAmpVfdReadSw(void) large
{
  BYTE xdata temp;
  BYTE xdata temp2 = 0xff;
//  STROBE_PIN=1;
	//FS0_00=0;
	#ifdef  CD4094
   	vClrCD4094Pin(FS0);	
	#endif

	vI2CDelay2us(0xf0);
  
		temp = DATA_PIN;           //P30--j4(UP3_0);P31--j3(UP3_1);  j3,j4 电位器控制脚
	if (CLK_PIN)
	  	temp = temp | 0x04; 	
	//FS0_00=1;
	#ifdef  CD4094
   	vSetCD4094Pin(FS0);	
	#endif

  switch (_bLoopSwitchState)
  {
     case EV_LPSW_RESET:
	  if(temp == 0)
	  {
	     temp2 = IR_VOLUME_DOWN;
	     _bLoopSwitchState = EV_LPSW_END;
	  }
	  else if(temp == 0x01)
	  {
	     temp2 = IR_VOLUME_UP;
	     _bLoopSwitchState = EV_LPSW_END;
	  }
	  break;
     case EV_LPSW_END:
	  if(temp == 0x05)
	  {
	     _bLoopSwitchState = EV_LPSW_RESET;
	  }
          break;
     default:
  	  _bLoopSwitchState = EV_LPSW_RESET;
  	  break;
  }
  return(temp2);
}
#endif
#endif
#if 0
BYTE bAmpVfdReadSw(void) large
{
	BYTE xdata bData1;
	BYTE xdata bData2 = IR_NONE;
	BYTE  i;
	BYTE xdata bData[3];
	if (fgIsInSetupMenu())
	{
		return(bData2);
	}

  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(0x02);
  vVfdStrobe(TRUE);          // strobe pull high to release the mode set
  
  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(0xcf);
  vVfdStrobe(TRUE);          // strobe pull high to release the mode set

  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(MODESET);
  vVfdStrobe(TRUE);          // strobe pull high to release the mode set
  
  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(VFD_CONTROL);
  _bVfdPulseLvl = VFD_CONTROL;
  vVfdStrobe(TRUE);          // strobe pull high to release the mode set

  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(KEY_SCAN);
  vVfdClk(TRUE);          // waiting for the Twait (1 us)

  vVfdData(TRUE);          // pull the data inout line to high
  vVfdClk(TRUE);

  for(i = 0; i < SCANSIZE; i++)      // how many bits we should scan here
  {
    vVfdClk(FALSE);
    vVfdClk(FALSE);   // may can be removed
    vVfdClk(TRUE);

    // get the bits from the datout pin
    if(DATA_PIN)
    {
      if(!_fgVfdHold)
      {
      if(i==16)	bData1=1;
     		  
        _bVfdKeyScan = _pbVfdKeyScan[i];
	//DRS232LogB(i,0,0,0);	
        _fgVfdHold = TRUE;
      }
      fgRelease = FALSE;
    }
    vVfdClk(TRUE);   // to prevent clear clock to fast, maybe can be removed
  }
  vVfdStrobe(TRUE);     // pull the strobe to high


	SetReadCoderIo1();
	SetReadCoderIo2();
	bData1 = ReadCoderIo1();
	bData1 = bData1 | ReadCoderIo2();

	switch (_bLoopSwitchState)
	{
		case EV_LPSW_RESET:
			if(bData1 == CODE_STATE_0)
			{
				bData2 = IR_AMP_CHANNEL_DN;
				_bLoopSwitchState = EV_LPSW_END;
			}
			else  if(bData1 == CODE_STATE_1)
			{
				bData2 = IR_AMP_CHANNEL_UP;
				_bLoopSwitchState = EV_LPSW_END;
			}
		break;
		
		case EV_LPSW_END:
			if(bData1 == CODE_STATE_2)
			{
				_bLoopSwitchState = EV_LPSW_RESET;
			}
		break;
		
		default:
			_bLoopSwitchState = EV_LPSW_RESET;
		break;
	}
	
	return(bData2);
}
#endif
#ifdef TIME_SLEEP_FUCTION
/***************************************************************************************
    Function : 
    Description : 
    Parameter : 
    Return    : 
***************************************************************************************/
#ifdef  WARING16DELETE
void vAmpSleepTimer(void) large 
{
	if (_bSleepOSDTimer > 0) 
	{		
		_bSleepOSDTimer --;
		if(_bSleepOSDTimer == 25) 
			{
				if(_fgFlashing == TRUE) _fgFlashing = FALSE;
				else _fgFlashing = TRUE;
			}
	}
	else 
	{
		_bSleepOSDTimer = 50;
		if(_fgFlashing == TRUE) _fgFlashing = FALSE;
		else _fgFlashing = TRUE;
		
		if(_bVfdCounter > 0)
		{
			_bVfdCounter --;
		}
		else
		{
			_bVfdCounter = 0;
		}
		
		if(_bSleepOSDCounter > 0) 
		{
			_bSleepOSDCounter--;
		}
		
		if(_bSleepOSDCounter == 1) 
		{
			//if(_bSysState == DVD_STATE)
			{
				if((_bSetSleepState == SLEEP_OFF)) 
				{
					vAmpOsdClearSleepTime();
				}
			}
		}
		if(_bSleepOSDCounter == 0) 
		{ 
			//if(_bSysState == DVD_STATE)
			{
				if((_bSetSleepState>1 ) && (_bSetSleepState<9)) 
				{
					vAmpOsdClearSleepTime();
				}
			}

			if(_bSetSleepState != SLEEP_OFF) _bSetSleepState = SLEEP_ON;  	
		}

		if(_wSleepCounter > 0) 
		{
			_wSleepCounter --;
		}
		if(_wSleepCounter == 0) 
		{
			if(_bSetSleepState != SLEEP_OFF) 
			{
				_fgPowerDown = TRUE;
			}
		}
	}
}
#endif
/***************************************************************************************
    Function : 
    Description : 
    Parameter : 
    Return    : 
***************************************************************************************/
BOOL fgAmpSetSleepKey(void) large 
{
	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;
	}


	vAmpOsdShowSleepTime();
	vAmpVfdShowSleepTime();

	_bIRKey = IR_NONE;
	return (UOP_OK);
}
#endif
#if  0//def  THREESTATE_ADD
/***************************************************************************************
    Function : 
    Description : 
    Parameter : 
    Return    : 
***************************************************************************************/
BOOL fgAmpAuxStateSwitch(void) large
{
	BOOL fgRet = UOP_OK;
	
	switch(_bAuxState)
		{
		case  AUX_TV:
			
		break;
		case  AUX_GENERAL:
		break;
		case  AUX_TUNER:
		break;
		case  AUX_MP3:
		break;
		}



	_bIRKey = IR_NONE;
	return(fgRet);
}

#endif
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -