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

📄 drvaucommon.h

📁 mstar 776 开发的车载dvd
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2006-2007 MStar Semiconductor, Inc.
// All rights reserved.
//
// Unless otherwise stipulated in writing, any and all information contained
// herein regardless in any format shall remain the sole proprietary of
// MStar Semiconductor Inc. and be kept in strict confidence
// (¨MStar Confidential Information〃) by the recipient.
// Any unauthorized act including without limitation unauthorized disclosure,
// copying, use, reproduction, sale, distribution, modification, disassembling,
// reverse engineering and compiling of the contents of MStar Confidential
// Information is unlawful and strictly prohibited. MStar hereby reserves the
// rights to any and all damages, losses, costs and expenses resulting therefrom.
//
////////////////////////////////////////////////////////////////////////////////

#ifndef _AUCOMMON_H_
#define _AUCOMMON_H_

#ifdef _AUCOMMON_C_
#define _AUCOMMON_DECLAIM_
#else
#define _AUCOMMON_DECLAIM_ extern
#endif

// Common
#include <stdio.h>
#include "board.h"
#include "drvtimer.h"
#include "drvvop.h"

// Audio Internal Options
#define USE_AUDIO_FPGA                  0
#define USE_PAULO_FIRMWARE              1
#define USE_SATURN_FIRMWARE             1
#define DSP_IDMA_CHK_READY              1
#define AUD_DSP_DMA_LOADCODE            1

#define AUDIO_VERIFY_DSPCODE_COMMON     0
#define AUDIO_VERIFY_DSPCODE_A2         0
#define AUDIO_VERIFY_DSPCODE_BTSC       0
#define AUDIO_VERIFY_DSPCODE_EIAJ       0
#define AUDIO_VERIFY_DSPCODE_NICAM      0
#define AUDIO_VERIFY_DSPCODE_NICAM_AM   0
#define AUDIO_VERIFY_DSPCODE_HIDEV      0
#define AUDIO_VERIFY_DSPCODE_MPEG       0
#define AUDIO_VERIFY_DSPCODE_AC3        0
#define AUDIO_VERIFY_DSPCODE_JPEG       0

// Audio define
#define AUD_CHK_DSP_READ_RDY            0x08
#define AUD_CHK_DSP_WRITE_RDY           0x10
#define BASE_ADDR                       0x90000

#if (USE_SATURN_FIRMWARE==1)
#define BK0_00  0x00
#define XDATA   xdata
// boolean
//typedef Bool BOOL;
#endif

typedef struct
{
    //BYTE    bank;
    U16    addr;
    U16    mask;
    U16    value;
} MST_REG_TYPE, *PMST_REG_TYPE;


enum
{
    AUD_SIF,        //0
    AUD_DVB         //1
};

enum
{
    AU_STANDARD_BTSC = 0x00,            //0x00
    AU_STANDARD_A2,                     //0x01
    AU_STANDARD_NICAM,                  //0x02
    AU_STANDARD_EIAJ,                   //0x03
    AU_STANDARD_HIDEV,                  //0x04
    AU_STANDARD_AM,                     //0x05

    AU_DVB_STANDARD_MPEG  = 0x10,       //0x10
    AU_DVB_STANDARD_AC3,                //0x11
    AU_DVB_STANDARD_MP3,                //0x12
    AU_DVB_STANDARD_JPEG,               //0X13
    AU_DVB_STANDARD_TONE                //0x14
};

/// AUDIO PATH
typedef enum
{
    AUDIO_PATH_0,      ///< 0: PATH 0
    AUDIO_PATH_1,      ///< 1: PATH 1
    AUDIO_PATH_2,      ///< 2: PATH 2
    AUDIO_PATH_3,      ///< 3: PATH 3
}AUDIO_PATH_TYPE;

enum
{
	AUDIO_DSP1_INPUT,   ///< 0: DSP Decoder1 Input
    AUDIO_DSP2_INPUT,   ///< 1: DSP Decoder2 Input
    AUDIO_ADC_INPUT,    ///< 2: ADC Input
};

/// AUDIO INPUT TYPE
typedef enum
{
	AUDIO_SPDIF_INPUT		= 3,  	///< 3: SPDIF INPUT
    AUDIO_I2S_INPUT			= 4,    ///< 4: I2S INPUT
    AUDIO_HDMI_INPUT		= 5,	///< 5: HDMI INPUT

	AUDIO_DSP1_DVB_INPUT			= 0x00,
	AUDIO_DSP1_CardRD_INPUT			= 0x10,
	AUDIO_DSP1_SPDIFnonPCM_INPUT	= 0x20,
	AUDIO_DSP1_SIF_INPUT			= 0x30,

	AUDIO_DSP2_HDMInonPCM_INPUT		= 0x01,
	AUDIO_DSP2_CardRD_INPUT			= 0x11,
	AUDIO_DSP2_SPDIFnonPCM_INPUT	= 0x21,
	AUDIO_DSP2_SIF_INPUT			= 0x31,

    AUDIO_AUIN0_INPUT  = 0x02,   ///< 0x02 Line-in[0]
    AUDIO_AUIN1_INPUT  = 0x12,   ///< 0x12 Line-in[1]
    AUDIO_AUIN2_INPUT  = 0x22,   ///< 0x22 Line-in[2]
    AUDIO_AUIN3_INPUT  = 0x32,   ///< 0x32 Line-in[3]
} AUDIO_INPUT_TYPE;

