DSMCC
15.3.1
|
00001 /******************************************************************************* 00002 * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org) 00003 * Copyright © 2013 Ocean Blue Software Ltd 00004 * 00005 * This file is part of a DTVKit Software Component 00006 * You are permitted to copy, modify or distribute this file subject to the terms 00007 * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org 00008 * 00009 * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 00010 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES 00011 * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. 00012 * 00013 * If you or your organisation is not a member of DTVKit then you have access 00014 * to this source code outside of the terms of the licence agreement 00015 * and you are expected to delete this and any associated files immediately. 00016 * Further information on DTVKit, membership and terms can be found at www.dtvkit.org 00017 *******************************************************************************/ 00025 #ifndef _DSMAPI_H 00026 #define _DSMAPI_H 00027 00028 #include "siqfuncs.h" 00029 #include "dmxtypes.h" 00030 #include "dsm_types.h" 00031 #include "stdfuncs.h" 00032 00033 /*---Constant and macro definitions for public use-----------------------------*/ 00034 00035 /*---Enumerations for public use-----------------------------------------------*/ 00036 00037 /*---Global type defs for public use-------------------------------------------*/ 00038 00039 00040 typedef void (*F_CarouselLoad)( H_ObjCarousel hOC, E_OCLoadStatus result, U32BIT carouselId ); 00041 00042 00043 typedef struct s_DsmccConfig 00044 { 00045 /* DSMCC task priority value - passed to STB_OSCreateTask 00046 * The specified task priority value is used by the DSMCC task 00047 */ 00048 U32BIT taskPriority; 00049 00050 /* Size of internal section buffers memory pool in 4096 byte blocks. This is 00051 * used to provide data directly to DSM-CC instance. The task priority has a 00052 * direct influence over section buffer size. Lower task priority means larger 00053 * buffer pool requirements. 00054 * Minimum value: 100 (400 Kbytes) 00055 * Recommended: 200 00056 */ 00057 U8BIT sectionBuffPoolSize; 00058 00059 /* Size of section buffer manager cache in 64K byte blocks. This is separate 00060 * to sectionBuffPoolSize and this memory is used to store section data not 00061 * immediately required by DSM-CC instance. This facilitates faster DSM-CC file 00062 * loading - particularly when the number of hardware section filters is limited. 00063 * Minimum value: 0 00064 * Suggested value: 16 00065 */ 00066 U8BIT sectionBuffCacheSize; 00067 00068 F_MemAlloc memAlloc; 00069 F_MemFree memFree; 00070 00071 F_PmtParseInit parsePmtInit; 00072 F_ParseDataBcastId parseDataBroadcastId; 00073 F_PmtParseDone parsePmtDone; 00074 00075 F_CarouselLoad carouselLoad; 00076 00077 /* notifyAitInfo is optional and may be set to NULL */ 00078 F_NotifyAitInfo notifyAitInfo; 00079 00080 BOOLEAN obtainSiDirect; 00081 00082 } S_DsmccConfig; 00083 00084 00085 /*---Global Function prototypes for public use---------------------------------*/ 00086 00092 H_DsmControl DSMCC_Open( S_DsmccConfig *config ); 00093 00099 void DSMCC_Close( H_DsmControl instance ); 00100 00123 BOOLEAN DSMCC_Start( H_DsmControl instance, S_DvbLocator *locator, 00124 U32BIT boot_carousel_id, DMXREF dmxref ); 00125 00132 void DSMCC_Stop( H_DsmControl instance, E_DsmRstMode mode ); 00133 00140 void DSMCC_Reboot( H_DsmControl instance ); 00141 00147 H_ObjCarousel DSMCC_CurrentCarousel( H_DsmControl dsmctrl ); 00148 00154 U32BIT DSMCC_CurrentCarouselId( H_DsmControl dsmctrl ); 00155 00163 BOOLEAN DSMCC_SetCurrentCarousel(H_DsmControl dsmctrl, H_ObjCarousel hOC); 00164 00172 void DSMCC_UnloadCarousel(H_DsmControl dsmctrl, H_ObjCarousel hOC, E_DsmRstMode mode); 00173 00180 void DSMCC_SiqCacheClearPmt( H_DsmControl dsmctrl, U16BIT serviceId ); 00181 00186 const char* DSMCC_VersionString(void); 00187 00194 H_DsmControl DSMCC_FindInstance( U16BIT serviceId, DMXREF dmxref ); 00195 00206 void DSMCC_SetFileSystemCacheLimit( H_DsmControl dsmctrl, U32BIT cacheSize ); 00207 00208 #endif /*_DSMAPI_H */