DSMCC  17.9.0
 All Data Structures Files Functions Typedefs
Macros | Typedefs | Functions
siq_cache.c File Reference

Service Information Query: cache functionality. More...

#include <string.h>
#include "siq_debug.h"
#include "siq_cache.h"
#include "siq_main.h"
#include "cldsmcc.h"

Go to the source code of this file.

Macros

#define SIQ_DEFAULT_PMT_TOTAL   64
 
#define VERSION_CHANGED   0xff
 
#define PMT_TID   0x02
 

Typedefs

typedef struct s_SiqCachePat S_SiqCachePat
 
typedef struct s_SiqCachePmt S_SiqCachePmt
 

Functions

BOOLEAN SIQ_CacheInit (S_SiqInstance *siq)
 
void SIQ_CacheExit (S_SiqInstance *siq)
 
void SIQ_UpdatePat (H_SiqInstance siq, U8BIT *dptr)
 Provide SIQ with latest PAT data. Calling this function is optional. However, if not used, then the platform must use SIQ_ServiceRemoved and SIQ_TransportChanged. More...
 
void SIQ_TransportChanged (H_SiqInstance siq, U16BIT origNetworkId, U16BIT transportId)
 Inform SIQ when a demux is tuning to another transport stream. Not required if PAT is supplied to SIQ. More...
 
void SIQ_ServiceRemoved (H_SiqInstance siq, U16BIT serviceId)
 Inform SIQ when a service has been removed from PAT. Not required if PAT is supplied to SIQ. More...
 
E_SIQ_STATUS SIQ_RequirePmt (H_SiqInstance siq, U8BIT *pmt, U16BIT *pSid, U8BIT *pVer)
 Ask SIQ whether PMT section data is required. It assumes CRC has been checked and is passing valid PMT sections So the first byte of data must be PMT table id (i.e. 0x02). If SIQ does not receive PAT then this function adds SIQ knowledge of the service. More...
 
H_SiqPmtTable SIQ_ParsePmt (H_SiqInstance siq, U8BIT *pmt)
 Provide PMT section data to SIQ. It assumes CRC has been checked and is passing valid PMT sections So the first byte of data must be PMT table id (i.e. 0x02). If SIQ does not receive PAT then this function adds SIQ knowledge of the service. More...
 
void SIQ_ProcessPmt (H_SiqInstance siq, H_SiqPmtTable hNewTable, U16BIT serviceId, U8BIT version)
 Provide PMT section data to SIQ. It assumes CRC has been checked and is passing valid PMT sections So the first byte of data must be PMT table id (i.e. 0x02). If SIQ does not receive PAT then this function adds SIQ knowledge of the service. More...
 
H_SiqPmtTable SIQ_CacheRetrievePmt (S_SiqInstance *siq, U16BIT serviceId, U32BIT *gettingPmt)
 
void SIQ_CacheClearPmt (H_SiqInstance siq, U16BIT serviceId)
 Clear cached PMT information. More...
 
void SIQ_CacheClear (S_SiqInstance *siq)
 
E_DscError SIQ_ServiceInfoChangeSubscribe (S_SiqInstance *siq, U16BIT serviceId)
 Subscribe a component to receive notification of any changes or alterations to the service information of a specified service. More...
 
void SIQ_ServiceInfoChangeUnsubscribe (S_SiqInstance *siq, U16BIT serviceId)
 Unsubscribe component to previously subscribed service change or alteration updates. More...
 

Detailed Description

Service Information Query: cache functionality.

Date
29-09-2013
Author
Adam Sturtridge

Definition in file siq_cache.c.

Function Documentation

void SIQ_CacheClearPmt ( H_SiqInstance  siq,
U16BIT  serviceId 
)

Clear cached PMT information.

Parameters
H_SiqInstancesiq SIQ instance handle.
U16BITserviceId Service whose PMT needs to be cleared
Returns
void

Definition at line 595 of file siq_cache.c.

H_SiqPmtTable SIQ_ParsePmt ( H_SiqInstance  siq,
U8BIT *  pmt 
)

Provide PMT section data to SIQ. It assumes CRC has been checked and is passing valid PMT sections So the first byte of data must be PMT table id (i.e. 0x02). If SIQ does not receive PAT then this function adds SIQ knowledge of the service.

