📄 adp_if.h
字号:
NO_ERRORS = 0,
ERROR_IN_CMD = 1, /* error in command, ( can be ON with bit 0 and 1 */
ADP_CONTINUE = 2, /* still handle the command */
ADP_INIT = (int)0xffff,
}FFC_ACKNOWLEDGMENTS;
//=========defines for request token (select one of the following)===========
typedef enum
{
NO_REQUEST_TOKEN = 0x0,
REQUEST_TOKEN_1 = 0x0010,
REQUEST_TOKEN_MAX = 0x00f0,
REQUEST_TOKEN_MASK = 0x00f0,
}RequestsToken;
// timeouts counters
#define WAIT_FFC_TIME_OUT_FIRST 10000
#define WAIT_FFC_TIME_OUT_SECOND 20000
#define WAIT_TERMINATED_TIME_OUT_FIRST 5000
#define WAIT_TERMINATED_TIME_OUT_SECOND 10000
//ADP watch dog timeouts (used to release the driver if it "stuck" on wait_flg procedure)
#ifdef ADP_NO_DRIVER
#define ADP_TIMEOUT_TIME 5
#else
#define ADP_TIMEOUT_TIME 500 //( 1/2 second )
#endif
//defines of IO configuration parameters shifts
#define IOCFG_SPDB_SHIFT 6
#define IOCFG_WFB_SHIFT 10
#define IOCFG_WFA_SHIFT 11
#define IOCFG_FRB_SHIFT 3
#define IOCFG_CPB_SHIFT 7
#define IOCFG_MB_SHIFT 11
#define IOCFG_CB_SHIFT 12
#define IOCFG_OUTW_SHIFT 1
#define IOCFG_INW_SHIFT 3
#define IOCFG_OSP_SHIFT 8
#define IOCFG_ISP_SHIFT 9
// defines of Task application command parameters shifts
#define TASK_PARAM_SW_SHIFT 3
#define TASK_PARAM_DMM_SHIFT 4
#define TASK_PARAM_DMX_SHIFT 6
#define TASK_PARAM_DMXSCALE_SHIFT 8
#define TASK_PARAM_SP_SRD_SHIFT 4
#define TASK_PARAM_SPDIF_FLAG_SHIFT 8
#define TASK_PARAM_SPDIF_QUAN_SHIFT 12
#define TASK_PARAM_PANORAMA_SHIFT 4
#define TASK_PARAM_DECODE_SHIFT 5
#define TASK_PARAM_DIM_CTRL_SHIFT 8
#define TASK_PARAM_CW_CTRL_SHIFT 12
#ifdef D_DEEMPHASIS_SUPPORT
#define TASK_PARAM_DE_CTRL_SHIFT 4
#endif //D_DEEMPHASIS_SUPPORT
#define TASK_PARAM_CDLY_SHIFT 8
#define TASK_PARAM_3D_SHIFT 8
#define TASK_PARAM_COMP_SHIFT 4
#define TASK_PARAM_KAR_SHIFT 8
#define TASK_PARAM_KAR_TABLES_SHIFT 9
#define TASK_PARAM_PKT_SHIFT 12
#define TASK_PARAM_PNG_NS_SHIFT 6
#define TASK_PARAM_PNG_L_SHIFT 5
#define TASK_PARAM_PNG_C_SHIFT 4
#define TASK_PARAM_PNG_R_SHIFT 3
#define TASK_PARAM_PNG_LS_SHIFT 2
#define TASK_PARAM_PNG_RS_SHIFT 1
#define TASK_PARAM_LPCM_ICFG_SHIFT 4
#define TASK_PARAM_WMA_CH_SHIFT 1
#define TASK_PARAM_WMA_VERSION_SHIFT 4
//interrupts handling
#define UNMASK_INTERRUPT 0
#define MASK_INTERRUPT 1
/*====================== ADP microcodes ========================== */
// this list is in the same order as it in the adp code table(adpCodes.c file)
typedef enum
{
MPEG_CODE_2_CH,
MPEG_CODE_6_CH,
AC3_CODE_2_CH,
AC3_CODE_6_CH,
CDDA_CODE,
LPCM_CODE_2_CH,
MP3_CODE_2_CH ,
SDTS_CODE ,
PNG_CODE ,
WMA_CODE ,
JPEG_CODE,
JPEG_VCB_CODE,
ADPCM_CODE,
ANALOG_IN_CODE,
DIGITAL_IN_CODE,
//#ifdef INTERNAL_KARAOKE
AC3_KARAOKE_CODE,
MPEG_KARAOKE_CODE,
LPCM_KARAOKE_CODE,
CDDA_KARAOKE_CODE,
//#endif // INTERNAL_KARAOKE
#ifdef D_PLII_SUPPORTED
AC3_PLII_CODE,
MPEG_PLII_CODE,
LPCM_PLII_CODE,
CDDA_PLII_CODE,
ADPCM_PLII_CODE,
#endif //D_PLII_SUPPORTED
#ifdef DDX_TEST
DDXC_CODE,
#endif // DDX_TEST
#ifdef JPEG_MP3_ENABLE
JPEG_MP3_CODE,
#endif
ADP_CODES_NUM,
}ADP_CODES;
#define NOT_VALID_CODE ADP_CODES_NUM
//ADP-CPU interface errors
typedef enum
{
ERROR_IN_TASK_READY,
ERROR_IN_TASK_TERMINATE,
FIFO_NOT_EMPTY,
NOT_READ_ALL_DATA,
CMD_ERROR,
MISSED_INTERRUPT,
SYNC_LOST_ADP_NOT_CONT,
C2AFULL_ERROR,
SYNC_LOST_ADP_CONT
}ADP_FAILS;
typedef struct
{
UINT16 Karaoke_VocalGain;
UINT16 Karaoke_CenterGain;
unsigned int Karaoke_VeMode:2;
unsigned int Karaoke_Mix:1;
unsigned int Karaoke_Vp:1;
unsigned int Karaoke_Vd:1;
unsigned int Karaoke_Ms:1;
unsigned int Karaoke_KeyShift:4;
}KaraokeStruct;
typedef struct
{
UINT16 Mic_Scale;
UINT16 Mic_Music_Scale;
UINT16 Mic_Sensitivity;
UINT16 Mic_Release_Time;
UINT16 Mic_Echo_Scale;
UINT16 Mic_Echo_gain;
UINT16 Mic_Echo_Delay_Sdram_Size;
UINT16 Mic_Echo_Delay;
}MicStruct;
struct ADPMicrocdeList_Tag
{
CONST UINT8 *piBootFile;
CONST UINT8 *piOverlayFile;
};
struct ADPMicrocdeSize_Tag
{
UINT16 uiBootSize;
UINT16 uiOverlaySize;
};
//////////////////////////////////////////////////////////////
///////Macro's for reading from RTI///////////////////////////
#define ADP_GetTFSFromRTI() (adp_ReadSharedMemNoBmp( DECODER_RTI2_WORD_SP_ADDR ) & RTI2_TASK_FAST_STATUS_MASK)
#define ADP_GetSRFromRTI() (adp_ReadSharedMemNoBmp(DECODER_RTI1_WORD_SP_ADDR) & RTI1_SAMPLING_RATE_MASK)
/////////////////////////////////////////////////////////////////////////////////////////////////
// public ADP driver procedures
#ifdef _DEBUG
void adp_printCode( ADP_CODES code );
#endif
void adp_InitSharedMemory(void);
void adp_WriteSharedMemNoBmp( UINT16 uiAddr, UINT16 uiData );
UINT16 adp_ReadSharedMemNoBmp(UINT16 uiAddr );
void adp_ResetShareMemBitmapBit( SHARED_MEM_BITMAP_BITS_OPTION eBmpbit );
BOOL adp_ReadSharedMemChkRstBmp(UINT16 uiAddr, UINT16 *uiData , SHARED_MEM_BITMAP_BITS_OPTION eBmpbit );
BOOL adp_IsSharedMemWordValid( SHARED_MEM_BITMAP_BITS_OPTION eBmpbit );
void adp_WriteC2AFifoWord( UINT16 uidata );
void adp_SendC2AFifoInt(void);
UINT16 adp_ReadA2CFifoWord(void);
void adp_WriteC2AFullness(UINT16 uidata);
void adp_ResetA2CFullness(void);
UINT16 adp_ReadC2AFullness(void);
UINT16 adp_ReadA2CFullness(void);
CMD_RESULT adp_WaitForFFCValue(UINT16 uiFFCValueOfCPU);
CMD_RESULT adp_SendCommands( CPU_ADP_OP_CODES uiAdpCmd, UINT16 *uiCmdParams , int uiNumberOfCmdWords );
#ifdef ADP_COMPRESSED
CMD_RESULT adp_SendZipedCommands( CPU_ADP_OP_CODES eADPCmd, UINT8 *ZipedCommand , int iTotalNumOfCmdWords );
#endif
void adp_HandleStatusQueryResponse( UINT16 uiNumWords );
void adp_LoadTaskBoot(ADP_CODES eTaskId );
void adp_LoadTaskOverlay( UINT32 ulAddr, ADP_CODES eTaskId);
void adp_TaskStart( void );
void adp_TaskTerminate( void );
void adp_ADTOTabEntry( UINT32 * ulAdrTab, SAMPLING_RATE eSR );
void adp_DacMasterClock( DAC_MASTER_CLOCK eClock );
DAC_MASTER_CLOCK adp_GetCurrDacMasterClock(void);
void adp_LoadADTOTab(void);
void adp_SWReset( void );
void adp_PowerDown( void );
void adp_PowerUp( void );
void adp_C2AInterfaceMapping(UINT16 uiC2AFifoSize, UINT16 uiA2CFifoSize , UINT16 uiSharedMemorySize );
void adp_SetSPPointers(UINT16 uiC2AFifoSize, UINT16 uiA2CFifoSize , UINT16 uiSharedMemorySize );
CMD_RESULT adp_InitNewTask( ADP_CODES eTaskId,UINT32 ulOverlayAddr );
CMD_RESULT adp_TerminateTask(void);
void adp_WatchDogTimeoutHandler();
void adp_InitWatchDog(void);
void adp_TerminateWatchDog(void);
UINT16 adp_Wait4ResponseOnWatchDog(void);
BOOL adp_IsValidStatusResponse(void);
void adp_FlushAPPBuffer(void);
BOOL adp_IsStop(void);
int adp_LzssMicrocodeRead( UINT8 *ucCode , UINT8 *buff, int length, BOOL bFirst);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -