DSMCC  17.9.0
 All Data Structures Files Functions Typedefs
sectionFilter.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  * Copyright © 2004 Ocean Blue Software Ltd
4  * Copyright © 2001 Koninklijke Philips Electronics N.V
5  *
6  * This file is part of a DTVKit Software Component
7  * You are permitted to copy, modify or distribute this file subject to the terms
8  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
9  *
10  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
11  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
12  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
13  *
14  * If you or your organisation is not a member of DTVKit then you have access
15  * to this source code outside of the terms of the licence agreement
16  * and you are expected to delete this and any associated files immediately.
17  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
18  *******************************************************************************/
25 #ifndef _SECTIONFILTER_H_
26 #define _SECTIONFILTER_H_
27 
28 
29 /*-------------------------------- Includes --------------------------------*/
30 
31 #include "clDsmSystem.h"
32 
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 
39 /*----------------------------- Exported Macros ----------------------------*/
40 
41 /*------------------------------ Exported Types ----------------------------*/
42 
43 /* -- Internal section filter types */
44 
45 typedef enum
46 {
47  SFK_NONE = 0,
48  SFK_DSI,
49  SFK_DII,
50  SFK_DII_NEXT,
51  SFK_DDB,
52  SFK_STREAM_DESCR
53 } E_SecFiltKind;
54 
55 typedef struct s_SfTarget
56 {
57  E_SecFiltKind kind;
58  U32BIT id;
59  U16BIT serviceId;
60  U16BIT associationTag;
61  union
62  {
63  P_ObjectCarousel pOC;
64  P_RootCarousel pRC;
65  P_DataCarousel pDC;
66  P_Module pModule;
67  P_Event pEvent;
68  } u;
70 
71 typedef enum
72 {
73  SFA_INITIAL = 0,
74  SFA_PENDING,
75  SFA_COMMITTED,
76  SFA_ABORTED
77 } E_SfStatus;
78 
79 typedef struct s_DscTimerManagement
80 {
81  void *mainTimerHandle;
82  void *nextTimerHandle;
83  U32BIT mainDuration;
84  U32BIT nextDuration;
86 
87 typedef struct s_SecFilterInfo *P_SecFilterInfo;
88 
89 typedef struct s_SecFilterInfo
90 {
91  S_SecFilter filter;
92 
93  U32BIT handle;
94 
95  E_SfStatus status;
96 
97  /* Target is a carousel, module, or stream event */
98  S_SfTarget target;
99 
100  /* -- Timer management */
102 
103  P_SecFilterInfo nextBlock;
104 
105  /* -- Following fields are never required simultaneously */
106  union
107  {
108  P_SiQuery pPendingSiQueryRef; /* -- Use when SFA_PENDING */
109  void *filterHandle; /* -- Use when SFA_COMMITTED */
110  } u;
112 
113 
114 /*------------------------------ Exported Data -----------------------------*/
115 
116 
117 /*--------------------------- Exported Prototypes --------------------------*/
118 
119 E_DscError DSC_SsectionFilterHeapCreate( P_DsmCoreInst idp,
120  /*O*/ void **pSectionFilterHeap, U32BIT *pHeapSize );
121 
122 void DSC_SsectionFilterHeapReset( P_DsmCoreInst idp );
123 
124 E_DscError DSC_SectionFilterStart( P_DsmCoreInst idp, P_SfTarget target,
125  E_SFPriority sfPriority, P_SecFilterInfo *pSectionFilter );
126 
127 E_DscError DSC_SsectionFilterUpdatePriority( P_DsmCoreInst idp,
128  P_SecFilterInfo pSF, E_SFPriority newSfPriority, BOOLEAN latchHighest );
129 
130 E_DscError DSC_SectionFilterCommit( P_DsmCoreInst idp, P_SecFilterInfo pSectionFilter );
131 
132 void DSC_SectionFilterStop( P_DsmCoreInst idp, P_SecFilterInfo *pSectionFilter );
133 
134 void DSC_SectionFilterAbortDependants( P_DsmCoreInst idp, P_SecFilterInfo pSectionFilter );
135 
136 P_SecFilterInfo DSC_SectionFilterRetrieve( P_DsmCoreInst idp, U32BIT handle );
137 
138 /*----------------------------------------------------------------------------*/
139 
140 #ifdef __cplusplus
141 }
142 #endif
143 #endif /* _SECTIONFILTER_H_ */
General include file for clDsm library internal definitions.