/**
* Copyright(c) 2011 Sunmedia Technologies - All Rights Reserved.
*
* @file ai_ews_monitor.h
*
* @brief this file defines ews monitor function.
*
* The file supports the ews monitor functions by used for app layer.
* The ews monitor monitor Announcement support descriptor and Adaptation field data descriptor, 
* notify special audio monitor af flag to change audio or service
*
*/

#ifndef __AI_ASTRALCN_MONITOR_H__
#define __AI_ASTRALCN_MONITOR_H__

#include "mid_common.h"

#ifdef SUPPORT_ASTRA_LCN_MONITOR
#include "al_basictypes.h"
#include "mid_siutil_13818.h"
#include "mid_siutil_dvb.h"
#include "db_common.h"

#ifdef __cplusplus
	extern "C"{
#endif

/**
* @brief Define message type of dvb monitor component, usted to notify framwork.
*/
typedef enum
{
	AI_ASTRALCN_MONITOR_START_RECVPMT,
	AI_ASTRALCN_MONITOR_RECVED_PMT,

	AI_ASTRALCN_MONITOR_MAX,
} AI_AstraLcnMon_Message_Type_t;

/**
* @brief call back function prototype for framwork to register.
*/
typedef	al_int32 (* AI_pfAstraLcnMonCallback)(AI_AstraLcnMon_Message_Type_t EventType, al_uint32 u32Param);

al_void AI_AstraLcn_Monitor_PmtOtherClbk(al_void *pData);

al_void AI_AstraLcn_Monitor_InNitAstraLcnDispose(al_void *pData);

al_void AI_AstraLcn_Monitor_RcvAllPmtCK(al_void *pData);

AL_Return_t AI_AstraLcn_Monitor_Init(AI_pfAstraLcnMonCallback pfAstraLcnMonCallbks);

AL_Return_t AI_AstraLcn_Monitor_Uninit(al_void);

AL_Return_t AI_AstraLcn_Monitor_Start(al_void);

AL_Return_t AI_AstraLcn_Monitor_Stop(al_bool bExit);

AL_Return_t AI_AstraLcn_Monitor_StartGetSgtPid(al_void);

AL_Return_t AI_AstraLcn_Monitor_StopGetSgtPid(al_void);

AL_Return_t AI_AstraLcn_Monitor_SetPid(al_void);

#ifdef __cplusplus
}
#endif
#endif
#endif