/*! \addtogroup Monitors * @{ */ /******************************************************************************/ /** * * \file mid_psimon.h * * \brief middle-ware of digital TV PSI monitors. * * \note Copyright (c) 2008 Sunplus Technology Co., Ltd. \n * All rights reserved. * * \author EMI integrated * ******************************************************************************/ #ifndef _MONITOR_H_2008_04_17 #define _MONITOR_H_2008_04_17 #include #include "mid_common.h" #define MON_UNKNOWN (-1) // unknown #define MON_ID_IGNORE (-2) // none monitored, ignore! #define MON_ID_CUR (-3) // monitor current service #define MON_LISTENER_ID_CODE_D4 0 // default id_code for monitor listenser //definitions for PMT callback // update bit for integration of all changes of PMT. #define COMP_CHG_PCR (1<<0) /* pcr pid change */ #define COMP_CHG_VID (1<<1) /* Video stream pid change */ #define COMP_CHG_VID_CODEC (1<<2) /* video stream type change */ #define COMP_CHG_VID_FOUND (1<<3) /* found video stream */ #define COMP_CHG_AUD (1<<4) /* audio1 stream pid change */ #define COMP_CHG_AUD2 (1<<5) /* audio2 stream pid change */ #define COMP_CHG_AD (1<<6) /* */ #define COMP_CHG_AUD_FOUND (1<<7) /* found audio stream */ #define COMP_CHG_AUD_CODEC (1<<8) /* audio1 stream type change */ #define COMP_CHG_AUD_CODEC2 (1<<9) /* audio2 stream type change */ #define COMP_CHG_OAD (1<<10) /*OAD change*/ #ifdef SUPPORT_CA_SYSTEM #define COMP_CHG_VID_ECM (1<<11) /* video ecm change */ #define COMP_CHG_AUD_ECM (1<<12) /* audio ecm change */ #endif #define COMP_CHG_CA (1<<15) /* CA change */ #define COMP_CHG_SUB_FOUND (1<<16) /* found subtitle stream */ #define COMP_CHG_TTX_FOUND (1<<17) /* found teletext stream */ #define COMP_CHG_CC_FOUND (1<<18) /* found closecaption stream */ #define COMP_CHG_AUDIOLR (1<<19) #define COMP_CHG_AUDIOLR2 (1<<20) typedef void (*iPsiMonPMTCallBack)(INT32 org_net_id, INT32 trans_id, UINT16 pmt_pid, void *data); typedef void (*iPsiMonCallBack)(void *data); #ifdef SUPPORT_INDEPENDENCE_DETECT_OTA typedef INT32 (*iOtaMonCallBack)(void *data); #endif typedef bool (*iOtaMonONIDCallBack)(UINT16 CheckedONID); typedef void (*iOtaMonExitCallBack)(void); typedef void (*iOtaMonStateCallBack)(bool); typedef struct t_otaComCallback { #ifdef SUPPORT_INDEPENDENCE_DETECT_OTA iOtaMonCallBack _pfMonDSICallbk; #endif iOtaMonONIDCallBack _pfMonONIDCallb; iOtaMonExitCallBack _pfMonEXITCallb; iOtaMonStateCallBack _pfMonStateCallbk; }OtaMonComCallback_t; /** * \brief Psi monitor callback structure */ typedef struct _mid_psimon_callbacks { iPsiMonPMTCallBack pfMonPMTCallbk; ///> for PMT monitor callback iPsiMonCallBack pfMonSDTCallbk; ///> for SDT monitor callback iPsiMonCallBack pfMonNITCallbk; ///> for NIT monitor callback iPsiMonCallBack pfMonTDTCallbk; ///> for TDT monitor callback iPsiMonCallBack pfMonTOTCallbk; ///> for TOT monitor callback iPsiMonCallBack pfMonCATCallbk; ///> for CAT monitor callback iPsiMonCallBack pfMonPATCallbk; ///> for MHEG5 Deferred service searching iPsiMonCallBack pfMonSDTOtherCallbk; ///> for other SDT monitor callback #ifdef CONFIG_SUPPORT_KDG_CERTIFICATION iPsiMonCallBack pfMonBATCallbk; ///> for BAT monitor callback #endif #ifdef CONFIG_SUPPORT_INDONESIA_EWS iPsiMonCallBack pfMonTxDWCallbk; ///> for TRDW/TCDW/TMDW monitor callback #endif #ifdef CONFIG_SUPPORT_HBBTV iPsiMonPMTCallBack pfMonAITCallbk; #endif }Mid_PsiMonCallbks_t; /* * Fuction declared here */ /** \addtogroup Add_monitor Add Monitors * \brief add monitors for tables * @{ */ /******************************************************************************/ /** * \fn INT32 AddNetworkMonitoringListener(INT32 original_network_id, * INT32 transport_stream_id, * INT32 id_code, * void (*callback)(void *)) * \brief Add NIT monitoring. * * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddNetworkMonitoringListener(INT32 original_network_id, INT32 transport_stream_id, INT32 id_code, void (*callback)(void *)); /******************************************************************************/ /** * \fn INT32 AddNetworkMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 original_network_id, * INT32 transport_stream_id, * INT32 id_code, * void (*callback)(void *)) * \brief Add NIT monitoring. * * \param InputUnit : Identify the demux unit * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddNetworkMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 network_id, INT32 transport_stream_id, INT32 id_code, void (*callback) (void *)); #ifdef CONFIG_SUPPORT_INDONESIA_EWS /******************************************************************************/ /** * \fn INT32 AddTxDWMonitoringListener(INT32 id_code, void (*callback)(void *)) * * \brief Add TxDW monitoring. * * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddTxDWMonitoringListener(INT32 id_code, void (*callback)(void *)); /******************************************************************************/ /** * \fn INT32 AddTxDWMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,, INT32 id_code, void (*callback)(void *)) * * \brief Add TxDW monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddTxDWMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback) (void *)); #endif #ifdef CONFIG_SUPPORT_HBBTV INT32 AddAITMonitoringListener(INT32 id_code, void (*callback) (INT32, INT32, UINT16, void *)); INT32 AddAITMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback) (INT32, INT32, UINT16, void *)); #endif #ifdef CONFIG_SUPPORT_KDG_CERTIFICATION /******************************************************************************/ /** * \fn INT32 AddBouquetMonitoringListener(INT32 bouquet_id, * INT32 transport_stream_id, * INT32 id_code, * void (*callback)(void *)) * \brief Add BAT monitoring. * * \param bouquet_id : bouquet identifier * \param transport_stream_id : transport identifier * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddBouquetMonitoringListener(INT32 bouquet_id, INT32 transport_stream_id, INT32 id_code, void (*callback)(void *)); /******************************************************************************/ /** * \fn INT32 AddBouquetMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 bouquet_id, * INT32 transport_stream_id, * INT32 id_code, * void (*callback)(void *)) * \brief Add BAT monitoring. * * \param InputUnit : Identify the demux unit * \param bouquet_id : bouquet identifier * \param transport_stream_id : transport identifier * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddBouquetMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 bouquet_id, INT32 transport_stream_id, INT32 id_code, void (*callback) (void *)); #endif /******************************************************************************/ /** * \fn INT32 AddPMTServiceMonitoringListener(INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code, * void (*callback)(INT32, INT32 , void *)) * \brief Add PMT monitoring. * * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddPMTServiceMonitoringListener(INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code, void (*callback)(INT32, INT32 , UINT16, void *)); /******************************************************************************/ /** * \fn INT32 AddPMTServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code, * void (*callback) (INT32, INT32, void *)) * \brief Add PMT monitoring. * * \param InputUnit : Identify the demux unit * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddPMTServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code, void (*callback) (INT32, INT32, UINT16, void *)); /******************************************************************************/ /** * \fn INT32 AddServiceMonitoringListener(INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code, * void (*callback)(void *)) * \brief Add SDT monitoring. * * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddServiceMonitoringListener(INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code, void (*callback)(void *)); /******************************************************************************/ /** * \fn INT32 AddServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code, * void (*callback)(void *)) * \brief Add SDT monitoring. * * \param InputUnit : Identify the demux unit * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code, void (*callback) (void *)); /******************************************************************************/ /** * \fn INT32 AddSDTOtherMonitoringListener(INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code, * void (*callback)(void *)) * \brief Add SDT monitoring. * * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddSDTOtherMonitoringListener(INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code, void (*callback) (void *)); /******************************************************************************/ /** * \fn INT32 AddSDTOtherMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code, * void (*callback)(void *)) * \brief Add SDT monitoring. * * \param InputUnit : Identify the demux unit * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddSDTOtherMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code, void (*callback) (void *)); /******************************************************************************/ /** * \fn INT32 AddTDTMonitoringListener(INT32 id_code, void (*callback)(void *)) * * \brief Add TDT monitoring. * * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddTDTMonitoringListener(INT32 id_code, void (*callback)(void *)); /******************************************************************************/ /** * \fn INT32 AddTDTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback)(void *)) * * \brief Add TDT monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddTDTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback) (void *)); /******************************************************************************/ /** * \fn INT32 AddTOTMonitoringListener(INT32 id_code, void (*callback)(void *)) * * \brief Add TOT monitoring. * * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddTOTMonitoringListener(INT32 id_code, void (*callback)(void *)); /******************************************************************************/ /** * \fn INT32 AddTOTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback)(void *)) * * \brief Add TOT monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddTOTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback) (void *)); /******************************************************************************/ /** * \fn INT32 AddCATMonitoringListener(INT32 id_code, void (*callback)(void *)) * * \brief Add CAT monitoring. * * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddCATMonitoringListener(INT32 id_code, void (*callback)(void *)); /******************************************************************************/ /** * \fn INT32 AddCATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,, INT32 id_code, void (*callback)(void *)) * * \brief Add CAT monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddCATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback) (void *)); /******************************************************************************/ /** * \fn INT32 AddPATMonitoringListener(INT32 id_code, void (*callback)(void *)) * * \brief Add PAT monitoring. * * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddPATMonitoringListener(INT32 id_code, void (*callback)(void *)); /******************************************************************************/ /** * \fn INT32 AddPATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback)(void *)) * * \brief Add PAT monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddPATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback)(void *)); #ifdef DVB_OTA_AUTO_DETECT//yc.guan 2010-04-15 add for SSU /******************************************************************************/ /** * \fn INT32 AddOtaPMTMonitoringListener(INT32 id_code, void (*callback)(void *)) * * \brief Add OtaPMT monitoring. * * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddOtaPMTMonitoringListener(INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code, void (*callback) (INT32, INT32, void *)); /******************************************************************************/ /** * \fn INT32 AddDSIMonitoringListener(INT32 id_code, void (*callback)(void *)) * * \brief Add DSI monitoring. * * \param id_code : identifier number * \param callback : registered callback * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 AddDSIMonitoringListener(INT32 id_code, void (*callback)(void *)); #endif /* @} end of addtogroup Add Monitors */ /** \addtogroup Remove_monitor Remove Monitors * \brief remove monitors for tables * @{ */ /******************************************************************************/ /** * \fn INT32 RemoveNetworkMonitoringListener(INT32 original_network_id, * INT32 transport_stream_id, * INT32 id_code) * \brief Remove NIT monitoring. * * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveNetworkMonitoringListener(INT32 original_network_id, INT32 transport_stream_id, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveNetworkMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 original_network_id, * INT32 transport_stream_id, * INT32 id_code) * \brief Remove NIT monitoring. * * \param InputUnit : Identify the demux unit * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveNetworkMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 network_id, INT32 transport_stream_id, INT32 id_code); #ifdef CONFIG_SUPPORT_INDONESIA_EWS /******************************************************************************/ /** * \fn INT32 RemoveTxDWMonitoringListener(INT32 id_code) * * \brief Remove TxDW monitoring. * * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveTxDWMonitoringListener(INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveTxDWMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code) * * \brief Remove TxDW monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveTxDWMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code); #endif #ifdef CONFIG_SUPPORT_HBBTV INT32 RemoveAITMonitoringListener(INT32 id_code); INT32 RemoveAITMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code); #endif #ifdef CONFIG_SUPPORT_KDG_CERTIFICATION /******************************************************************************/ /** * \fn INT32 RemoveBouquetMonitoringListener(INT32 bouquet_id, * INT32 transport_stream_id, * INT32 id_code) * \brief Remove BAT monitoring. * * \param bouquet_id : network identifier * \param transport_stream_id : transport identifier * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveBouquetMonitoringListener(INT32 bouquet_id, INT32 transport_stream_id, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveBouquetMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 bouquet_id, * INT32 transport_stream_id, * INT32 id_code) * \brief Remove BAT monitoring. * * \param InputUnit : Identify the demux unit * \param bouquet_id : network identifier * \param transport_stream_id : transport identifier * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveBouquetMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 bouquet_id, INT32 transport_stream_id, INT32 id_code); #endif /******************************************************************************/ /** * \fn INT32 RemovePMTServiceMonitoringListener(INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code) * \brief Remove PMT monitoring. * * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemovePMTServiceMonitoringListener(INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemovePMTServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code) * \brief Remove PMT monitoring. * * \param InputUnit : Identify the demux unit * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemovePMTServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveServiceMonitoringListener(INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code) * \brief Remove SDT monitoring. * * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveServiceMonitoringListener(INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 original_network_id, * INT32 transport_stream_id, * INT32 service_id, * INT32 id_code) * \brief Remove SDT monitoring. * * \param InputUnit : Identify the demux unit * \param original_network_id : network identifier * \param transport_stream_id : transport identifier * \param service_id : service number * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 original_network_id, INT32 transport_stream_id, INT32 service_id, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveTDTMonitoringListener(INT32 id_code) * * \brief Remove TDT monitoring. * * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveTDTMonitoringListener(INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveTDTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, * INT32 id_code) * * \brief Remove TDT monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveTDTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveTOTMonitoringListener(INT32 id_code) * * \brief Remove TOT monitoring. * * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveTOTMonitoringListener(INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveTOTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code) * * \brief Remove TOT monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveTOTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveCATMonitoringListener(INT32 id_code) * * \brief Remove CAT monitoring. * * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveCATMonitoringListener(INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveCATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code) * * \brief Remove CAT monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveCATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemovePATMonitoringListener(INT32 id_code) * * \brief Remove PAT monitoring. * * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemovePATMonitoringListener(INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemovePATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code) * * \brief Remove PAT monitoring. * * \param InputUnit : Identify the demux unit * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemovePATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code); #ifdef DVB_OTA_AUTO_DETECT//yc.guan 2010-04-15 add for SSU /******************************************************************************/ /** * \fn INT32 RemoveOtaPMTMonitoringListener(INT32 id_code) * * \brief Remove OtaPMT monitoring. * * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveOtaPMTMonitoringListener(INT32 id_code); /******************************************************************************/ /** * \fn INT32 RemoveDSIMonitoringListener(INT32 id_code) * * \brief Remove DSI monitoring. * * \param id_code : identifier number * * \return 0 if success or fail if < 0 * ******************************************************************************/ INT32 RemoveDSIMonitoringListener(INT32 id_code); #endif /* @} end of addtogroup Remove Monitors */ /** \addtogroup Initialize_monitors Initialize Monitors * \brief initialize and uninitialize * @{ */ /******************************************************************************/ /** * \fn DRV_Status_t MID_PsiMonInit(Mid_PsiMonCallbks_t *pstPsiMonCallbks) * * \brief psi monitor initialization * * \param pstPsiMonCallbks : Psi monitor callback structure * * \return enum status * ******************************************************************************/ MID_Status_t MID_PsiMonInit(Mid_PsiMonCallbks_t *pstPsiMonCallbks); /******************************************************************************/ /** * \fn DRV_Status_t MID_PsiMonInitEx(LIVE_INPUT_UNIT InputUnit, Mid_PsiMonCallbks_t * pstPsiMonCallbks) * * \brief psi monitor initialization * * \param InputUnit : Identify the demux unit * * \param pstPsiMonCallbks : Psi monitor callback structure * * \return enum status * ******************************************************************************/ MID_Status_t MID_PsiMonInitEx(LIVE_INPUT_UNIT InputUnit, Mid_PsiMonCallbks_t * pstPsiMonCallbks); /******************************************************************************/ /** * \fn void MID_PsiMonUninit(void) * * \brief psi monitor un-initialization * * * \return none * ******************************************************************************/ void MID_PsiMonUninit(void); /******************************************************************************/ /** * \fn void MID_PsiMonUninitEx(LIVE_INPUT_UNIT InputUnit) * * \param InputUnit : Identify the demux unit * * \brief psi monitor un-initialization * * * \return none * ******************************************************************************/ void MID_PsiMonUninitEx(LIVE_INPUT_UNIT InputUnit); /* @} end of addtogroup Initialize Monitors */ /** \addtogroup Monitor_operations Monitor Operations * \brief Operations for monitors * @{ */ /******************************************************************************/ /** * \fn DRV_Status_t MID_PsiMonStart(void) * * \brief psi monitor start * * * \return enum status * ******************************************************************************/ MID_Status_t MID_PsiMonStart(void); /******************************************************************************/ /** * \fn DRV_Status_t MID_PsiMonStartEx(LIVE_INPUT_UNIT InputUnit) * * \param InputUnit : Identify the demux unit * * \brief psi monitor start * * * \return enum status * ******************************************************************************/ MID_Status_t MID_PsiMonStartEx(LIVE_INPUT_UNIT InputUnit); /******************************************************************************/ /** * \fn DRV_Status_t MID_PsiMonStop(Boolean bExit) * * \brief psi monitor stop * * \param bExit: to idle or to exit mode * * \return enum status * ******************************************************************************/ MID_Status_t MID_PsiMonStop(bool bExit); /******************************************************************************/ /** * \fn DRV_Status_t MID_PsiMonStopEx(LIVE_INPUT_UNIT InputUnit, Boolean bExit) * * \brief psi monitor stop * * \param InputUnit : Identify the demux unit * * \param bExit: to idle or to exit mode * * \return enum status * ******************************************************************************/ MID_Status_t MID_PsiMonStopEx(LIVE_INPUT_UNIT InputUnit, bool bExit); /******************************************************************************/ /** * \fn Boolean MID_PsiMonIsRunning(void) * * \brief psi monitor stop * * * \return TRUE for yes, FALSE for no * ******************************************************************************/ bool MID_PsiMonIsRunning(void); /******************************************************************************/ /** * \fn Boolean MID_PsiMonIsRunningEx(LIVE_INPUT_UNIT InputUnit) * * \param InputUnit : Identify the demux unit * * \brief psi monitor stop * * * \return TRUE for yes, FALSE for no * ******************************************************************************/ bool MID_PsiMonIsRunningEx(LIVE_INPUT_UNIT InputUnit); /******************************************************************************/ /** * \fn DRV_Status_t MID_PsiMonNotifyProgChanged(UINT32 hProg) * * \brief psi monitor signal program change * * \param hProg : the new program handle * * \return enum status * ******************************************************************************/ MID_Status_t MID_PsiMonNotifyProgChanged(UINT32 hProg); /******************************************************************************/ /** * \fn DRV_Status_t MID_PsiMonNotifyProgChangedEx(LIVE_INPUT_UNIT InputUnit, UINT32 u32Prog) * * \brief psi monitor signal program change * * \param InputUnit : Identify the demux unit * * \param u32Prog: the new program handle * * \return enum status * ******************************************************************************/ MID_Status_t MID_PsiMonNotifyProgChangedEx(LIVE_INPUT_UNIT InputUnit, UINT32 u32Prog); /******************************************************************************/ /** * \fn UINT32 MID_PsiMonQueryCurrentProgHdl(void) * * \brief to query current psi listening program handle * * * \return current listening program handle * ******************************************************************************/ UINT32 MID_PsiMonQueryCurrentProgHdl(void) ; /******************************************************************************/ /** * \fn UINT32 MID_PsiMonQueryCurrentProgHdlEx(LIVE_INPUT_UNIT InputUnit) * * \brief to query current psi listening program handle * * * \return current listening program handle * ******************************************************************************/ UINT32 MID_PsiMonQueryCurrentProgHdlEx(LIVE_INPUT_UNIT InputUnit); /* @} end of addtogroup Monitor Operations */ #ifdef CONFIG_SUPPORT_INDONESIA_EWS void MID_PsiMonSetEwsPid(UINT16 pid); #endif /* @} end of addtogroup Monitors */ #ifdef SUPPORT_INDEPENDENCE_DETECT_OTA void MID_PsiMonSetPmtFlag(Boolean bFlag); bool MID_PsiMonGetPmtFlag(void); #endif #endif // #ifndef _MONITOR_H_2008_04_17