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

📄 usrcfg.~c

📁 MTK 1389e版 MINI组合音响代码
💻 ~C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 03/09/16 10:06p   $       ****************/
/***************  $Revision:: 3                $       ****************/
/***************                                       ****************/
/***************   Description : Setup State           ****************/
/***************                 Machine               ****************/
/***************   This module must be placed in       ****************/
/***************   bank 0.                             ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer : Peter Huang           ****************/
/**********************************************************************/

#include "general.h"

#include "..\..\version.h"

#pragma NOAREGS
#if  defined(DVD_RECEIVER)
  #include ".\receiver\dvdrec.h"
  #include ".\receiver\pt2320.h"
#endif
#include ".\receiver\tas5508.h"


#ifdef  USE_CD4094
void SET_4094_PIN(BYTE PIN) large;
void CLR_4094_PIN(BYTE PIN) large;
#endif


static BYTE code _pbFWVer[4] = VER_FIRMWARE;
static BYTE code _pbSubVer[4] = SUB_VER;
static BYTE code _pb8032Ver[4] = VER_UI;

#ifdef DISC_UPDATE_CODE
static BYTE code _pbVolumeID[] = {VOLUME_ID};
static BYTE code _pbFileName[] = {UPDATE_FILE};
#endif
#ifdef USE_3053
extern BYTE xdata _bLedType;
  extern void VLedModeControl(BOOL fgFlag) large;
#elif defined(USE_3053_2)
   extern BYTE xdata _bLedType;
   extern BYTE xdata _ModeTimer;
#endif
#ifdef LOAD_USR_PWD_FILE
static BYTE code _pbPwdFilename[] = {PWD_FILENAME};
#endif
#if  defined(INTERNAL_KARA)&&!defined(KARA_IN_SETUP)
extern BYTE bSetMic(WORD wEEPos, BYTE bValue);
#endif

/***************************************************************************
     Function : void vSetFWVersion(void) large
  Dsecription : called from Timer routine
    Parameter : None
       Return : None
***************************************************************************/
static void vSetFWVersion(void) large
{
  // store 8032 version
  vSetSharedInfo(SI_8032_VER_ID0, _pb8032Ver[0]);
  vWriteNextSharedItem(_pb8032Ver[1]);
  vWriteNextSharedItem(_pb8032Ver[2]);
  vWriteNextSharedItem(_pb8032Ver[3]);

  // store SERVO version
  _dwIrDoneParm = dSRVGetVer();
  vSetSharedInfo(SI_SERVO_VER_ID0, bHiByte(wHiWord(_dwIrDoneParm)));
  vWriteNextSharedItem(bLoByte(wHiWord(_dwIrDoneParm)));
  vWriteNextSharedItem(bHiByte(wLoWord(_dwIrDoneParm)));
  vWriteNextSharedItem(bLoByte(wLoWord(_dwIrDoneParm)));

  // store Firmware version
  vSetSharedInfo(SI_FW_VER_ID0, _pbFWVer[0]);
  vWriteNextSharedItem(_pbFWVer[1]);
  vWriteNextSharedItem(_pbFWVer[2]);
  vWriteNextSharedItem(_pbFWVer[3]);

  vSetSharedInfo(SI_SUB_VER_ID0, _pbSubVer[0]);
  vWriteNextSharedItem(_pbSubVer[1]);
  vWriteNextSharedItem(_pbSubVer[2]);
  vWriteNextSharedItem(_pbSubVer[3]);
}

