DSM-CC control Manager. More...
#include <string.h>
#include <stdlib.h>
#include "stb_os.h"
#include "cldsmcc.h"
#include "cldsmdbg.h"
#include "dsfm.h"
#include "dsiq.h"
#include "sbm.h"
#include "stbsipmt.h"
#include "dm_debug.h"
#include "dsm_control.h"
#include "dsm_main.h"
#include "dsm_si.h"
#include "dsmcc_version.h"
Go to the source code of this file.
Typedefs | |
typedef struct s_PmtInfo | S_TableInfo |
typedef struct s_DsmMessage | S_Message |
typedef struct s_timer | S_Timer |
typedef struct s_msgqueue | S_MsgQueue |
typedef struct s_DsmControl | S_DsmControl |
Functions | |
U32BIT | StubRequestTable (void *pmtref, U16BIT pid, U16BIT xid, U8BIT tid) |
void | DestroyDsi (S_DsmControl *dsmctrl) |
H_DsmControl | DSMCC_Open (S_DsmccConfig *config) |
Open DSM-CC and create controling instance. More... | |
void | DSMCC_Close (H_DsmControl dsmctrl) |
Close DSM-CC controling instance, and destroy all resources. More... | |
BOOLEAN | DSMCC_Start (H_DsmControl dsmctrl, S_DvbLocator *locator, U32BIT boot_carousel_id, DMXREF dmxref) |
Start DSM-CC controling instance. This will start search for a boot carousel on service specified by locator. The search depends on the value given 'boot_carousel_id' parameter. When boot carousel id is set to INVALID_CAROUSEL_ID, DSM-CC will attempt to start on a carousel which the client recognises in callback function 'parseDataBroadcastId'. Even when the PMT does not contain a recognised data broadcast id, this function will return TRUE, and the DSM-CC will keep trying to load a boot carousel. When boot carousel id is set to a specific value or UNKNOWN_CAROUSEL_ID DSMCC_Start() will return FALSE if a carousel with the required ID is not present. When boot carousel id is set to UNKNOWN_CAROUSEL_ID, DSM-CC will attempt to start on whatever carousel is signalled in PMT for that service. More... | |
void | DSMCC_SetTunedTransportInfo (H_DsmControl dsmctrl, U16BIT onet_id, U16BIT tran_id, DMXREF dmxref) |
Inform DSMCC instance of the tuned transport details. This must be called before calling DSMCC_StartFs() or DSMCC_StartSsu() More... | |
BOOLEAN | DSMCC_StartFs (H_DsmControl dsmctrl, U16BIT service_id, U32BIT carousel_id) |
Start DSM-CC controlling instance. This must follow call to DSMCC_SetTunedTransportInfo. The function will start search for an Object Carousel on the specified service. The search depends on the value given 'carousel_id' parameter. When carousel id is set to INVALID_CAROUSEL_ID, DSM-CC will attempt to start on a carousel which the client recognises in callback function 'parseDataBroadcastId'. Even when the PMT does not contain a recognised data broadcast id, this function will return TRUE, and the DSM-CC will keep searching. When the carousel id is set to a specific value or UNKNOWN_CAROUSEL_ID and a carousel of the required ID is not present, either this function will return FALSE or 'carouselLoad' callback will be passed a result of OC_LOAD_ABORTED_ERROR. When carousel id is set to UNKNOWN_CAROUSEL_ID, DSM-CC will attempt to start on whatever carousel is signalled in PMT for that service. More... | |
BOOLEAN | DSMCC_StartSsu (H_DsmControl dsmctrl, U16BIT service_id, U32BIT oui) |
Start DSM-CC controling instance. This must follow call to DSMCC_SetTunedTransportInfo. The function will start loading Update Carousel for SSU on specified service. More... | |
BOOLEAN | DSMCC_StartSsuWithPid (H_DsmControl dsmctrl, U16BIT pid, U32BIT oui) |
Start DSM-CC controling instance. This must follow call to DSMCC_SetTunedTransportInfo. The function will start loading Update Carousel for SSU on a single specified PID. More... | |
void | DSMCC_Stop (H_DsmControl dsmctrl, E_DsmRstMode mode) |
Stop DSM-CC controling instance. Causes all carousels to unload. More... | |
void | DSMCC_Reboot (H_DsmControl dsmctrl) |
Reboot DSM-CC controling instance. Causes all carousels to unload and initiate search for boot carousel. More... | |
H_ObjCarousel | DSMCC_CurrentCarousel (H_DsmControl dsmctrl) |
Get currently loaded carousel handle. More... | |
U32BIT | DSMCC_CurrentCarouselId (H_DsmControl dsmctrl) |
Get currently loaded carousel ID. More... | |
BOOLEAN | DSMCC_SetCurrentCarousel (H_DsmControl dsmctrl, H_ObjCarousel hOC) |
Set current carousel. This does not unload any previously loaded carousels. More... | |
void | DSMCC_UnloadCarousel (H_DsmControl dsmctrl, H_ObjCarousel hOC, E_DsmRstMode mode) |
Unload specified Carousel. More... | |
void | DSMCC_SsuUnloadModule (H_DsmControl dsmctrl, H_DsmCarousel hCarousel, U32BIT moduleRef) |
Unload SSU module. To be called once the client has finished saving this modules data. This is needed to. More... | |
void | DSMCC_SetFileSystemCacheLimit (H_DsmControl dsmctrl, U32BIT cacheSize) |
Set limit of DSMCC dynamic memory usage for file system caching This function overrides the default size is 6 MB. If this size is less than the currently allocated memory size, then it will release file system data until limit is reached - but only releasing data not currently in used by the client. More... | |
void | DSMCC_SiqCacheClearPmt (H_DsmControl dsmctrl, U16BIT serviceId) |
Clear cached PMT for particular service. More... | |
const char * | DSMCC_VersionString (void) |
Returns version major.minor.patch as string. More... | |
H_DsmControl | DSMCC_FindInstance (U16BIT serviceId, DMXREF dmxref) |
Find DSMCC instance that has beed started on specified service. More... | |
U32BIT | DSMCC_DebugGetMask (void) |
Get the DSMCC debug mask. More... | |
void | DSMCC_DebugSetMask (U32BIT mask) |
Set the DSMCC debug mask. More... | |
U32BIT | DebugInstanceGetMask (H_DsmControl dsmctrl) |
U32BIT | DSMCC_DebugInstanceGetMask (H_DsmControl instance) |
Get the DSMCC debug mask for instance. More... | |
void | DSMCC_DebugInstanceSetMask (H_DsmControl instance, U32BIT mask) |
Set the DSMCC debug mask. More... | |
void | DSMCC_DebugInstanceEnable (H_DsmControl dsmctrl, const char *rootname) |
Enable DSMCC debug for an instance, by reading environment variables with name format: <rootname>_<maskname>. E.g. DSMOTA_DS_PMT. More... | |
Variables | |
unsigned int | gDebugState = DSM_DBG_MASK |
S_DsmControl * | instanceHead = NULL |
#define GETENV_DSMDBG | ( | mskitem | ) |
Definition at line 61 of file dsm_control.c.
void DSMCC_Close | ( | H_DsmControl | dsmctrl | ) |
Close DSM-CC controling instance, and destroy all resources.
dsmctrl | DSM control instance handle |
Definition at line 1580 of file dsm_control.c.
H_ObjCarousel DSMCC_CurrentCarousel | ( | H_DsmControl | dsmctrl | ) |
Get currently loaded carousel handle.
H_DsmControl | dsmctrl DSM control instance handle |
Definition at line 1887 of file dsm_control.c.
U32BIT DSMCC_CurrentCarouselId | ( | H_DsmControl | dsmctrl | ) |
Get currently loaded carousel ID.
H_DsmControl | dsmctrl DSM control instance handle |
Definition at line 1901 of file dsm_control.c.
U32BIT DSMCC_DebugGetMask | ( | void | ) |
void DSMCC_DebugInstanceEnable | ( | H_DsmControl | dsmctrl, |
const char * | rootname | ||
) |
Enable DSMCC debug for an instance, by reading environment variables with name format: <rootname>_<maskname>. E.g. DSMOTA_DS_PMT.
instance | DSM control instance handle |
rootname | Root name for environment variables for this instance |
Definition at line 2154 of file dsm_control.c.
U32BIT DSMCC_DebugInstanceGetMask | ( | H_DsmControl | instance | ) |
Get the DSMCC debug mask for instance.
dsmctrl | DSM control instance handle |
Definition at line 2097 of file dsm_control.c.
void DSMCC_DebugInstanceSetMask | ( | H_DsmControl | instance, |
U32BIT | mask | ||
) |
Set the DSMCC debug mask.
instance | DSM control instance handle |
mask | mask value |
Definition at line 2122 of file dsm_control.c.
void DSMCC_DebugSetMask | ( | U32BIT | mask | ) |
Set the DSMCC debug mask.
mask | mask value |
Definition at line 2066 of file dsm_control.c.
H_DsmControl DSMCC_FindInstance | ( | U16BIT | serviceId, |
DMXREF | dmxref | ||
) |
Find DSMCC instance that has beed started on specified service.
serviceId | Service on which DSMCC is started |
dmxref | demux reference used for HW section filtering |
Definition at line 2031 of file dsm_control.c.
H_DsmControl DSMCC_Open | ( | S_DsmccConfig * | config | ) |
Open DSM-CC and create controling instance.
S_DsmccConfig | *config Configuration of control instance. |
Definition at line 1507 of file dsm_control.c.
void DSMCC_Reboot | ( | H_DsmControl | dsmctrl | ) |
Reboot DSM-CC controling instance. Causes all carousels to unload and initiate search for boot carousel.
H_DsmControl | instance DSM control instance handle |
Definition at line 1833 of file dsm_control.c.
BOOLEAN DSMCC_SetCurrentCarousel | ( | H_DsmControl | dsmctrl, |
H_ObjCarousel | hOC | ||
) |
Set current carousel. This does not unload any previously loaded carousels.
H_DsmControl | dsmctrl DSM control instance handle |
H_ObjCarousel | hOC Handle to carousel |
Definition at line 1920 of file dsm_control.c.
void DSMCC_SetFileSystemCacheLimit | ( | H_DsmControl | dsmctrl, |
U32BIT | cacheSize | ||
) |
Set limit of DSMCC dynamic memory usage for file system caching This function overrides the default size is 6 MB. If this size is less than the currently allocated memory size, then it will release file system data until limit is reached - but only releasing data not currently in used by the client.
dsmctrl | DSM control instance handle. |
cacheSize | Size in bytes (minimum of 1 MB) |
Definition at line 1995 of file dsm_control.c.
void DSMCC_SetTunedTransportInfo | ( | H_DsmControl | dsmctrl, |
U16BIT | onet_id, | ||
U16BIT | tran_id, | ||
DMXREF | dmxref | ||
) |
Inform DSMCC instance of the tuned transport details. This must be called before calling DSMCC_StartFs() or DSMCC_StartSsu()
dsmctrl | DSM control instance handle |
onet_id | Original Network Id. |
tran_id | Transport ID for the transport stream. |
DMXREF | dmxref demux reference to be used in section filter API |
Definition at line 1653 of file dsm_control.c.
void DSMCC_SiqCacheClearPmt | ( | H_DsmControl | dsmctrl, |
U16BIT | serviceId | ||
) |
Clear cached PMT for particular service.
H_DsmControl | dsmctrl DSM control instance handle. |
U16BIT | serviceId Service whose PMT needs to be cleared |
Definition at line 2008 of file dsm_control.c.
void DSMCC_SsuUnloadModule | ( | H_DsmControl | dsmctrl, |
H_DsmCarousel | hCarousel, | ||
U32BIT | moduleRef | ||
) |
Unload SSU module. To be called once the client has finished saving this modules data. This is needed to.
Unload SSU module. This is intended to be called once the client has finished saving the data for this module.
dsmctrl | DSM control instance handle. |
hCarousel | Handle to the DSMCC Update Carousel |
moduleRef | Reference to a module |
Definition at line 1970 of file dsm_control.c.
BOOLEAN DSMCC_Start | ( | H_DsmControl | dsmctrl, |
S_DvbLocator * | locator, | ||
U32BIT | boot_carousel_id, | ||
DMXREF | dmxref | ||
) |
Start DSM-CC controling instance. This will start search for a boot carousel on service specified by locator. The search depends on the value given 'boot_carousel_id' parameter. When boot carousel id is set to INVALID_CAROUSEL_ID, DSM-CC will attempt to start on a carousel which the client recognises in callback function 'parseDataBroadcastId'. Even when the PMT does not contain a recognised data broadcast id, this function will return TRUE, and the DSM-CC will keep trying to load a boot carousel. When boot carousel id is set to a specific value or UNKNOWN_CAROUSEL_ID DSMCC_Start() will return FALSE if a carousel with the required ID is not present. When boot carousel id is set to UNKNOWN_CAROUSEL_ID, DSM-CC will attempt to start on whatever carousel is signalled in PMT for that service.
The function is depreciated. It starts DSM-CC controlling instance, and will start search for a boot carousel on service specified by locator. The search depends on 'boot_carousel_id' parameter. When boot carousel id is set to INVALID_CAROUSEL_ID, DSM-CC will attempt to start on a carousel which the client recognises in callback function 'parseDataBroadcastId'. Even when the PMT does not contain a recognised data broadcast id, DSMCC_Start() will return TRUE, and the DSM-CC will keep trying to load a boot carousel. When boot carousel id is set to a specific value or UNKNOWN_CAROUSEL_ID and a carousel of the required ID is not present, either DSMCC_Start() will return FALSE or 'carouselLoad' callback will be passed a result of OC_LOAD_ABORTED_ERROR. When boot carousel id is set to UNKNOWN_CAROUSEL_ID, DSM-CC will attempt to start on whatever carousel is signalled in PMT for that service.
dsmctrl | DSM control instance handle |
locator | DVB location of service. |
boot_carousel_id | carousel id - INVALID_CAROUSEL_ID, or UNKNOWN_CAROUSEL_ID, or a specific value. |
DMXREF | dmxref demux reference to be used in section filter API |
Definition at line 1636 of file dsm_control.c.
BOOLEAN DSMCC_StartFs | ( | H_DsmControl | dsmctrl, |
U16BIT | service_id, | ||
U32BIT | carousel_id | ||
) |
Start DSM-CC controlling instance. This must follow call to DSMCC_SetTunedTransportInfo. The function will start search for an Object Carousel on the specified service. The search depends on the value given 'carousel_id' parameter. When carousel id is set to INVALID_CAROUSEL_ID, DSM-CC will attempt to start on a carousel which the client recognises in callback function 'parseDataBroadcastId'. Even when the PMT does not contain a recognised data broadcast id, this function will return TRUE, and the DSM-CC will keep searching. When the carousel id is set to a specific value or UNKNOWN_CAROUSEL_ID and a carousel of the required ID is not present, either this function will return FALSE or 'carouselLoad' callback will be passed a result of OC_LOAD_ABORTED_ERROR. When carousel id is set to UNKNOWN_CAROUSEL_ID, DSM-CC will attempt to start on whatever carousel is signalled in PMT for that service.
dsmctrl | DSM control instance handle |
service_id | Service Id. |
carousel_id | Carousel Id |
Definition at line 1688 of file dsm_control.c.
BOOLEAN DSMCC_StartSsu | ( | H_DsmControl | dsmctrl, |
U16BIT | service_id, | ||
U32BIT | oui | ||
) |
Start DSM-CC controling instance. This must follow call to DSMCC_SetTunedTransportInfo. The function will start loading Update Carousel for SSU on specified service.
dsmctrl | DSM control instance handle |
service_id | Service Id. |
oui | Manufacturer's OUI |
Definition at line 1731 of file dsm_control.c.
BOOLEAN DSMCC_StartSsuWithPid | ( | H_DsmControl | dsmctrl, |
U16BIT | pid, | ||
U32BIT | oui | ||
) |
Start DSM-CC controling instance. This must follow call to DSMCC_SetTunedTransportInfo. The function will start loading Update Carousel for SSU on a single specified PID.
dsmctrl | DSM control instance handle |
pid | PID on which to find all SSU data |
oui | Manufacturer's OUI |
Definition at line 1761 of file dsm_control.c.
void DSMCC_Stop | ( | H_DsmControl | dsmctrl, |
E_DsmRstMode | mode | ||
) |
Stop DSM-CC controling instance. Causes all carousels to unload.
H_DsmControl | dsmctrl DSM control instance handle |
E_DsmRstMode | mode Mode of operation when unloading |
Definition at line 1783 of file dsm_control.c.
void DSMCC_UnloadCarousel | ( | H_DsmControl | dsmctrl, |
H_ObjCarousel | hOC, | ||
E_DsmRstMode | mode | ||
) |
Unload specified Carousel.
H_DsmControl | dsmctrl DSM control instance handle |
H_ObjCarousel | hOC Handle to carousel |
E_DsmRstMode | mode Mode of operation when unloading |
Definition at line 1945 of file dsm_control.c.
const char* DSMCC_VersionString | ( | void | ) |
Returns version major.minor.patch as string.
Definition at line 2020 of file dsm_control.c.