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 + -
显示快捷键?