📄 ad_definitions.h
字号:
/* Unused flag. wjin 051009 */
//UINT callback_lba2; /* second callbakc */
UINT prev_cdg_marker_LBA; /* previoud callbacked LBA for CD-G*/
/*
PTS information
*/
UCHAR bState_PTS; /* 1: next sample has valid PTS */
UINT next_sample_pts;
BOOL bDiscont;
UINT cur_IODMA_sample_pts;
UINT pts_gap_for_sample; /* 1: next sample has valid PTS */
UINT prev_pts;
IAD_SET_PLAY_MODE_t playmode; /* trick play status*/
IAD_PLAY_MODE_t cur_playmode;
//INT nPLL_ShiftCount; //unused. wjin 051205
UINT shift_pcmout; /* normal &SPDIFPCM_FRONT : 0, SPDIFPCM_SURROUND : 1, SPDIFPCM_CENTER_WOOFER : 2 */
#if _AUD_NEW_BUF_STRC_FOR_DIVX //jy newbuf
UCHAR* divx_rdptr;
UCHAR* divx_wrptr;
UCHAR* divx_s0_top;
UCHAR* divx_s0_bottom;
UINT divx_free_space;
UINT divx_filled_space;
#endif
} Audio_Decoder_t;
typedef UINT (*SH_DECCALLBACK)(UINT, UCHAR *, UCHAR *);
#define AC3_STREAM_BUF_SIZE 0x2000//0xF00 //wjin 051123
#define MPA_STREAM_BUF_SIZE 0x1800
#define DTS_STREAM_BUF_SIZE 0x2000
#define CODEC_INSTALLED 1
#define CODEC_NOT_INSTALLED 0
#define CODEC_ON 1
#define CODEC_OFF 0
#define CODEC_NEED_SYNC 1
#define CODEC_NOT_NEED_SYNC 0
#if 0 //wjin 051129
#define NUM_OF_MAX_POSTCODEC 10
#else
/* 3(swvolume, fade in/out, last) post codec are needed. others depends on the configuration. */
#define NUM_OF_MAX_POSTCODEC ( ( AUD_SUPPORT_3D_VBX | AUD_SUPPORT_3D_PORTABLE ) + AUD_SUPPORT_REVERBERATION + (AUD_SUPPORT_PSCON_KEY | AUD_SUPPORT_PSCON_SPEED) + AUD_SUPPORT_KARAOKE + AUD_SUPPORT_TIME_DELAY + AUD_SUPPORT_BASS_MANAGEMENT + AUD_SUPPORT_GRAPHIC_EQUALIZER + AUD_SUPPORT_PL2 +AUD_SUPPORT_DUAL + 3)
#endif
#define TURN_OFF 0
#define TURN_ON_WHEN_READY 1
#define TURN_ON 2
#define TURN_OFF_WHEN_READY 3
#define TURN_ON_CHANGE 4 /* if we want to change option during TURN_ON, use TURN_ON_CHANGE*/
#if 0
#define POSTCODEC_HANDLER_INDEX_SPTL 1
#define POSTCODEC_HANDLER_INDEX_REV 4
#define POSTCODEC_HANDLER_INDEX_KARA 5
#define POSTCODEC_HANDLER_INDEX_TD 6
#define POSTCODEC_HANDLER_INDEX_BM 7
#define POSTCODEC_HANDLER_INDEX_EQ 10
#define POSTCODEC_HANDLER_INDEX_SWVOL 14
#define POSTCODEC_HANDLER_INDEX_FADE 15
#define POSTCODEC_HANDLER_INDEX_PSCON 3
#else
#define POSTCODEC_HANDLER_INDEX_SPTL 1
#define POSTCODEC_HANDLER_INDEX_EQ 2
#define POSTCODEC_HANDLER_INDEX_REV 3
#define POSTCODEC_HANDLER_INDEX_PSCON 4
#define POSTCODEC_HANDLER_INDEX_PL2 5 //wjin 060424
#define POSTCODEC_HANDLER_INDEX_N22SP 6 //wjin 060801
#define POSTCODEC_HANDLER_INDEX_BM 7
#define POSTCODEC_HANDLER_INDEX_TD 8
//#define POSTCODEC_HANDLER_INDEX_FADE 10
#define POSTCODEC_HANDLER_INDEX_SWVOL 11
#define POSTCODEC_HANDLER_INDEX_DUAL 12 /* For Dual Mode Codec */
#define POSTCODEC_HANDLER_INDEX_KARA 14
#define POSTCODEC_HANDLER_INDEX_FADE 15
#endif
#define POSTCODEC_BIT_FIELD_SPTL (1<<POSTCODEC_HANDLER_INDEX_SPTL)
#define POSTCODEC_BIT_FIELD_REV (1<<POSTCODEC_HANDLER_INDEX_REV)
#define POSTCODEC_BIT_FIELD_KARA (1<<POSTCODEC_HANDLER_INDEX_KARA)
#define POSTCODEC_BIT_FIELD_TD (1<<POSTCODEC_HANDLER_INDEX_TD)
#define POSTCODEC_BIT_FIELD_BM (1<<POSTCODEC_HANDLER_INDEX_BM)
#define POSTCODEC_BIT_FIELD_EQ (1<<POSTCODEC_HANDLER_INDEX_EQ)
#define POSTCODEC_BIT_FIELD_PL2 (1<<POSTCODEC_HANDLER_INDEX_PL2)
#define POSTCODEC_BIT_FIELD_SWVOL (1<<POSTCODEC_HANDLER_INDEX_SWVOL)
#define POSTCODEC_BIT_FIELD_DUAL (1<<POSTCODEC_HANDLER_INDEX_DUAL)
#define POSTCODEC_BIT_FIELD_FADE (1<<POSTCODEC_HANDLER_INDEX_FADE)
#define POSTCODEC_BIT_FIELD_PSCON (1<<POSTCODEC_HANDLER_INDEX_PSCON)
#define POSTCODEC_BIT_FIELD_N22SP (1<<POSTCODEC_HANDLER_INDEX_N22SP)
/* */
#define SM_OFFSET_MAINCODEC 0x00
#define SM_OFFSET_SYSINFO 0x30
#define SM_OFFSET_AUDBUF 0x50
#define SM_OFFSET_POSTOPTION_BASE 0x90
#define SM_OFFSET_EQ_PARAM SM_OFFSET_POSTOPTION_BASE
#define SM_OFFSET_SPC_PARAM 0x94
#define SM_OFFSET_VOL_PARAM 0x98
#define SM_OFFSET_TD_PARAM 0x9c
#define SM_OFFSET_BM_PARAM 0xa0
#define SM_OFFSET_REVERB_PARAM 0xa4
#define SM_OFFSET_PSCON_PARAM 0xa8
#define SM_OFFSET_PL2_PARAM 0xb0
#define SM_OFFSET_DUAL_PARAM 0xc0
/*
Type definition at Codec.h (ADM system part) -- 16bit machine
typedef struct{
unsigned char CodecStartFlag
unsigned char AudioMode;
unsigned char *pParameter;
unsigned int NumberOfSample;
unsigned char PCMResolution;
unsigned char DecodeErrFlag;
unsigned long SamplingRate;
unsigned long BitRate;
unsigned long InputBufferOffset;
unsigned long InputBufferSize;
unsigned long OutputBufferOffset;
unsigned long ExtInputBufferOffset;
unsigned int FrameSize;
unsigned long StreamBufOffset;
unsigned char NumberOfOutputBuffer; //wjin 060801
}MainCodecShared_t;
*/
#define MAINCODEC_BYTEOFFSET_DECODE_ERR_FLAG 0x9
#define MAINCODEC_BYTEOFFSET_INPUTBUF_OFFSET 0x12
/* <<< @: 5010-xxx.JaeYoul_Kim 051215 : use 32bit buffer offset value to support over 64KB S0, S1 buf size*/ //jy noaudext
#if AUD_SUPPORT_AD_32BIT_BUFOFFSET
#define MAINCODEC_BYTEOFFSET_OUTPUT_BUFFER_OFFSET 0x1A
#define MAINCODEC_BYTEOFFSET_STREAM_BUF_OFFSET 0x24
#endif
#define MAINCODEC_BYTEOFFSET_SPDIF_DOWNMIX_OUTBUFFER_OFFSET 0x28
/* >>> @: 5010-xxx.JaeYoul_Kim 051215 */
/*
Type definition at ADM.h (ADM system part) -- 16bit machine
typedef struct{
SystemMajorMode_t MajorMode; // audio, voice, comm status
SystemMinorMode_t MinorMode; // processing status
ULONG InBufferSize;
UCHAR PCMResolution;
UCHAR Mute_Flag;
UCHAR Fade_State;
UCHAR Fade_Off;
UCHAR SPTL_Flag;
UCHAR EQ_Flag;
UCHAR BM_Flag;
UCHAR TD_Flag;
UCHAR PL_Flag;
UCHAR KARA_Flag;
UCHAR Parse_Flag;
UCHAR Reserved_Flag;
ULONG MicInOffset;
UCHAR REVERB_Flag;
}SystemInfo_t;
*/
#define SYSINFO_BYTEOFFSET_FADE_STATE 0xA
#define SYSINFO_BYTEOFFSET_SPTL_FLAG 0xC
#define SYSINFO_BYTEOFFSET_EQ_FLAG 0xD
#define SYSINFO_BYTEOFFSET_BM_FLAG 0xE
#define SYSINFO_BYTEOFFSET_TD_FLAG 0xF
#define SYSINFO_BYTEOFFSET_KARA_FLAG 0x11
#define SYSINFO_BYTEOFFSET_MICINOFFSET 0x14
#define SYSINFO_BYTEOFFSET_REV_FLAG 0x18
#define SYSINFO_BYTEOFFSET_PSCON_FLAG 0x19
#if __USE_NEW_FADE
#define SYSINFO_BYTEOFFSET_FADE_MODE 0x1b
#endif
#define SYSINFO_BYTEOFFSET_PL2_FLAG 0x1c
/*
Type definition at ADM.h (ADM system part) -- 16bit machine
typedef struct{
unsigned long S0_Base;
unsigned long S1_Base;
unsigned long PcmBuf0;
unsigned long PcmBuf1;
unsigned long PcmBufSize;
unsigned long SpdifStreamBuf0;
unsigned long SpdifStreamBuf1;
unsigned long SpdifPcmBuf0;
unsigned long SpdifPcmBuf1;
unsigned long X_BaseMaincodec;
unsigned long X_BasePostcodec;
unsigned long Y_BaseMaincodec;
unsigned long Y_BasePostcodec;
}aud_buf_t;
*/
#define AUDBUF_BYTEOFFSET_XBASE_MAINCODEC 0x24
#define AUDBUF_BYTEOFFSET_XBASE_POSTCODEC 0x28
#define AUDBUF_BYTEOFFSET_YBASE_MAINCODEC 0x2c
#define AUDBUF_BYTEOFFSET_YBASE_POSTCODEC 0x30
#define SM_OFFSET_KARA_PARAM 0xd0
#define KARA_PARAM_BYTEOFFSET_MIC_VOLUME 0x05
//#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE)
#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE || AUD_SUPPORT_IN_14BIT_ADC_FOR_KARA) //jy kara
#define KARA_PARAM_BYTEOFFSET_DUMMY_BYTE 0x0c /* hspark 051014*/
#else
#define KARA_PARAM_BYTEOFFSET_DUMMY_BYTE 0x0a /* hspark 050913*/
#endif
#define SM_OFFSET_MIC_RDPOINTER 0xe0
#define SM_OFFSET_POSTOPTION_TOP 0x100
#define SM_OFFSET_INVALID SM_OFFSET_POSTOPTION_TOP-4 //reserve last 4bytes for dummy post param. wjin 060324
#define SM_OFFSET_POSTOPTION_SIZE (SM_OFFSET_POSTOPTION_TOP -SM_OFFSET_POSTOPTION_BASE )
#define SM_TOTAL_SIZE 0x400
typedef struct{
UCHAR codec_ID; /* globally defined CODEC ID */
UCHAR bInstalledAtSystem; /* does current ADM_system include this codec ?*/
UCHAR bEnable; /* is this codec ON now ? */
UCHAR bNeedSync; /* do we need to sync with ADM_system now? (Share Memory Architecture)*/
UINT cur_codecstate; /* codec control */
UCHAR *pCodec_param; /* Codec dependant Parameter */
/* Change it from UINT to USHORT, reduce the data size. wjin 051129*/
USHORT nSize_Param; /* size of Codec Parameter */
USHORT handler_bitfield; /* handler bit field*/
USHORT SM_offset; /* handler bit field*/
} Audio_Codec_t;
typedef enum{
FADE_NORMAL = 0,
FADE_IN_START = 0x1,
FADE_IN_PROGRESS = 0x2,
FADE_IN_COMPLETE = 0x3,
FADE_OUT_START = 0x11,
FADE_OUT_PROGRESS = 0x12,
FADE_OUT_COMPLETE = 0x13,
FADE_OUT_MUTE = 0x14
}Fade_State_t;
/* add Some codecs for 5010 DIVX SOL. */
/* 050902 - Jae Youl Kim */ //jy newcodec
#if AUD_SUPPORT_DIVX_FEATURE
#define NUM_OF_MAX_MAINCODEC (8 + AUD_SUPPORT_CALIBRATION_NOISE + AUD_SUPPORT_MPA_DECODER)
#else
#define NUM_OF_MAX_MAINCODEC (6 + AUD_SUPPORT_CALIBRATION_NOISE + AUD_SUPPORT_MPA_DECODER)
#endif
typedef struct{
UCHAR codec_ID; /* globally defined CODEC ID */
UCHAR bInstalledAtSystem; /* does current ADM_system include this codec ?*/
UCHAR bNeedSync; /* do we need to sync with ADM_system now? (Share Memory Architecture)*/
UCHAR cur_codecstate; /* codec control */
UCHAR *pCodec_param; /* Codec dependant Parameter */
UINT nSize_Param; /* size of Codec Parameter */
S5H_SpdifMode_t spdif_mode; /*default SPDIF setting for codec */
} Audio_MainCodec_t;
typedef enum {
AD_SYNC_STOP,
AD_SYNC_WAIT_VIDEO,
AD_SYNC_DISCARD,
AD_SYNC_HOLD,
AD_SYNC_PRESENT
} AD_SyncState_et;
#define AD_FLAG_RESET_MAINDECODER 0x0002
#define AD_FLAG_UPDATE_MAINCODECPARAM 0x0004
#define AD_FLAG_IGNORE_MAINOUTPUT 0x0010
#define AD_FLAG_DO_MAINDECODING 0x0020
#define AD_FLAG_DO_KARAOKEONLY 0x0100
/*
in case of no input stream & decoding is called with this parameter,
then do only Karaoke with 48KHz & 512 sample count
-- hspark 050913
*/
#define SZ_SPACE_BETWEEN_PCM_MIC 0x400 /* reserve 0x400(1KB) between PCM_BUFFER & MIC_BUFFER */
#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE || AUD_SUPPORT_IN_14BIT_ADC_FOR_KARA)
/*
increase MIC Buffer Size in case of using external 16-bit ADC
-- hspark 051006
*/
#define MIC_BUF_LENGTH 0x5000
#else
#define MIC_BUF_LENGTH 0x3000
#endif
#if AUD_SUPPORT_SCORING_FUNCTION_API //By QQ 060126
#define SH_MIC_SOUND_LEVEL_OFFSET_VALUE 0x18
#endif
#define SAMPLE_ATTR_VALID_SPDIFSTREAM 0x10
#define SAMPLE_ATTR_VALID_PCM 0x01
#define SAMPLE_ATTR_VALID_ALL (SAMPLE_ATTR_VALID_PCM |SAMPLE_ATTR_VALID_SPDIFSTREAM )
#define SAMPLE_ATTR_INVALID_SAMPLE 0x00
#define SAMPLE_ATTR_DUMMY_KARA_SAMPLE 0x80
#define SAMPLE_ATTR_PSCON_APPLIED 0x40
#define SAMPLE_ATTR_SPDIF_PCM_DOWNMIX 0x20 //wjin 060801
#define AD_FLAG_NONEED_RESET_ADM 0x0000
#define AD_FLAG_NEED_WHOLE_RESET_ADM 0x0001
#define AD_FLAG_NEED_PARTIAL_RESET_ADM 0x0002
#define UPSAMPLE_MODE_NONE 0x0000
#define UPSAMPLE_MODE_2X 0x0001
#define UPSAMPLE_MODE_4X 0x0002
#define AD_SIZE_UPSAMPLER_BUFFER 0x6000
#if AUD_SUPPORT_BAT_FEATURE
#define AUD_BAT_LOGICAL_SPACESIZE 0x8000
#define AUD_BAT_UNIT_LEN 0x1000 /* AUD_BAT_4KB_UNIT */
#define AUD_BAT_UNIT_CNT ( AUD_BAT_LOGICAL_SPACESIZE / AUD_BAT_UNIT_LEN )
#define AUD_BAT_ENABLE 1
#define AUD_BAT_MAX_MAP_ENTRY 32
typedef struct {
/*
1. address field
*/
UINT addr_physical_start;
UINT addr_physical_stop;
UINT addr_logical_start;
UINT addr_logical_stop;
UINT index_first_valid;
UINT index_last_valid;
UINT size_one_chunk;
UINT count_total_entry;
UINT count_cur_valid_entry;
BM_NODE *pMAP_ENTRY[AUD_BAT_MAX_MAP_ENTRY]; /* MAX node = 32 */
} AD_BAT_Manager_st;
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -