DSMCC  15.3.1
include/dsm_control.h
Go to the documentation of this file.
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 */
 All Data Structures Files Functions Typedefs