DSMCC  15.3.1
source/dsiq/src/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"

Data Structures

struct  s_SiqCachePat
struct  s_SiqCachePmt

Defines

#define SIQ_DEFAULT_PMT_TOTAL   64
#define VERSION_CHANGED   0xff

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.
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.
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.
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.
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.
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.
H_SiqPmtTable SIQ_CacheRetrievePmt (S_SiqInstance *siq, U16BIT serviceId, int *gettingPmt)
void SIQ_CacheClearPmt (H_SiqInstance siq, U16BIT serviceId)
 Clear cached PMT information.
void SIQ_CacheClear (S_SiqInstance *siq)
clDsmErr_t 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.
void SIQ_ServiceInfoChangeUnsubscribe (S_SiqInstance *siq, U16BIT serviceId)
 Unsubscribe component to previously subscribed service change or alteration updates.

Detailed Description

Service Information Query: cache functionality.

Date:
29-09-2013
Author:
Adam Sturtridge

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
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
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
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
clDsmErr_t 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:
clDsmInstHandle_tinstance DMSM-CC instance handle.
U16BITservice_id Service to monitor.
Returns:
clDsmErr_t
void SIQ_ServiceInfoChangeUnsubscribe ( S_SiqInstance siq,
U16BIT  serviceId 
)

Unsubscribe component to previously subscribed service change or alteration updates.

Parameters:
clDsmInstHandle_tinstance DMSM-CC instance handle.
U16BITservice_id Service to monitor.
Returns:
n/a
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
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
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.
 All Data Structures Files Functions Typedefs