/// AUDIO OUTPUT TYPE
typedef enum
{
    AUDIO_AUOUT0_OUTPUT,	///< 0: MASTER OUTPUT
    AUDIO_AUOUT1_OUTPUT,	///< 1: AA0 OUTPUT
    AUDIO_AUOUT2_OUTPUT,	///< 2: AA1 OUTPUT
    AUDIO_SPDIF_OUTPUT,		///< 4: SPDIF OUTPUT
    AUDIO_IIS1_OUTPUT,		///< 5: IIS1 OUTPUT
    AUDIO_IIS2_OUTPUT,		///< 6: IIS2 OUTPUT
} AUDIO_OUTPUT_TYPE;

typedef struct
{
    WORD        cm_addr;
    WORD        cm_len;
	U32			cm_buf;
    //U8		   *cm_buf;

    WORD        pm_addr;
    WORD        pm_len;
	U32			pm_buf;
    //BYTE code   *pm_buf;

} AUDIO_DECODE_INFO, *PAUDIO_DECODE_INFO;

typedef struct
{
    U16			cm_addr;
    U16			cm_len;
	U32			cm_buf;
	//U8			*cm_buf;

    U16			pm_addr;
    U16			pm_len;
	U32			pm_buf;
	//U8			*pm_buf;

	U16			cache_addr;
    U16			cache_len;
	U32			cache_buf;
	//U8			*cache_buf;

    U16			prefetch_addr;
    U16			prefetch_len;
	U32			prefetch_buf;
	//U8			*prefetch_buf;

    char            *AlgName;
} AUDIO_ALG_INFO, *PAUDIO_ALG_INFO;


_AUCOMMON_DECLAIM_ BYTE MDrv_AuReadByte(U16 addr);
_AUCOMMON_DECLAIM_ void MDrv_AuWriteByte(U16 addr, BYTE value);
_AUCOMMON_DECLAIM_ void MDrv_AuWriteRegsTbl(MST_REG_TYPE code *pTable, BYTE num);

_AUCOMMON_DECLAIM_ void MDrv_AudioSetBaseAddress(U32 Bin_Base_Address, U32 Mad_Base_Buffer_Adr);

_AUCOMMON_DECLAIM_ void MDrv_AudioInit(U8 Standard);
_AUCOMMON_DECLAIM_ void MDrv_JpegInit(void);
_AUCOMMON_DECLAIM_ void MDrv_AuSetNormalPath(AUDIO_PATH_TYPE path, AUDIO_INPUT_TYPE input, AUDIO_OUTPUT_TYPE output);
_AUCOMMON_DECLAIM_ void MDrv_AuSetSPDIF_Path(BYTE in_sel);
//_AUCOMMON_DECLAIM_ void AuSetHdmiOutput(BYTE output);
//_AUCOMMON_DECLAIM_ void AuSetLineoutInput(BYTE input);
//_AUCOMMON_DECLAIM_ void AuSetI2sOutput(BOOL enable);
_AUCOMMON_DECLAIM_ void MDrv_AuSetPowerOn(BOOL power_on);
//_AUCOMMON_DECLAIM_ void AuSourceDepop(BOOL power_on);
//_AUCOMMON_DECLAIM_ void AuSetI2sOutput(void);
_AUCOMMON_DECLAIM_ void MDrv_AudioHandler(void);
_AUCOMMON_DECLAIM_ void MDrv_AuAlgLoadCode(AUDIO_ALG_INFO *pau_info);
_AUCOMMON_DECLAIM_ BOOL MDrv_AuAlgReloadCode(AUDIO_ALG_INFO *pau_info);
_AUCOMMON_DECLAIM_ BOOL MDrv_AuDspLoadCodeSegment(WORD dsp_addr, BYTE code *dspCode_buf, WORD dspCode_buflen);
_AUCOMMON_DECLAIM_ BOOL MDrv_AuDspLoadCodeSegment_DMA(WORD dsp_addr, LONG32_BYTE flashCodeAddr, WORD dspCode_buflen);
//_AUCOMMON_DECLAIM_ BOOL AuDspLoad2DRAM(WORD dsp_addr, BYTE code *dspCode_buf, WORD dspCode_buflen);
_AUCOMMON_DECLAIM_ BOOL MDrv_AuDspVerifySegmentCode(WORD dsp_addr, BYTE code *dspCode_buf, WORD dspCode_buflen);
_AUCOMMON_DECLAIM_ BOOL MDrv_AuDSP_chkIdamReady( BYTE IdmaChk_type );
_AUCOMMON_DECLAIM_ void MDrv_AuDspPolling(U8 OneShot);
_AUCOMMON_DECLAIM_ void MDrv_AuDspRDDM(U8 OneShot);
_AUCOMMON_DECLAIM_ void MDrv_RST_MAD(void);
_AUCOMMON_DECLAIM_ BOOL MDrv_AuDTVInUse(void);
_AUCOMMON_DECLAIM_ WORD MDrv_MAD_ReadMailBox(BYTE paramNum);
_AUCOMMON_DECLAIM_ void MDrv_MAD_WriteMailBox(BYTE paramNum, WORD data1);
_AUCOMMON_DECLAIM_ void MDrv_MAD_Pio11(WORD cmd);
#endif //_AUCOMMON_H_

⌨️ 快捷键说明

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