⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tvpfilter.h

📁 ti的数字电视芯片 tvp9000的源码
💻 H
字号:
/***************************************************************************** 
*    Property of Texas Instruments Incorporated, Copyright 2004
*    All rights reserved
******************************************************************************/
/*********************************************************************
*
* Description:
*  TVPFILTER.H contains public definitions related to the section filtering
*  
*  Contents:
*      Control structures
*      Flag definitions
*      Type definitions
*      Function prototypes
*   
**********************************************************************/
/*********************************************************************
*
* $Revision: $
*
* $History: TvpFilter.h $
* 
*********************************************************************/

#ifndef TVP_FILTER_DOT_H_IS_DEFINED
#define TVP_FILTER_DOT_H_IS_DEFINED

/*********************************************************************/
/* Filter types */
#define TVP_NORMAL_FILTER        0x00
#define TVP_GROUP_FILTER         0x01   
#define TVP_FILT_TYPE_MASK       0x01

#define TVP_FILT_LINEAR          0x00
#define TVP_FILT_LINKED_LIST     0x80
#define TVP_FILT_BUFFER_MASK     0x80

/*********************************************************************/
/* Group mode */
#define TVP_FILTER_GROUP_START   0x01
#define TVP_FILTER_GROUP_STOP    0x02
#define TVP_FILTER_GROUP_MATCH   0x04

/*********************************************************************/
/* Filter IRQ lever */
#define TVP_FILT_LEVEL1          0x00   
#define TVP_FILT_LEVEL2          0x20
#define TVP_FILT_LEVEL_MASK      0x20

#define TVP_FILT_IRQ_ENABLE      0x40   
#define TVP_FILT_IRQ_DISABLE     0x00  
#define TVP_FILT_IRQ_SHIFT       6


/*********************************************************************/
/* Filter Status */
#define TVP_FILTER_DISABLED      0x00   
#define TVP_FILTER_ENABLED       0x01  

/*********************************************************************/
/* Filter Max parmeters */
#define TVP_MAX_HW_FILT          32


/*********************************************************************/
/* Type definitions */
typedef unsigned long     TvpTvpFiltTable;
typedef unsigned char *   TvpFiltHeader;
typedef unsigned long     TvpFiltIrqCtrl;


typedef enum  {
        TVP_FILT_MODE_RESET    = 0x00,  /* logical channel cache/filters reset.   */
        TVP_FILT_MODE_DISABLED = 0x01,  /* logical channel filters disabled.      */
        TVP_FILT_MODE_RUN      = 0x02,  /* normal operation.                      */
        TVP_FILT_MODE_INVALID  = 0xFF   /* invalid                                */
} TvpFiltMode;

typedef enum  {  
        TVP_FILTER_CONT_BUF    = 0x00,
        TVP_FILTER_INIT_BUF    = 0x01
} TvpFiltQueryType;


/*********************************************************************/
/* Structure definitions */
typedef struct  {
  unsigned char   filterType;         /* Filter type            */ 
  unsigned char   filterIndex;        /* Hardware filter index  */
  unsigned char   tableIndex;         /* filter table           */
  unsigned char   logical_channel;    /* channel number         */
  
  unsigned char   group_mode;         /* start, stop or match   */       
  unsigned char   filter_size;        /*bytes to filter         */
  unsigned short  reserved2;

  unsigned char   filterElements[16]; /* Filter Pattern         */
  unsigned char   bitMask[16];        /* Bit Mask 1:care,0:do not care            */
  unsigned char   negativeMask[16];   /* Negative mode Mask: 1:positive,0:negative*/
} TvpFilter;
 
typedef struct {
  unsigned char    numMatches;        /* Number of filter match */
  unsigned char    logical_channel;   /* logical channel index  */
  unsigned short   reserved1;
  
  unsigned long    size;              /* size of section */
  
  unsigned char    *sectionPtr;       /* pointer to starting section data */
  
  unsigned char    *linkPtr;          /* link pointers of section*/
  unsigned char    *sectionEndPtr;    /* pointer to the buffer with the section end */
  TvpFilter   *filterPtr[32];    /* holds up to 32 filter pointers */
} TvpFilterExtract;
      
      
/*********************************************************************/
/* Function prototypes */
#ifdef __cplusplus
extern "C" {
#endif

TVP_FERROR tvpFiltFilterAdd(TvpFilter *filterPtr, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltFilterDelete(TvpFilter *filterPtr, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltFilterEnable(TvpFilter *filterPtr, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltFilterDisable(TvpFilter *filterPtr, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltStatusRead(TvpFilter *filterPtr, unsigned char *status);
TVP_FERROR tvpFiltFilterPtrRead(TvpFilterExtract *extractPtr, unsigned char irq_level);
TVP_FERROR tvpFiltSectionFree(TvpFilterExtract *extractPtr);
TVP_FERROR tvpFiltDataAcquire(TvpFilterExtract *extractPtr, unsigned char *dest);
TVP_FERROR tvpFiltHeaderRead(TvpFilterExtract *extractPtr, TvpFiltHeader header);
TVP_FERROR tvpFiltReadDataWithOffset(TvpFilterExtract *extractPtr, unsigned short offset, unsigned short size, unsigned char *dataPtr);
TVP_FERROR tvpFiltInit(TvpIntNum irq);
TVP_FERROR tvpFiltBufferAdd(long *bufferPtr, long size, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltBufferFree(long **bufferPtr, long *size, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltModeSet(TvpFiltMode mode, TvpChanNumber logical_chan);
TVP_FERROR tvpFiltModeRead(unsigned char *mode, TvpChanNumber logical_chan);
long   tvpFiltBufferSizeQuery(unsigned long number, TvpFiltQueryType type);
TVP_FERROR tvpFiltChanBufferEnable(long *buffer, unsigned long size, TvpChanNumber logical_chan, TvpFiltIrqCtrl irq_pri);
TVP_FERROR tvpFiltChanBufferDisable(TvpChanNumber logical_chan);
    
#ifdef __cplusplus
};
#endif

#endif 

⌨️ 快捷键说明

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