#ifndef _DRV_TTSLICER_H_ #define _DRV_TTSLICER_H_ #include "drv_types.h" //******************************************************************** //******************************************************************** #include "drv_devices.h" #define TTS_DEV_PATH "/dev/vbi0" #define TTS_DEV_NUM 1 //******************************************************************** //******************************************************************** #define MAXLINE 28 // 32 // 24 // 8 #define EXTENDLINE 8 // 12 // 4 // 16 #define PACKETSIZE 44 #define MGZ_PAGEBUF_SIZE (MAXLINE * PACKETSIZE) //28 * 44 = 1232 #define MGZ_EXTBUF_SIZE (EXTENDLINE * PACKETSIZE) //352 #define MAX_EXBUFF_PER_PAGE 10 //im not sure if i have changed this in all places!!! #define TTS_BUFFER_NUM 256 typedef struct _EXTEND_BUFFER_ { #ifndef CONFIG_TTX_COMPRESS_STORE UINT8 Data[EXTENDLINE][PACKETSIZE]; //buffer for data #else UINT8* Data; UINT32 zSize; #endif UINT32 Size; //size of data stored in array Data[][] struct _EXTEND_BUFFER_ *pNextLink; //link to next extended buffer } EXTEND_BUFFER, *PEXTEND_BUFFER; typedef struct _PAGE_BUFFER_ { #ifndef CONFIG_TTX_COMPRESS_STORE UINT8 Data[MAXLINE][PACKETSIZE]; //buffer for data #else UINT8* Data; UINT32 zSize; #endif UINT32 Size; //size of data stored in array Data[][] struct _PAGE_BUFFER_ *pNextPage; struct _EXTEND_BUFFER_ *pNextELink; //link to extended buffer. we use exbuffer if Data[][] is full so size of page is bigger than MAXLINE*PACKETSIZE UINT32 ExtBufNum; //number of extended buffer UINT32 MagNo; } PAGE_BUFFER, *PPAGE_BUFFER; //******************************************************************** //******************************************************************** typedef enum { DEVICE_NONE = 0, DEVICE_ATT = 1, DEVICE_DTT = 2, DEVICE_ACC = 4, DEVICE_MEDIA = 8, } DEVICE_TYPE; typedef enum { STATUS_NOWORK = 0, STATUS_Init, STATUS_InitDone, STATUS_START, STATUS_ACTIVE, STATUS_NOACTIVE, STATUS_STOP, STATUS_SHUTDOWN, } DEVICE_STATUS; typedef enum { NOTYPP = 0, YPPPATH, } TT_YPP_PATH; typedef struct _TTIOC_IOData { UINT16 port; UINT8 index; UINT8 value; } TTIOC_IOData, *TTIOC_IODataPtr; typedef struct _TTIOC_MMIOData { UINT32 addr; UINT32 value; } TTIOC_MMIOData, *TTIOC_MMIODataPtr; typedef struct _TTIOC_DRVCTLData { BOOL bStart; DEVICE_TYPE type; } TTIOC_DRVCTLData, *TTIOC_DRVCTLDataPtr; typedef struct _TTIOC_TTPAGEBuffer { PPAGE_BUFFER pTtPageHeader; PPAGE_BUFFER pTtPageTail; UINT32 TtPageNum; } TTIOC_TTPAGEBuffer, *TTIOC_TTPAGEBufferPtr; typedef struct _TTIOC_SUBTITLE { UINT8 DisplayTTSubtitle; UINT8 Magazine; } TTIOC_SUBTITLE, *TTIOC_SUBTITLEPtr; #define TTS_BYPASS 1 #define TTS_VBI_ID_CC 0x00 #define TTS_VBI_ID_TT 0x03 #define TTS_VBI_ID_WSS625 0x04 #define TTS_VBI_ID_WSSJ 0x05 #define TTS_VBI_ID_VPS 0x06 #define TTS_VBI_FID_ODD 0x01 #define TTS_VBI_FID_EVEN 0x00 #define TTS_VBI_SYS_NON 0x00 #define TTS_VBI_SYS_TT625B 0x01 #define TTS_VBI_SYS_TT625C 0x02 #define TTS_VBI_SYS_TT625D 0x03 #define TTS_VBI_SYS_TT525B 0x05 #define TTS_VBI_SYS_TT525C 0x06 #define TTS_VBI_SYS_TT525D 0x07 /* 16 bytes alignment in ttslicer HW DMA */ #define TTSLICER_DMA_ALIGN 16 #define TTS_ALIGN(addr,size) (((addr)+(size)-1)&(~((size)-1))) #define OTHER_CMDBUF_SIZE 2048 //"46" * 42 #define OTHER_ERROR_NONE 0 #define OTHER_ERROR_BUFSIZE 1 // Size is smaller than OTHER_CMDBUF_SIZE #define OTHER_ERROR_E 2 // copy CmdBuf typedef struct _TTIOC_OTHERBuffer { UINT8 ErrCode; UINT32 buff_idx; UINT32 buff_size; UINT8 *buff; } TTIOC_OTHERBuffer, *PTTIOC_OTHERBuffer; //******************************************************************** //******************************************************************** #define TTIOC_MAGIC 'u' #define TTIOC_BASE 192 #define TTIOC_DRVCTL _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x03, TTIOC_DRVCTLData) #define TTIOC_GET_TYPE _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x04, DEVICE_TYPE) #define TTIOC_GET_OTHERBUFFER _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x06, TTIOC_OTHERBuffer) #define TTIOC_GET_TTSTATUS _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x08, DEVICE_STATUS) #define TTIOC_CLEAR_WAIT_DATA _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x0B, INT32) #define TTIOC_GET_EXT_BUF_LIST _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x0D, TTIOC_EXT_BUF_LIST) #define TTIOC_RESET _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x0E, INT32) #define TTIOC_GET_DEBUG_CONFIG1 _IOR(TTIOC_MAGIC, TTIOC_BASE+0x0F, UINT32) //******************************************************************** //******************************************************************** #endif //_DRV_TTSLICER_H_