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

📄 chips.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 H
字号:
#ifndef __CHIPS_H__
#define __CHIPS_H__
#ifdef __cplusplus
    extern  "C" {
#endif

// Initial Types
#define CHIPS_INIT_KEY          0x001
#define CHIPS_INIT_SURROUND     0x002
#define CHIPS_INIT_ECHO         0x004
#define CHIPS_INIT_3DLEVEL      0x008
#define CHIPS_INIT_VOL          0x010
#define CHIPS_INIT_CHANNELMODE  0x020
#define CHIPS_INIT_AC3KOKMODE   0x040
#define CHIPS_INIT_DUALMODE     0x080
#define CHIPS_INIT_AUDTYPE      0x100
#define CHIPS_INIT_VOCAL        0x200
#define CHIPS_INIT_ALL          0X3FF
//Kevin2.80, add
#define CHIPS_INIT_AMPVOL       0x400
#define CHIPS_INIT_BYPASS       0x000

// Chips Parameters
#define CHIPS_UP                1
#define CHIPS_DOWN              2
#define CHIPS_NORMAL            3
#define CHIPS_TOGGLE            4
#define CHIPS_LEVEL             5
#define CHIPS_SUPPORT           6
#define CHIPS_ON                7
#define CHIPS_OFF               8

// default value for the parameters
#define CHIPS_DEFAULT_KEY           0
#define CHIPS_DEFAULT_SURROUND      0
#define CHIPS_DEFAULT_ECHO          0
#define CHIPS_DEFAULT_3DLEVEL       0
#define CHIPS_DEFAULT_VOL           VOLUME_DEFAULT
#define CHIPS_DEFAULT_CHANNELMODE   CHIPS_LRD
#define CHIPS_DEFAULT_AC3KOKMODE    VOCAL_ON
#define CHIPS_DEFAULT_DUALMODE      DUAL_STEREO
#define CHIPS_DEFAULT_AUDTYPE       0

// definitions for surround
#define CHIPS_SURROUND_NONE     0
#define CHIPS_SURROUND_LIVE     1
#define CHIPS_SURROUND_THEATER  2
// TCC028, add define to match with OSD type
#define CHIPS_SURROUND_STEREO   3
#define CHIPS_SURROUND_MOVIE    4
#define CHIPS_SURROUND_KARAOKE  5

#define CHIPS_SURROUND_TYPE     2

// definitions of Surround Value
// TCC032, change type name so that won't conflict with karaoke module
// TCC278, should be hex other than decimal here
//Kevin1.24, avoid CDDA surround noise 
#define SURROUND_TYPE_LIVE      0x77700L //0x00000L
#define SURROUND_TYPE_THEATER   0x66611L //0x55500L
#define SURROUND_TYPE_STEREO    0x88800L
#define SURROUND_TYPE_MOVIE     0x66600L
#define SURROUND_TYPE_KARAOKE   0x33300L


// LLY2.78b-2, add for Sound Effect feature: CHIPS_SoundEffect()
#define SOUND_EFFECT_MODE_BEGIN     0
#define SOUND_EFFECT_STANDARD       (SOUND_EFFECT_MODE_BEGIN+ 0)
#define SOUND_EFFECT_CLASSICAL      (SOUND_EFFECT_MODE_BEGIN+ 1)
#define SOUND_EFFECT_ROCK           (SOUND_EFFECT_MODE_BEGIN+ 2)
#define SOUND_EFFECT_JAZZ           (SOUND_EFFECT_MODE_BEGIN+ 3)
#define SOUND_EFFECT_ACOUSTIC       (SOUND_EFFECT_MODE_BEGIN+ 4)
//#define SOUND_EFFECT_POP            (SOUND_EFFECT_MODE_BEGIN+ 5)
//#define SOUND_EFFECT_USER_DEFINED   (SOUND_EFFECT_MODE_BEGIN+ 6)
#define SOUND_EFFECT_USER_DEFINED   (SOUND_EFFECT_MODE_BEGIN+ 5) //Kevin
#define SOUND_EFFECT_POP            (SOUND_EFFECT_MODE_BEGIN+ 6) //Kevin   
//Kevin2.81 review AVSys, add user-defined EQ 
#ifdef  SUPPORT_USER_DEFINED_EQ
#define SOUND_EFFECT_MODE_END       (SOUND_EFFECT_USER_DEFINED) 
#else
#define SOUND_EFFECT_MODE_END       (SOUND_EFFECT_ACOUSTIC) 
#endif

//Kevin2.81 review AVSys 
//add define for __bSoundEffect control
// [7:4] : in EQ adjust mode or User-Defined EQ adjust mode 
// [3:0] : SOUND_EFFECT
#define EQ_ADJUST_MAIN_EQ              0x80
#define EQ_ADJUST_USER_DEFINED_EQ     0x40
  
#define EQ_MODE_ENTER_EXIT      0 

//Kevin2.81 review AVSys 
#ifdef  SUPPORT_USER_DEFINED_EQ
#define BAND_SELECT_BEGIN       BAND_SELECT_0
#define BAND_SELECT_0           0
#define BAND_SELECT_1           1
#define BAND_SELECT_2           2
#define BAND_SELECT_3           3
#define BAND_SELECT_4           4
#define BAND_SELECT_5           5
#define BAND_SELECT_END         BAND_SELECT_5
#endif

// LLY2.78b-2, add for audio output channel re-mapping usage: CHIPS_Channel_ReMapping()
#define CHANNEL_REMAPPING_UNKNOWN           0xFF
#define CHANNEL_REMAPPING_NONE              0
#define CHANNEL_REMAPPING_2_TO_2_DOT_1      1
#define CHANNEL_REMAPPING_2_TO_5_DOT_1      2

//////////// following is added by LLY on 12/23
// define audio channel
//#ifdef DOS_VER
// define channel mode
#define     CHIPS_LRD           0               // Audio is Stereo (LR) Dolby Surround Compatible
#define     CHIPS_C             1               // Audio is Center
#define     CHIPS_LR            2               // Audio is LR
#define     CHIPS_LCR           3               // Audio is LCR
#define     CHIPS_LRLS          4               // Audio is LRLs
#define     CHIPS_LCRLS         5               // Audio is LCRLs
#define     CHIPS_LRLSRS        6               // Audio is LRLsRs
#define     CHIPS_LCRLSRS       7               // Audio is LCRLsRs

// define AC3 karaoke mode
//#define     KOKMODE_NOVOCAL     0
//#define     KOKMODE_LEFT        1
//#define     KOKMODE_RIGHT       2
//#define     KOKMODE_STEREO      3

// For Vocal Definition
#define     VOCAL_OFF         0
#define     VOCAL_LL          1
#define     VOCAL_RR          2
#define     VOCAL_ON          3

// define Dual mode
#define     DUAL_STEREO         0
#define     DUAL_LEFTMONO       1
#define     DUAL_RIGHTMONO      2
#define     DUAL_MIXEDMONO      3

//Kevin1.07, AC3 downmix mode
#define     AC3_DOWNMIX_LORO        0
#define     AC3_DOWNMIX_LTRT        1
#define     AC3_DOWNMIX_DEFAULT    AC3_DOWNMIX_LORO

//#define     AUDIO_3D            4               // 3D-Audio
//#define     AUDIO_VOICEOFF      6
//#define     AUDIO_STEREO        AUDIO_RL        // Audio is Stereo (LR)

/*
// define for Audio Type
#define     AUD_TYPE_AC3        0
#define     AUD_TYPE_MPG        1
#define     AUD_TYPE_MP3        AUD_TYPE_MPG
#define     AUD_TYPE_PCM        2
#define     AUD_TYPE_IEC958     3
// LLY.025
#define     AUD_TYPE_LPCM       AUD_TYPE_PCM
*/
//#endif
/////////////////////////////////////////
// wyc.278, add some define to support per-channel volume control include L/R channel.
#define AUDIO_CHANNEL_BEGIN     0
#define AUDIO_CHANNEL_FRONT_L     AUDIO_CHANNEL_BEGIN
#define AUDIO_CHANNEL_FRONT_R     (AUDIO_CHANNEL_BEGIN + 1)
#define AUDIO_CHANNEL_REAR_L      (AUDIO_CHANNEL_BEGIN + 2)
#define AUDIO_CHANNEL_REAR_R      (AUDIO_CHANNEL_BEGIN + 3)
#define AUDIO_CHANNEL_CENTER    (AUDIO_CHANNEL_BEGIN + 4)
#define AUDIO_CHANNEL_SW        (AUDIO_CHANNEL_BEGIN + 5)
#define AUDIO_CHANNEL_BASS      (AUDIO_CHANNEL_BEGIN + 6)
#define AUDIO_CHANNEL_TREBLE    (AUDIO_CHANNEL_BEGIN + 7)
#define AUDIO_CHANNEL_ALL        (AUDIO_CHANNEL_BEGIN + 8)

#define AMP_MODE_ENTER_EXIT     0
#define AMP_MODE_KEY_UP         1
#define AMP_MODE_KEY_DOWN       2
#define AMP_MODE_KEY_LEFT       3
#define AMP_MODE_KEY_RIGHT      4 
#define AMP_MODE_ALL_VOL_UP     5
#define AMP_MODE_ALL_VOL_DOWN   6

#define MAX_ALL_CHANNEL_VOLUME  32
// wyc.277a-1-AVSys
#define DEFAULT_ALL_CHANNEL_VOLUME          4
#define DEFAULT_OTHER_CHANNEL_DEGREE        6// wyc2.79, (MAX_ALL_CHANNEL_VOLUME/4)
#define MAX_OTHER_CHANNEL_DEGREE            2*DEFAULT_OTHER_CHANNEL_DEGREE

//Kevin2.81 add user-defined EQ 
#define MAX_PER_BAND_AMP            12
#define DEFAULT_PER_BAND_AMP        6


// wyc.277a-2, add define for __bAMPActive control.
#define AMP_TUNE_PER_CHANNEL        1
#define AMP_TUNE_ALL_CHANNEL        2

// wyc2.79, define the write serial EPPROM state for per-channel volume.
#define READ_FROM_EPPROM                  0x0
#define WRITE_TO_EPPROM                   0x80
#define ALL_CHANNEL_NOT_INITIAL           0x1
#define PER_CHANNEL_NOT_INITIAL           0x2
#define INITIAL_ALL                         0x3

#define WRITE_ALL_CHANNEL_NOT_INITIAL    (WRITE_TO_EPPROM | ALL_CHANNEL_NOT_INITIAL)
#define WRITE_PER_CHANNEL_NOT_INITIAL    (WRITE_TO_EPPROM | PER_CHANNEL_NOT_INITIAL)
#define WRITE_ALL_INITIAL                   (WRITE_TO_EPPROM | INITIAL_ALL)

#ifdef  SUPPORT_AV_SYSTEM
extern  BYTE    __bAudioChannel;
extern  BYTE  __bPerVol[AUDIO_CHANNEL_END+1]; // LLY.278-1
//Kevin2.81 review AVSys
#ifdef SUPPORT_USER_DEFINED_EQ
extern  BYTE  __bBandSelect;
extern  BYTE  __bPerAmp[BAND_SELECT_END+1];
#endif 
extern  BYTE    __bAMPVol;
#endif // #ifdef  SUPPORT_AV_SYSTEM
extern  BYTE  __bAMPActive;

extern  DWORD    __dwVolAudio;
// LLY.278, add for "Equalizer" feature
extern  BYTE    __bSoundEffect;
///////////////////////////////////////////////////
//  bType; the TYPE definition
#define CHIP_BASE           0
#define CHIP_AUDIOMUTE      CHIP_BASE+ 2        // Control Audio Mute or NOT
#define CHIP_KEYSHIFT       CHIP_BASE+ 3        // Control KeyShift UP/DOWN/NORMAL
#define CHIP_ENABLEKARAOKE  CHIP_BASE+ 4        // Enable Karaoke in BCA

extern char        __b3DLevel;

//Kevin2.80 move initialization of _dwACR1, _dwACR2, & _dwACR3 from chips.c to _INITIAL_Variables_PowerON()
extern  DWORD   _dwACR1, _dwACR2, _dwACR3;
#define ACR2_DEFAULT    0x230
#define ACR3_DEFAULT    0 //0x1840000 //Kevin2.31

//Kevin1.05, PCM wrod length for all channels
//Kevin2.80-2, write PCM word length when h/w power-on immediately after RISC finishes reset & before DSP enables.
#include "winav.h"
#if(SUPPORT_PCM_WORD_LENGTH == 24)    // Support up to 24 bit
//#define ACR1_WORD_LENGTH 0x30     
#define ACR1_WORD_LENGTH 0xf0         
#elif(SUPPORT_PCM_WORD_LENGTH == 20)  // Support up to 20 bit
//#define ACR1_WORD_LENGTH 0x20
#define ACR1_WORD_LENGTH 0xA0         
#elif(SUPPORT_PCM_WORD_LENGTH == 18)  // Support up to 18 bit
//#define ACR1_WORD_LENGTH 0x10
#define ACR1_WORD_LENGTH 0x50         
#else                                 // Support up to 16 bit
#define ACR1_WORD_LENGTH 0x00
#endif


//Kevin1.07-3, modify 
#ifdef PCM_OUTPUT_MSB_FROM_BIT0
#if (AUDIO_ALIGN_FORMAT == RIGHT_ALIGN)
#define ACR1_DEFAULT    (0x100d | ACR1_WORD_LENGTH)    
#elif (AUDIO_ALIGN_FORMAT == I2S_ALIGN)
#define ACR1_DEFAULT    (0x140f | ACR1_WORD_LENGTH)
#elif (AUDIO_ALIGN_FORMAT == LEFT_ALIGN)
#define ACR1_DEFAULT    (0x180d | ACR1_WORD_LENGTH)
#endif
#else //#ifdef PCM_OUTPUT_MSB_FROM_BIT0
#if (AUDIO_ALIGN_FORMAT == RIGHT_ALIGN)
#define ACR1_DEFAULT    (0x100c | ACR1_WORD_LENGTH)    
#elif (AUDIO_ALIGN_FORMAT == I2S_ALIGN)
#define ACR1_DEFAULT    (0x140e | ACR1_WORD_LENGTH)
#elif (AUDIO_ALIGN_FORMAT == LEFT_ALIGN)
#define ACR1_DEFAULT    (0x180c | ACR1_WORD_LENGTH)
#endif
#endif //#ifdef PCM_OUTPUT_MSB_FROM_BIT0      


//Kevin2.81, add
#define CHIPS_VOLUMECONTROL     0
#define CHIPS_SOUNDEFFECT       1
#define CHIPS_SURROUND          2
#define CHIPS_ECHO              3
#define CHIPS_KEYCONTROL        4
#define CHIPS_OPENAUDIO         5 //Kevin0.87, add

//Kevin2.81, add
#define AUDIO_AC3   0
#define AUDIO_MPG   1
#define AUDIO_PCM   2
#define AUDIO_DTS   3
#define AUDIO_WMA   5 //Kevin1.08

//Kevin1.05, correct parameters
//Kevin2.80, add for MIC & SPDIF 
#define          MIC_EN                         0x2000 //bit 13 of AUDIOCFG0R
#define          MIC_CH_NO                      0 //0x00 //bit 8~9 of AUDIOCFG0R
#define          MIC_CH_LEFT                    1 //0x01 //bit 8~9 of AUDIOCFG0R
#define          MIC_CH_RIGHT                   2 //0x10 //bit 8~9 of AUDIOCFG0R
#define          MIC_CH_MIXED                   3 //0x11 //bit 8~9 of AUDIOCFG0R
#define          SPDIF_EN                       0x4000 //bit 14 of AUDIOCFG1R
#define          SPDIF_OFF                      0x0020 //bit 21 of PCR = bit 5 of __wW99AVPCRHigh 

void    CHIPS_Initial(WORD wInit);
BYTE    CHIPS_KeyControl(BYTE bKey);
// LLY.278-1, add for "Equalizer" feature
BYTE    CHIPS_SoundEffect(BYTE bAction);
// LLY2.78b-2, add for audio output channel re-mapping feature
void    CHIPS_Channel_ReMapping(void);
BYTE    CHIPS_Surround(BYTE bSurd);
void    CHIPS_ProLogicControl(void); //Kevin1.08
BYTE    CHIPS_Echo(BYTE bEcho);
BYTE    CHIPS_VoiceCancel(BYTE bCancel);
BYTE    CHIPS_Change3DLevel(BYTE bChangeLevel);
BYTE    CHIPS_MICControl(BYTE bON);
BYTE    CHIPS_ChannelSwitch(BYTE bCh) ;
void    CHIPS_LFEEnable(BYTE bParam) ;
BYTE    CHIPS_AC3KokMode(BYTE bMode) ;
BYTE    CHIPS_DualMode(BYTE bMode) ;
void    CHIPS_DownMixMode(BYTE bMode); //Kevn908, add

// f/w 0.33
DWORD   CHIPS_VolumeControl( BYTE bFunction);
void    CHIPS_MICVolControl( BYTE bFunction); //Kevin1.10

//Kevin0.87, modify
//void    CHIPS_OpenAudio (BYTE bParam);
BYTE    CHIPS_OpenAudio (BYTE bParam);

void    CHIPS_SoftMute(void);
void    CHIPS_ControlSPDIFOutput(void);    // LLY.103-1

void    CHIPS_MICDetect(void); // Brian.170, Software MIC detection
void    CHIPS_MICEnable(BYTE bEnable); // Brian.173
// wyc.277a-AVSys
void    CHIPS_AMPAction(BYTE bAMPMode);
// wyc2.79, function prototype 
void    CHIPS_EPPROMReadWriteVolume (BYTE bState);
// wyc2.80, move this function to AMP module and rename to _AMP_CombineMainPerVol.
//BYTE    CHIPS_ComputeVolumeValue(BYTE    bAudioChannel);
//Kevin2.80, create
void    CHIPS_SPDIF_Mute(BYTE bEnable); 

//Kevin2.37, support HDCD
void    CHIPS_ControlHDCD(void);

void _ChangeDSPCode (BYTE bType); //Kevin2.31

#ifdef  SUPPORT_AV_SYSTEM
#ifndef NO_TUNER
BYTE    CHIPS_ProgramTuner(BYTE bMode);
#endif  // #ifndef NO_TUNER
#endif  // #ifdef  SUPPORT_AV_SYSTEM

extern  BYTE            __bVocal;
extern  DWORD            __wVolAudio;
extern  char            __cKeyShift;
#ifdef __cplusplus
    }
#endif


#endif      // __CHIPS_H__

⌨️ 快捷键说明

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