📄 dvb_sibk.h
字号:
/******************************************************************************
(C)Copyright Cheertek Inc. 2002-2005,
K000, all right reserved.
Product : STB Firmware
******************************************************************************/
/*!
\file
Service Information background API. This module provides the service information control API.
*/
#ifndef __DVB_SIBK_H__
#define __DVB_SIBK_H__
#include "dvb_type.h"
#include "dvb_filt.h"
typedef enum
{
EN_SIBK_NO_ERROR, /*!< no error */
EN_SIBK_ERROR /*!< some thing wrong */
}EN_SIBK_STATUS;
typedef enum
{
EN_SIBK_IDLE,
EN_SIBK_NEW_PAT_REQ,
EN_SIBK_NEW_PMT_REQ,
EN_SIBK_OTHER_PMT_REQ,
EN_SIBK_PMT_REQ,
EN_SIBK_MONITOR_REQ,
EN_SIBK_START_REQ,
EN_SIBK_STOP_REQ,
EN_SIBK_TIME_ONLY_REQ,
} EN_SIBK_REQUESET_TYPE;
typedef enum
{
EN_SIBK_TASK_STOP = 0,
EN_SIBK_TASK_IDLE,
EN_SIBK_TASK_NEW_PAT,
EN_SIBK_TASK_NEW_PMT,
EN_SIBK_TASK_OTHER_PMT,
EN_SIBK_TASK_PMT,
EN_SIBK_TASK_MONITOR,
EN_SIBK_TASK_START,
EN_SIBK_TASK_TIME_ONLY
} EN_SIBK_TASK_STATE;
typedef struct
{
u16 u16OrgNID; /**< Original Network ID */
u16 u16TPID; /**< Transport Stream ID */
u16 u16ServiceID; /**< Service ID */
} ST_SIBK_DVB_SI;
#define INVALID_SI_ID 0xFFFF
#ifdef ATSC_SYSTEM
typedef struct
{
u16 u16TableType;
u16 u16PID; /* table PID */
u8 u8Version; /* table version */
} ST_PSIP_TABLE_INFO;
#endif
EN_DRV_RESULT DVB_SIBKInit(void);
extern EN_SIBK_STATUS DVB_SIBK_Start (void);
/*! \fn EN_SIBK_STATUS DVB_SIBK_Start (void)
\brief to start SIBK task
\param none
\return EN_SIBK_STATUS see definition.
*/
extern EN_SIBK_STATUS DVB_SIBK_Stop (void);
/*! \fn EN_SIBK_STATUS DVB_SIBK_Start (void)
\brief to stop SIBK task
\param none
\return EN_SIBK_STATUS see definition.
*/
extern EN_SIBK_STATUS DVB_SIBK_Time_Only (void);
/*! \fn EN_SIBK_STATUS DVB_SIBK_Time_Only (void)
\brief to retrieve TDT and TOT only
\param none
\return EN_SIBK_STATUS see definition.
*/
extern EN_SIBK_STATUS DVB_SIBK_MonitorPMTRegister (void (*cbfunc) (ST_SIBK_DVB_SI stDVBSITripleID, EN_FILTER_STATUS enStatus),
u8 u8Type, u16 u16ServiceID, u8* pu8SectionBuffer, u16 u16SectionLeng);
/*! \fn DVB_SIBK_MonitorPMTRegister (void (*cbfunc) (EN_FILTER_STATUS enStatus),
u8 u8Type, u16 u16ServiceID, u8* pu8SectionBuffer, u16 u16SectionLeng)
\param cbfunc : callback function
\param u8Type : indicate continue callback or not
\param u16ServiceID : indicate the service id of PMT
\param pu8SectionBuffer : buffer saves the PMT section. Will be allocated by caller
\param * PMTMonitor [10] to record these information
*/
extern EN_SIBK_STATUS DVB_SIBK_CHSwitchNotify (ST_SIBK_DVB_SI stDVBSITripleID, bool8 bTPChanged);
/*! \fn DVB_SIBK_CHSwitchNotify (u16 u16ServiceID, bool8 bTPChanged)
\param ST_SIBK_DVB_SI : indicate the service id , the transport stream id of current watching channel
\param bTPChanged : indicate TP change or not
\param his function will be called while switch channel.
\param If bTPChanged = TRUE, Send EN_SIBK_NEW_PAT_REQ
bTPChanged = FALSE, Send EN_SIBK_NEW_PMT_REQ
*/
extern EN_SIBK_STATUS DVB_SIBK_PMTTimeoutTime (u32 u32timeout);
/*! \fn EN_SIBK_STATUS DVB_SIBK_PMTTimeoutTime (u32 u32timeout)
\brief to set the PMT timeout time
\param u32timeout (Input) timeout time
\return EN_SIBK_STATUS see definition.
*/
EN_SIBK_STATUS DVB_SIBK_MonitorPMTUnRegister (void (*cbfunc) (ST_SIBK_DVB_SI stDVBSITripleID, EN_FILTER_STATUS enStatus));
EN_SIBK_STATUS DVB_SIBK_CHSwitchPreprocess (void);
/*! \fn Dextern EN_SIBK_STATUS DVB_SIBK_MonitorPMTUnRegister (void (*cbfunc) (EN_FILTER_STATUS enStatus))
\param cbfunc : callback function
\return EN_SIBK_STATUS see definition.
*/
#ifdef CI_ENABLE
void DVB_SIBK_CAMPlugIn(void);
#ifdef PVR_ENABLE
u16 DVB_SIBK_PVRCIGetCurSrvId(void);
void DVB_SIBK_AddScheduleScrambledService(u16 u16Sid);
#endif
#endif
#ifdef ATSC_SYSTEM
u16 DVB_SIBK_GetEITPID (u16 u8EITType);
/*! \fn u16 DVB_SIBK_GetEITPID (u16 u8EITType)
\brief to get the PID of the indicated EIT type
\param u8EITType (Input) EIT type
\return EIT PID
*/
u8 DVB_SIBK_GetEITNum (void);
/*! \fn u8 DVB_SIBK_GetEITNum (void)
\brief to get the number of EIT
\return EIT number
*/
EN_DRV_RESULT DVB_SIBK_GetSrvInfo (ST_SIBK_DVB_SI * pstDVBSITripleID);
#endif
#endif /* end ifndef __DVB_SIBK_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -