#ifndef HBBTV_SI_QUERY_H #define HBBTV_SI_QUERY_H #include "mid_psimon.h" #include "hbbtv_application_manager.h" typedef enum { HBBTV_NO_RUNNING, HBBTV_SIQ_STOP, HBBTV_SIQ_DSMCC_PID, HBBTV_SIQ_BOOT_CAROUSEL, HBBTV_SIQ_OTHER_CAROUSEL, HBBTV_SIQ_CAROUSEL, HBBTV_SIQ_AIT_INFO, } HBBTVSiQueryKind_t; typedef enum { HBBTV_SIQ_SUCCESS, /* Query success */ HBBTV_SIQ_FAILURE, /* Query failure */ HBBTV_SIQ_PENDING, /* Query returning asynchronously */ HBBTV_SIQ_ABORTED /* Query stopped */ } HBBTVSiQueryStatus_t; typedef struct { UINT16 ait_pid; UINT16 ait_version; UINT16 application_type; }HBBTVSiQueryAitInfo_st; typedef struct { HBBTVSiQueryKind_t kind; UINT16 service_id; union { UINT16 association_tag; UINT32 carousel_id; } data; } HBBTVSiQuery_t, *pHBBTVSiQuery_t; typedef struct { UINT16 PID; UINT8 component_tag; UINT8 carousel_id_descriptor[257]; } HBBTVCarouselBootInfo_t, *pHBBTVCarouselBootInfo_t; typedef struct { HBBTVSiQueryKind_t kind; union { UINT16 PID; HBBTVSiQueryAitInfo_st ait_info; HBBTVCarouselBootInfo_t carouselBootInfo; } data; } HBBTVSiQueryResult_t, *pHBBTVSiQueryResult_t; void HBBTV_SIQuery_Init(void); void HBBTV_SIQuery_Uninit(void); void HBBTV_SIQuery_Reset(UINT8 bPartial); HBBTVSiQueryStatus_t HBBTV_SIQuery_StackCmd(HBBTVSiQuery_t *pSiQuery, HBBTVSiQueryResult_t *pQueryResult); HBBTVSiQueryStatus_t HBBTV_SIQuery_SetBootInfo(OC_info_t *BootCarousel); #endif