/***************************************************************************
     Function : void vSetUpgInfo(void) large
  Dsecription : called from Timer routine
    Parameter : None
       Return : None
***************************************************************************/
static void vSetUpgInfo(void) large
{
  BYTE bIdx;

  // enable checksum check
#ifdef UPDATE_KEEP_CPPM_KEY  
  vSetSharedInfo(SI_UPG_CONFIG, SV_UPG_CHKSUM | SV_UPG_CPPM_KEEP);
#else
  vSetSharedInfo(SI_UPG_CONFIG, SV_UPG_CHKSUM | SV_UPG_CPPM_REPLACE);
#endif

#ifdef DISC_UPDATE_CODE
  vSetSharedInfo(SI_UPG_VOLUME_ST, _pbVolumeID[0]);
  bIdx = 0;
  while (_pbVolumeID[bIdx])
  {
    vWriteNextSharedItem(_pbVolumeID[++bIdx]);
  }

  vSetSharedInfo(SI_UPG_FILE_ST, _pbFileName[0]);
  bIdx = 0;
  while (_pbFileName[bIdx])
  {
    vWriteNextSharedItem(_pbFileName[++bIdx]);
  }
#endif /* DISC_UPDATE_CODE */

#ifdef LOAD_USR_PWD_FILE
  vSetSharedInfo(SI_PWD_FILENAME, _pbPwdFilename[0]);
  bIdx = 0;
  while (_pbPwdFilename[bIdx])
  {
    vWriteNextSharedItem(_pbPwdFilename[++bIdx]);
  }
#else
  vSetSharedInfo(SI_PWD_FILENAME, 0);
#endif /* LOAD_USR_PWD_FILE */
}

/***************************************************************************
     Function : void vUserInit(BOOL bInited)
  Dsecription : called from Timer routine
    Parameter : None
       Return : None
***************************************************************************/
void vUserInit(BOOL fgInited) large
{
#ifdef USE_3053
   BYTE i;
   BYTE _LedChangeTime;
   WORD _BwaitTime;
#elif defined(USE_3053_2)
  BYTE _SaveLedType;
#endif
#if defined(BBK_NEW_MENU) //&& !defined(USE_4M)  dengsu 0802
  vInitRootMenu();
  _fgIsInBBKNewMenu = FALSE;
#endif

#ifdef INTERNAL_TEST
  WORD  wAddr;

  for (wAddr = 0; wAddr < SHARED_INFO_GRP_SIZE * DSP_SHARED_INFO_GRP_NS; wAddr++)
    WriteSInfo(DSP_SHAREINFO_OFST + wAddr, 0x5A);
#endif

#ifdef AUDIO_IN_EN
  _bPlayerFuncMode = PLAYER_FUNC_DVD;
#endif

  vSetFWVersion();
  vSetUpgInfo();

  // initial share memory first
  vInitSystemShareInfo();
  vInitAdspShareInfo();
  vInitVideoShareInfo();

  // - audio control init.
  vAdspInit(0); // note mute fitst, turned on in vUIStart()

  /* check if SEE was inited */
  if (fgInited)
  {
#ifdef DISC_UPG_RESET_DEFAULT
    if (bEepromReadByte(RESET_POSITION) == SV_ON)
    {
  #ifdef DISC_UPG_RESET_KEEP_REGION
      BYTE bTmp = bEepromReadByte(REGION_CODE_POSITION);
      //BillDen bg
      #ifdef HAVE_TRUE_REGION
         if (bTmp != REGION_NO  &&  bTmp != 0)
      #else
      if (bTmp>6 || bTmp<0)
      #endif
        bTmp = REGION_NO;	
      //BillDen end
  #endif

      fgInited = TRUE;

      // load default value
      fgEepromSetWriteShadow();

      vEepromClearShadow(TRUE);

#ifdef MTK_MENU
      vInitMenuEntry(MENU_ITEM_INIT);
#else
      vInitMenuEntry(MENU_ITEM_INIT);
#endif

// #if defined(MT1389_REV_E) && defined(PLAYER_KARAOKE) && defined(MTK_AUD_ADC)   //[05/09/15]
#if defined(INTERNAL_KARA)&&!defined(KARA_USE_EXTERNAL_ADC)//billy[051110]
  {
    extern void vAdspSetMicFading() large;
    vAdspSetMicFading();
   }
 #endif  
      // reset flag
      fgEepromWriteByte(RESET_POSITION, SV_OFF);
      // restore region code
  #ifdef DISC_UPG_RESET_KEEP_REGION
      fgEepromWriteByte(REGION_CODE_POSITION, bTmp);
      vSetSharedInfo(SI_REGION, bTmp << 4);
  #endif
      // we want to write back EEPROM shadow
      _rUI.fgEepromInited = FALSE;
    }
    else
#endif // DISC_UPG_RESET_DEFAULT
    {
#ifdef MTK_MENU
      vInitMenuEntry(MENU_ITEM_EEPROM);
#else
      vInitMenuEntry(MENU_ITEM_EEPROM);
#endif
    }
  }
  else /* serial EEPROM not inited */
  {
    fgEepromSetWriteShadow();

    vEepromClearShadow(TRUE);

#ifdef MTK_MENU
    vInitMenuEntry(MENU_ITEM_INIT);
#else
    vInitMenuEntry(MENU_ITEM_INIT);
#endif
    /* note the last memory shadow is written back when power down */

#ifdef DISC_UPG_RESET_DEFAULT
    // reset flag
    fgEepromWriteByte(RESET_POSITION, SV_OFF);
#endif
  }
#if (defined(SETUP_NO_PSCAN_CTRL) && defined(PSCAN_EN))
 if(bEepromReadByte(TV_PSCAN_EN_POS) == SV_ON)  //pscan control
 {
  vVideoUserRecallPScan(fgInited);
 }
#endif

#if  defined(INTERNAL_KARA)&&!defined(KARA_IN_SETUP)   //for del the noise

  vAdspMicVol(AUD_MIC_VOL_1,bEepromReadByte(MIC_VOL1_POS));
  vAdspMicVol(AUD_MIC_VOL_2,bEepromReadByte(MIC_VOL1_POS));
  
#endif

#ifdef AUDIO_IN_EN
#ifndef AUDIO_IN_ONLY
  if (fgIsFuncAin())
  {
    if (fgIsTrayInside() &&
        (bSharedInfo(SI_SRV_BOOT_STATE) == SV_SRV_BOOT_LOAD))
    {
      vSetSharedInfo(SI_SRV_BOOT_STATE, SV_SRV_BOOT_SKIP_LOAD);
    }
    else // other state not allow to boot in audio in state
    {
      vPlayerFuncSwitch(PLAYER_FUNC_DVD);
    }
  }
#else
  vSetSharedInfo(SI_SRV_BOOT_STATE, SV_SRV_BOOT_SKIP_LOAD);
#endif /* AUDIO_IN_ONLY*/
#endif /* AUDIO_IN_EN */

#ifdef BBK_MENU		//------------------------------------------------------------------------------
#if (defined(HDCD_CERTIFICATION) || defined(HDCD_EN))
    vAdspHdcdMode(EV_ON, EV_OFF);
    vAdspUpSamp(EV_1X);
#endif
#ifndef SIMPLE_MENU
    vAdspSpdifCh(SPDIF_PCM_LR); //BillDen
#endif
    
    vSetSharedInfo(SI_PSCAN_EDGE, 0);
    vNotifySharedInfo(SI_PSCAN_EDGE, 0, 0);

//for bbk eq and surround
#ifdef AUDIO_TYPE_NOT_SAVE //BillDen
    _bSurType = AUD_REVERB_MODE_OFF;
    _bEqType = AUD_EQ_TYPE_NONE;
    fgEepromWriteByte(EQ_PRESET_POS, EV_NONE);//billy050603 for save the EQ and REVERB
    fgEepromWriteByte(REVERB_MD_POS, EV_NONE);//billy050603 for save the EQ and REVERB
    vAdspReverbMode(_bSurType);
    vAdspSurr(AUD_CH_EQ_CTRL, ADSP_OFF);
    vAdspChEqLoadPreset(_bEqType);
#else
    _bSurType = bEepromReadByte(REVERB_MD_POS);
    _bEqType = bEepromReadByte(EQ_PRESET_POS);

    if (_bSurType > AUD_REVERB_MODE_MAX)
    {
      _bSurType = AUD_REVERB_MODE_OFF;
    }

    if (_bEqType >= AUD_EQ_TYPE_MAX)
    {
      _bEqType = AUD_EQ_TYPE_NONE;
    }
    
    vAdspReverbMode(_bSurType);
    if (_bEqType == EV_NONE)
    {
      vAdspSurr(AUD_CH_EQ_CTRL, ADSP_OFF);
    }
    else
    {
      vAdspSurr(AUD_CH_EQ_CTRL, ADSP_ON);
    }
    vAdspChEqLoadPreset(_bEqType);
#endif
//BillDen bg
#ifdef TONE_IN_SETUP
    bToneChange(bEepromReadByte(TONE_POS));
#endif
//BillDen end
#if defined(BBK_NEW_MENU) //&& !defined(USE_4M)  dengsu 0802
  _fgIsInBBKNewMenu = FALSE;
#endif
    
#ifdef USE_3053
    if(bEepromReadByte(LED_POSITION1)  == 0)
    {
          _LedChangeTime = 0;   //do not need
          _bLedType = 0;
    }
    else
    {   
         if(bEepromReadByte(LED_POSITION1) > 0x38)  //dengsu 0811
         	 fgEepromWriteByte(LED_POSITION1, 0x38);
         if(bEepromReadByte(LED_POSITION1) == 0x38)  //not changed
         {
             if(_bLedType == 0) // first time and not changed
                _LedChangeTime = 21;
             else
             	  _LedChangeTime = 15;//must be repower.
            _bLedType =5;            	
         }
    	  else if(_bLedType > ( bEepromReadByte(LED_POSITION1) * 2 -1))  //must be power reset
    	  {
    	    _LedChangeTime  = 15;
    	    _bLedType = bEepromReadByte(LED_POSITION1) * 2 -1;
    	  }
    	  else
    	  {
    	     _LedChangeTime  = bEepromReadByte(LED_POSITION1) * 2 -1;
    	     _bLedType = _LedChangeTime;
     	  }
    }
	
    for(i =0 ;i <_LedChangeTime;i++)
    {
        VLedModeControl(TRUE);
        if((i%2) == 0)
        {
          for(_BwaitTime = 0; _BwaitTime< 30000;_BwaitTime++)  //dengsu 0812 4000->10000
        	_nop_();
          VLedModeControl(FALSE);
          for(_BwaitTime = 0; _BwaitTime< 30000;_BwaitTime++)  //dengsu 0812 4000->10000
        	_nop_();
        }
        else
        {
          for(_BwaitTime = 0; _BwaitTime< 10000;_BwaitTime++)  //dengsu 0812 4000->10000
         	_nop_();
          VLedModeControl(FALSE);
          for(_BwaitTime = 0; _BwaitTime< 10000;_BwaitTime++)  //dengsu 0812 4000->10000
        	_nop_();
        }
    }    	  
#elif defined(USE_3053_2)
    _SaveLedType = bEepromReadByte(LED_POSITION1);
    if(_SaveLedType  == 0)
    {
          _bLedType = 0;
          _ModeTimer = 0;
    }
    else
    {   
         if(_SaveLedType> 0x38) // error status.
         {
         	 fgEepromWriteByte(LED_POSITION1, 0x38);  //change to factory status
         	 _SaveLedType = 0x38;
         }
         if(_SaveLedType== 0x38)
         {
             if(_bLedType == 0)
                _ModeTimer = 42;    //Max status
             else
             	  _ModeTimer = 30;   // a total cycle
            _bLedType =5;            	
         }
    	  else if(_bLedType > (_SaveLedType * 2 -1))
    	  {
    	    _ModeTimer  = 30;      // a total cycle
    	    _bLedType = _SaveLedType* 2 -1;
    	  }
    	  else
    	  {
       	_bLedType = (_SaveLedType* 2) -1;
    	     	_ModeTimer  = _bLedType*2;
     	  }
    }
#endif
    vSetAngleShow(TRUE);		
#ifdef BBK_LAST_MEMORY
    vSetSharedInfo(SI_LAST_MEM, 0);
#endif

SET_4094_PIN(SET_TAS5508_HEADPHONE);
SET_4094_PIN(SET_TAS5508_MUTE);

vSendMasterVolume(0x48);



//end for bbk
#endif			//------------------------------------------------------------------------------------------

}

⌨️ 快捷键说明

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