123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /**
- * Copyright(c) 2011 Sunmedia Technologies - All Rights Reserved.
- *
- * @file ai_parent_control.h
- *
- * @brief this file defines atsc parent control api for afw layer inner.
- *
- *
- * 1.This file not dispose RRT, because for RRT rating only support TV-Rating/MPAA static rating information.
- * 2.This file store DRRT information to cash for application get and set.
- * 3.This file provide check content advisory descriptor for current program and user setting rating value.
- */
- #ifndef __AI_PARENT_CONTROL_H__
- #define __AI_PARENT_CONTROL_H__
- #include "al_basictypes.h"
- #ifdef CONFIG_ATSC_SYSTEM
- #include "psip_dr.h"
- #endif
- #include "mid_common.h"
- #include "al_parent_control.h"
- #define AL_ZERO_MALLOC_FUNC(func_malloc, x) \
- ({ \
- UINT32 x_align = (x + (HAL_DCACHE_LINE_SIZE-1)) & (~(HAL_DCACHE_LINE_SIZE-1)); \
- UINT8 *ret = (UINT8 *)func_malloc(x_align); \
- if(ret) memset(ret, 0, x_align); \
- else printf("alloc memery failed\n"); \
- ret; \
- })
- #define AL_SAFR_FREE_FUNC(func_free, p) {if(p){ func_free(p); p = al_null;}}
- /**< malloc cached DRAM-A or DRAM-B when A not enough */
- #define al_zero_malloc(x) AL_ZERO_MALLOC_FUNC(GL_MemAlloc, x)
- /**< free */
- #define AL_SAFE_FREE(p) AL_SAFR_FREE_FUNC(GL_MemFree, p)
- /**
- * @brief Define message type of parent control component, usted to notify framwork.
- */
- typedef enum
- {
- AI_PC_DRRT_UPDATE, /**< Received new drrt table, need notify uplayer update */
-
- AI_PC_MAX,
- } AI_PC_Message_Type_t;
- /**
- * @brief call back function prototype for framwork to register.
- */
- typedef al_int32 (* AI_pfPCCallback)(AI_PC_Message_Type_t EventType, al_uint32 u32Param);
- /**
- * @brief This structure is store/access a rating value.
- */
- typedef struct
- {
- al_uint8 StrLen; /**< length of aucString */
- al_uint8 *String; /**< a rating value's abbreviation defined in DRRT table */
- } AI_PC_RatingValue_t;
- /**
- * @brief This structure is store/access a rating dimension and its rating value.
- */
- typedef struct
- {
- struct
- {
- al_uint8 StrLen; /**< length of aucString */
- al_uint8 *String; /**< a rating dimension defined in DRRT table */
- } stDimensionName; /**< Struct represents a rating dimension information defined in RRT */
-
- al_uint8 GraduatedScale:1; /**< Graduate scale for a rating dimension defined in RRT */
- al_uint8 NumOfValues:4; /**< Number of rating value contained in this dimension defined in RRT */
- al_uint8 Reserved:3;
- AI_PC_RatingValue_t *RatingValue; /**< rating value information in this dimension */
- } AI_PC_RatingDimension_t;
- /**
- * @brief This structure is store/access a rating dimension and its rating value.
- */
- typedef struct
- {
- al_uint8 NumOfDimensions; /**< Number of dimensions defined in RRT */
- AI_PC_RatingDimension_t *RatingDimensions; /**< all dimensions infromation defined in RRT */
- } AI_PC_RRT_t;
- /**
- * @brief check rating value according to content advisory XDS data, refer to CEA608C 9.5.1.5.
- *
- * @param pu8Data[input] the content advisory XDS data which has 2-byte data.
- *
- * @param bLocked[output] geted lock state.
- *
- * @return AL_SUCCESS check rating successed, other value check rating failed.
- */
- AL_Return_t AI_PC_CheckXDSRating(al_uint8 *pu8Data, al_bool *bLocked);
- #ifdef CONFIG_ATSC_SYSTEM
- /**
- * @brief regist to mid psi monitor callback function for get and parse RRT information.
- *
- * @param pData[output] RRT information.
- *
- * @return none.
- */
- al_void AI_PC_RrtCallback(al_void *pData);
- #endif
- /**
- * @brief parent control init function.
- *
- * @param pfPCCallbks[input] parent control notify framwork callback function.
- *
- * @return AL_SUCCESS if initialization is successful, AL_FAILURE otherwise.
- */
- AL_Return_t AI_PC_Init(AI_pfPCCallback pfPCCallbks);
- /**
- * @brief parent control uninit function.
- *
- * @param none.
- *
- * @return AL_SUCCESS if initialization is successful, AL_FAILURE otherwise.
- */
- AL_Return_t AI_PC_Uninit(al_void);
- #ifdef CONFIG_ATSC_SYSTEM
- /**
- * @brief get current region set by user
- *
- * @param region_id[input] specify the region.
- *
- * @return AL_SUCCESS if set region success, AL_FAILURE otherwise.
- */
- AL_Return_t AI_PC_GetCurrentRegion(AL_PC_region_list_t *region_id);
- #endif
- #endif /* __AI_PARENT_CONTROL_H__ */
|