Parameters
H_SiqInstancesiqInstance SIQ instance handle.
U8BIT*pmt raw PMT section data
Returns
void

Definition at line 494 of file siq_cache.c.

void SIQ_ProcessPmt ( H_SiqInstance  siq,
H_SiqPmtTable  hNewTable,
U16BIT  serviceId,
U8BIT  version 
)

Provide PMT section data to SIQ. It assumes CRC has been checked and is passing valid PMT sections So the first byte of data must be PMT table id (i.e. 0x02). If SIQ does not receive PAT then this function adds SIQ knowledge of the service.

Provide PMT section data to SIQ. It assumes CRC has been checked and is passing valid PMT sections So the first byte of data must be PMT table id (i.e. 0x02). If SIQ does not receive PAT then this function adds SIQ knowledge of the service. This may initiate calls to F_ParseDataBcastId(), and may be followed by DSM-CC callback functions for Load Carousel or Load Object, where states can be any (including 'aborted').

Parameters
H_SiqInstancesiqInstance SIQ instance handle.
U8BIT*pmt raw PMT section data
Returns
void

Definition at line 509 of file siq_cache.c.

E_SIQ_STATUS SIQ_RequirePmt ( H_SiqInstance  siq,
U8BIT *  pmt,
U16BIT *  pSid,
U8BIT *  pVer 
)

Ask SIQ whether PMT section data is required. It assumes CRC has been checked and is passing valid PMT sections So the first byte of data must be PMT table id (i.e. 0x02). If SIQ does not receive PAT then this function adds SIQ knowledge of the service.

Parameters
H_SiqInstancesiq SIQ instance handle.
U8BIT*pmt raw PMT section data header
Returns
E_SIQ_STATUS

Definition at line 433 of file siq_cache.c.

E_DscError SIQ_ServiceInfoChangeSubscribe ( S_SiqInstance siq,
U16BIT  serviceId 
)

Subscribe a component to receive notification of any changes or alterations to the service information of a specified service.

Parameters
H_DsmCoreInstinstance DMSM-CC instance handle.
U16BITservice_id Service to monitor.
Returns
E_DscError

Definition at line 649 of file siq_cache.c.

void SIQ_ServiceInfoChangeUnsubscribe ( S_SiqInstance siq,
U16BIT  serviceId 
)

Unsubscribe component to previously subscribed service change or alteration updates.

Parameters
H_DsmCoreInstinstance DMSM-CC instance handle.
U16BITservice_id Service to monitor.
Returns
n/a

Definition at line 696 of file siq_cache.c.

void SIQ_ServiceRemoved ( H_SiqInstance  siq,
U16BIT  serviceId 
)

Inform SIQ when a service has been removed from PAT. Not required if PAT is supplied to SIQ.

Inform SIQ when a service has been removed from PAT. Not required if PAT is supplied to SIQ. This may initiate calls to DSM-CC callback functions for Load Carousel or Load Object, where states are 'aborted'.

Parameters
H_SiqInstancesiqInstance SIQ instance handle.
U16BITserviceId Service Id of removed service
Returns
void

Definition at line 409 of file siq_cache.c.

void SIQ_TransportChanged ( H_SiqInstance  siq,
U16BIT  origNetworkId,
U16BIT  transportId 
)

Inform SIQ when a demux is tuning to another transport stream. Not required if PAT is supplied to SIQ.

Inform SIQ when tuning to another transport stream. Not required if PAT is supplied to SIQ.

Parameters
H_SiqInstancesiqInstance SIQ instance handle.
U16BITtransportId Id of new transport stream
Returns
void

Definition at line 391 of file siq_cache.c.

void SIQ_UpdatePat ( H_SiqInstance  siq,
U8BIT *  dptr 
)

Provide SIQ with latest PAT data. Calling this function is optional. However, if not used, then the platform must use SIQ_ServiceRemoved and SIQ_TransportChanged.

Parameters
H_SiqInstancesiq SIQ instance handle.
U8BIT*dptr PAT section data
Returns
none.

Definition at line 301 of file siq_cache.c.