📄 audio_globals.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 + -