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

📄 audio_globals.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/****************************************************************************/
/* MODULE:                                                                         */
/*audio_Globals.h                 */
/* Copyright (c) ROCKCHIP, Inc.             */
/* ALL RIGHTS RESERVED              */
/* EDIT BY    ,FSH   ,2007-6-1             */
/*                   */
/* LOG:    ***********                   */
/*                   */
/****************************************************************************/

#include "../include/audio_main.h"
#include "../buffer/buffer.h"
#include "../id3/id3.h"
#include "../fade/fade.h"
#include "../Effect/effect.h"

//defined by Vincent for output
#define AUDIO_OUT_BUF_LEN   (4*4*3000)
#define AUDIO_OUT_BUF_NUM   (5)
typedef struct
{
    /*short  PCMBuf1[4*3000];
    short  PCMBuf2[4*3000];*/
    short  PCMBuf[AUDIO_OUT_BUF_NUM*AUDIO_OUT_BUF_LEN];
    int    lPCMLength;
    //short  *pPCMBuf;
    volatile int     gAudioOutBufIndex;
    volatile int     gAudioDecoderIndex;

    long   lOutLength;
    short  *pOutLeft;
    short  *pOutRight;

    short  *EncOutBuf;

    short  *EncBufL;
    short  *EncBufR;

    long   flag;

    //音效控制参数, HuWeiGuo
    tEffect EffectCtl;
}AudioInOut_Type;

extern AudioInOut_Type AudioIOBuf;

//extern pcm_out_type PcmOutBuf;
//---------------------------------

//****************************************************************************
// The following values are the IOCTLs which are sent to the individual codec
// drivers.
//****************************************************************************
enum
{
    SUBFN_CODEC_GETNAME,
    SUBFN_CODEC_GETARTIST,
    SUBFN_CODEC_GETTITLE,
    SUBFN_CODEC_GETBITRATE,
    SUBFN_CODEC_GETSAMPLERATE,
    SUBFN_CODEC_GETCHANNELS,
    SUBFN_CODEC_GETLENGTH,
    SUBFN_CODEC_GETTIME,
    SUBFN_CODEC_OPEN_DEC,
    SUBFN_CODEC_OPEN_ENC,
    SUBFN_CODEC_GETCAPTUREBUFFER,
    SUBFN_CODEC_SETBUFFER,
    SUBFN_CODEC_DECODE,
    SUBFN_CODEC_ENCODE,
#if ROCK_CAMERA
    SUBFN_CODEC_DVENCODE,
#endif    
    SUBFN_CODEC_SEEK,
    SUBFN_CODEC_CLOSE,
    SUBFN_CODEC_STORETIME            // add  by huangzf
};

//****************************************************************************
// The following are the flags passed to CodecOpen.
//****************************************************************************
#define CODEC_OPEN_ENCODE                       0x00000001
#define CODEC_OPEN_DECODE                       0x00000002
#define CODEC_OPEN_PLAYLIST      0x00000004

//****************************************************************************
// The following are the flags passed to CodecSeek.
//****************************************************************************
#define CODEC_SEEK_FF                  0x00000000
#define CODEC_SEEK_REW      0x00000001
#define CODEC_SEEK_OTHER     0x00000002
#ifdef AUDIBLE_INCLUDE
#define CODEC_SEEK_SECTIONFF    0x00000003
#define CODEC_SEEK_SECTIONREW   0x00000004
#endif
//****************************************************************************
// Function prototypes and global variables.
//****************************************************************************
//OGG
extern unsigned long
    OggDecFunction(unsigned long ulSubFn, unsigned long ulParam1, unsigned long ulParam2,
                   unsigned long ulParam3, unsigned long ulParam4);
//AC3
extern unsigned long
    AC3DecFunction(unsigned long ulSubFn, unsigned long ulParam1, unsigned long ulParam2,
                   unsigned long ulParam3, unsigned long ulParam4);
//pAAC.C
extern unsigned long AACDecFunction(unsigned long ulSubFn, unsigned long ulParam1,
                                        unsigned long ulParam2, unsigned long ulParam3,
                                        unsigned long ulParam4);

//pFLAC.C
extern unsigned long FLACDecFunction(unsigned long ulSubFn, unsigned long ulParam1,
                                         unsigned long ulParam2, unsigned long ulParam3,
                                         unsigned long ulParam4);

// pAPE.C
extern unsigned long APEDecFunction(unsigned long ulSubFn, unsigned long ulParam1,
                                        unsigned long ulParam2, unsigned long ulParam3,
                                        unsigned long ulParam4);
// pMP3.C
extern unsigned long MP3Function(unsigned long ulSubFn, unsigned long ulParam1,
                                     unsigned long ulParam2, unsigned long ulParam3,
                                     unsigned long ulParam4);

// pMPEG4Audio.C MPEG4 Audio
extern unsigned long
    MPEG4AudioFunction(unsigned long ulSubFn, unsigned long ulParam1, unsigned long ulParam2,
                       unsigned long ulParam3, unsigned long ulParam4);

// pWMA.C
extern unsigned long WMAFunction(unsigned long ulSubFn, unsigned long ulParam1,
                                     unsigned long ulParam2, unsigned long ulParam3,
                                     unsigned long ulParam4);

// pMP3.C
extern unsigned long MP2Function(unsigned long ulSubFn, unsigned long ulParam1,
                                     unsigned long ulParam2, unsigned long ulParam3,
                                     unsigned long ulParam4);

// pVOBIS.C
extern unsigned long OGGFunction(unsigned long ulSubFn, unsigned long ulParam1,
                                     unsigned long ulParam2, unsigned long ulParam3,
                                     unsigned long ulParam4);




// pMp3Enc.C
extern unsigned long MP3EncFunction(unsigned long ulSubFn, unsigned long ulParam1, unsigned long ulParam2,
                                        unsigned long ulParam3, unsigned long ulParam4);

// pWMAEnc.C
extern unsigned long WMAEncFunction(unsigned long ulSubFn, unsigned long ulParam1,
                                        unsigned long ulParam2, unsigned long ulParam3,
                                        unsigned long ulParam4);


// pMSADPCM.C
extern unsigned long MSADPCMFunction(unsigned long ulSubFn, unsigned long ulParam1,
                                         unsigned long ulParam2, unsigned long ulParam3,
                                         unsigned long ulParam4);
// pWAV.C
extern unsigned long PCMFunction(unsigned long ulIoctl, unsigned long ulParam1,
                                     unsigned long ulParam2, unsigned long ulParam3,
                                     unsigned long ulParam4);

// RM.C
extern unsigned long RMFunction(unsigned long ulIoctl, unsigned long ulParam1,
                                    unsigned long ulParam2, unsigned long ulParam3,
                                    unsigned long ulParam4);
/*
// From aac.c
extern unsigned long AACFunction(unsigned long ulSubFn, unsigned long ulParam1,
         unsigned long ulParam2, unsigned long ulParam3,
         unsigned long ulParam4);
*/
// AMR
extern unsigned long AMRFunction(unsigned long ulSubFn, unsigned long ulParam1,
								 unsigned long ulParam2, unsigned long ulParam3,
								 unsigned long ulParam4);

// From codec.c
///////////////////////////////////////////////////////////////////////////////
extern unsigned long CodecOpen(unsigned long ulCodec, unsigned long ulFlags);
extern unsigned long CodecGetSampleRate(unsigned long *pulSampleRate);
extern unsigned long CodecGetChannels(unsigned long *pulChannels);
extern unsigned long CodecGetLength(unsigned long *pulLength);
extern unsigned long CodecGetTime(unsigned long *pulTime);
extern unsigned long CodecGetCaptureBuffer(short **LppsBuffer, short **RppsBuffer,  long *plLength);
extern unsigned long CodecSetBuffer(BufferState *psBuffer);
extern unsigned long CodecDecode(void);
extern unsigned long CodecEncode(void);
#if ROCK_CAMERA
extern unsigned long CodecDvEncode(void);
#endif
extern unsigned long CodecSeek(unsigned long ulTime, unsigned long ulSeekType);
extern unsigned long CodecClose(void);
extern unsigned long CodecGetBitrate(unsigned long *pulBitrate);

// using for multi codec
///////////////////////////////////////////////////////////////////////////////
extern unsigned long MultiCodecOpen(unsigned long ulCodec, unsigned long ulFlags);
extern unsigned long MultiCodecDecode(void);
extern unsigned long MultiCodecSeek(unsigned long ulTime);

extern unsigned long MultiCodecClose(void);


// From dai.c
///////////////////////////////////////////////////////////////////////////////
extern void DAIInit(void);
extern void NormalInit(void);
extern void DAIEnable_Play(void);
extern void DAIEnable_Record(void);
extern void DAIDisable(void);
extern BufferState *DAIGetPlayBuffer(void);
extern BufferState *DAIGetRecordBuffer(void);
extern void ResetOutputBuffer(void);





// From input.c
///////////////////////////////////////////////////////////////////////////////
extern unsigned long InputEnable(long lSampleRate, short *psBuffer, long lLength);
extern void    InputDisable(void);
extern BufferState*  InputGetOutputBuffer(void);





// From output.c
///////////////////////////////////////////////////////////////////////////////
extern void OutputInit(void);
extern void OutputEnable(void);
extern void OutputDisable(void);
extern BufferState *OutputGetInputBuffer(void);
extern unsigned long OutputSetFormat(long lSampleRate, long lChannels);
extern void OutputSetRate(long lInputSampleRate, long bIsMono);





// From support.s
///////////////////////////////////////////////////////////////////////////////
/*
extern void memcpy(void *pvDest, const void *pvSrc, unsigned long iCount);
extern void memmove(void *pvDest, const void *pvSrc, unsigned long iCount);
extern int  memcmp(const void *pvSrc1, const void *pvSrc2, unsigned long iCount);
extern int  strcmp(const char *pcSrc1, const char *pcSrc2);
extern int  strncmp(const char *pcSrc1, const char *pcSrc2, unsigned long iCount);
extern void memset(void *pvDest, char cChar, unsigned long iCount);
extern int  strlen(const char *pvSrc);
*/



// Codec Library Loader
///////////////////////////////////////////////////////////////////////////////
extern void DynamicLoadADPCM(void);
//extern void DynamicLoadMP3DEC(void);
extern void DynamicLoadMP3ENC(void);
extern void DynamicLoadWMADEC(void);
extern void DynamicLoadMP2DEC(void);
extern void DynamicLoadOGGDEC(void);
extern void DynamicLoadWMAENC(void);
extern void DynamicLoadingJDRM2SDRAM(void); // JANUS Library
extern unsigned long JDRM_MakeDC(void);


enum
{
    NOTWORK = 0,
    DECODING,
    ENCODING,
    PAUSE
};

enum
{
    BIDLE = 0,
    BPLAY,
    BRADIO,
    BRECORD,
    BRECPAUSE
};

enum
{
    VIDLE = 0,
    VPLAY,
    VRADIO,
    VRECORD,
    VMODESELECT,
    VBROWSING,
    VMENU,
    VEQAPP
};




enum
{
    CODEC_MP3 = 0,

#ifdef  WMA_INCLUDE
    CODEC_WMA,
#endif
#ifdef  MP2_INCLUDE
    CODEC_MP2,
#endif
#ifdef  OGG_DEC_INCLUDE
    CODEC_OGG_DEC,
#endif
#ifdef WAV_INCLUDE
    CODEC_WAV,
#endif
#ifdef  MP4_INCLUDE
    CODEC_M4A,  // MPEG4 Audio
#endif
#ifdef M3U_INCLUDE
    CODEC_M3U,
#endif
#ifdef MP3_ENC_INCLUDE
    CODEC_MP3_ENC,
#endif
#ifdef WMA_ENC_INCLUDE
    CODEC_WMA_ENC,
#endif
#ifdef RM_DEC_INCLUDE //added by vincent
    CODEC_RM_DEC,
#endif
#ifdef APE_DEC_INCLUDE //ape解码状态标记,added by hxd 20070707
    CODEC_APE_DEC,
#endif
#ifdef FLAC_DEC_INCLUDE //flac解码状态标记,added by hxd 20070717
    CODEC_FLAC_DEC,
#endif
#ifdef AAC_DEC_INCLUDE //
    CODEC_AAC_DEC,
#endif
#ifdef AC3_DEC_INCLUDE
    CODEC_AC3_DEC,
#endif
#ifdef AMR_INCLUDE
  CODEC_AMR,
#endif
    NUMCODECS
};



#define REC_VOLUME    0xEB  // input value == 235, volume level == 30
#define MAX_ROMSIZE        0x100000
#define MAX_ROMSIZE_NAND  0x180000

extern unsigned short* GetWMAHeader(unsigned int ulPos);



extern unsigned char CodecMode;
extern unsigned char BasicMode;
extern unsigned char VisualMode;
extern unsigned char CurrentCodec;
extern unsigned int  PlaySamplingRate;
extern unsigned int  PlayBitrate;

extern unsigned int  CurrentFileNum;
extern unsigned int  TotalMusicFileNum;
//extern unsigned short PlaySec;
//extern unsigned char CHECK_TIMER_INT;
//extern unsigned char CHECK_TIMER_BATTERY;
extern unsigned char HoldFlag;
//extern unsigned char  SpeedVal;
extern unsigned int  SampleRate;
extern unsigned char ABFlag;
//extern unsigned int ABMusic[2];
//extern unsigned long ABTime[2];
//extern unsigned char  fEnableResume;
//extern unsigned char ValidMusicFlag;
extern unsigned char gPlugInSkip;
extern int    gCurrentDisk;
extern int    g_Part_ID;
extern unsigned long  ulEndOfRAM;

⌨️ 快捷键说明

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