csm2288.h

来自「这是一个SIGMA方案的PMP播放器的UCLINUX程序,可播放DVD,VCD,」· C头文件 代码 · 共 137 行

H
137
字号
/******************************************************************************  Csm2288.h : Implementation of mpeg encoder interface*  REALmagic Quasar Hardware Library*  Created by Aurelia Popa-Radu*  Copyright Sigma Designs Inc*  Sigma Designs Proprietary and confidential*  Created on 5/8/01*  Description:*****************************************************************************/#ifndef __CSM2288_H__#define __CSM2288_H__#include "cobject.h"// registers definitions#define SM2288_TX_FIFO			0x06	// ReadOnly#define SM2288_RC_FIFO			0x08	// WriteOnly#define SM2288_INT_EN_CTRL		0x0a	// ReadWrite#define SM2288_INT_INFO			0x0c	// ReadOnly#define SM2288_DMA_INFO1		0x0e	// ReadWrite#define SM2288_DMA_INFO2		0x10	// ReadWrite#define SM2288_DMA_COUNT		0x16	// ReadWrite#define SM2288_UCODE_DOWNLOAD	0x1c	// WriteOnly#define SM2288_VQ_SIZE_LO		0x20	// ReadOnly#define SM2288_VQ_SIZE_HI		0x22	// ReadOnly#define SM2288_MQ_SIZE_LO		0x24	// ReadOnly#define SM2288_MQ_SIZE_HI		0x26	// ReadOnly#define SM2288_AQ_SIZE			0x28	// ReadOnly#define SM2288_DMA_MASTER		0x2A	// ReadWrite#define SM2288_ENDIAN			0x38	// WriteOnly#define SM2288_PARAM_DOWNLOAD	0x40	// WriteOnly#define SM2288_DRAM_DATA		0x8000	// ReadWrite// unused registers definitions#define SM2288_I2C_TRANSMITTER	0x18	// ReadOnly#define SM2288_I2C_RECEIVER		0x1a	// WriteOnly#define SM2288_I2C_STATUS		0x42	// ReadWrite// SM2288_INT_EN_CTRL and SM2288_INT_INFO bits#define I2C_IDLE			0x2000#define DMAENABLE			0x1000#define AS_ALE_PROTECT		0x0800#define DMA_REQ_ACK			0x0200#define DRAM_FIFO_FULL		0x0080#define DRAM_FIFO_EMPTY		0x0040#define RC_FIFO_EMPTY		0x0008#define TX_FIFO_FULL		0x0004#define TX_FIFO_NOT_EMPTY	0x0002#define DMA_DONE			0x0001// SM2288_DMA_MASTER#define SM_DMA_MASTER		0x0001#define SM_I2C_MASTER		0x0002#define SM_DMA_SLAVE		0x0000#define SM_I2C_SLAVE		0x0000//SM2288_DMA_COUNT#define DMA_START			0x8000// SM2288_DMA_INFO1#define QUEUE_AUDIO_RAW		0x0400#define QUEUE_AUDIO_CBS		0x0500#define QUEUE_VIDEO_CBS		0x0600#define QUEUE_MUX_CBS		0x0700#define DMA_WRITE			0x0080#define DMA_READ			0x0000#define DMA_REQ_POL_HIGH	0x0040// commands#define SM2288_STOP			0x0000#define SM2288_START		0x0001#define SM2288_PAUSE		0x0002#define SM2288_RESUME		0x0003// diagnosis microcode only#define SM2288_SIMPLECHECK 0x0011#define SM2288_FULLCHECK   0x0012#define SM2288_SIGNALCHECK 0x0013#define SM2288_RC_TO_TX_DELAY_MS 10//////////////////////////////////////////////////////////////////////////////// Csm2288 Implementation#define CSM2288_MEMBER\	IMpegEncoderVtbl VTable;		/* virtual table */\	IDecoder* m_pIDecoder;			/* interface to the host */\	void* pQ;						/* pointer to symbols of microcode used only by SigmaTv*/\	DWORD CurrentIrqMask;\	DWORD CurrentMicrocodeVersion; \	emeXferUcodeParameters_type XferUcodeParameters;\	PROPERTY_ITEM MpegEncoderPropertyList[emeMax];\typedef struct tagCSM2288Member{	COBJECT_MEMBER	CSM2288_MEMBER} CSM2288Member;typedef struct tagCsm2288{	struct tagIMpegEncoderVtbl *lpVtbl;	COBJECT_MEMBER	CSM2288_MEMBER} Csm2288;///////////////////////////////////////////////////////////////////////////////// public interfacevoid Csm2288__New (Csm2288** ppIC2C, TCHAR *pName, BOOL bAllocate, DWORD dwInstance);void Csm2288__Delete(IMpegEncoder* pIMpegEncoder, BOOL bDeleteObject);void Csm2288__Init (IMpegEncoder* pIMpegEncoder);void Csm2288__Write(IMpegEncoder* pIMpegEncoder, DWORD Address, DWORD Data);DWORD Csm2288__Read(IMpegEncoder* pIMpegEncoder, DWORD Address);DWORD Csm2288__ReadTXFifo(IMpegEncoder* pIMpegEncoder,DWORD *pTimeLeft_ms);QRESULT Csm2288__HwReset(IMpegEncoder* pIMpegEncoder, void* pUCode, DWORD nBytesUCode, void* pParams, DWORD nBytesParams, DWORD Info);BOOL Csm2288__WriteCommand(IMpegEncoder* pIMpegEncoder, DWORD Command, DWORD Info);BOOL Csm2288__WriteEncodingParams(IMpegEncoder* pIMpegEncoder, void* pData, DWORD nBytes, DWORD Info);BOOL Csm2288__ReadData(IMpegEncoder* pIMpegEncoder, DWORD Type, DWORD nBytes);BOOL Csm2288__WriteData(IMpegEncoder* pIMpegEncoder, DWORD Type, DWORD nBytes);void Csm2288__SetCurrentIrqMask(IMpegEncoder* pIMpegEncoder, DWORD IrqMask);DWORD Csm2288__GetCurrentIrqMask(IMpegEncoder* pIMpegEncoder);DWORD Csm2288__GetHwIrqMask(IMpegEncoder* pIMpegEncoder);DWORD Csm2288__GetHwIrqStatus(IMpegEncoder* pIMpegEncoder);void Csm2288__InitPropertySet(IMpegEncoder* pIMpegEncoder, void* pPropSet, DWORD dwSize);QRESULT Csm2288__SetProperty( IMpegEncoder* pIMpegEncoder,	DWORD PropSet, DWORD PropId, DWORD Flags, void* pData, DWORD dwSizeIn, DWORD* pdwSizeOut);QRESULT Csm2288__GetProperty( IMpegEncoder* pIMpegEncoder,	DWORD PropSet, DWORD PropId, DWORD Flags, void* pData, DWORD dwSizeIn, DWORD* pdwSizeOut);DWORD Csm2288__GetMicrocodeVersion(IMpegEncoder* pIMpegEncoder);QRESULT Csm2288__Test(IMpegEncoder* pIMpegEncoder,DWORD Command);#endif

⌨️ 快捷键说明

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