38 #define SECTION_TIMER_DSI_TIMEOUT 5000
51 #ifdef DSI_TIMEOUT_SUPPORT
72 E_DscError err = CLDSM_OK;
74 dsmDP3((
"SectionTimerArm(pSectionFilter = 0x%p)\n", pSectionFilter));
75 dsmAssert((idp != NULL));
76 dsmAssert((pSectionFilter != NULL));
78 pSectionFilter->tms.mainTimerHandle = NULL;
79 pSectionFilter->tms.nextTimerHandle = NULL;
80 pSectionFilter->tms.nextDuration = 0;
82 switch (pSectionFilter->target.kind)
85 #ifdef DSI_TIMEOUT_SUPPORT
86 sectionTimerDSIArm(idp, pSectionFilter);
90 sectionTimerDIIArm(idp, pSectionFilter);
93 sectionTimerDDBArm(idp, pSectionFilter);
96 case SFK_STREAM_DESCR:
100 dsmDP1((
"ERROR: Illegal section filter kind = %u\n", pSectionFilter->target.kind));
102 err = CLDSM_ERR_INTERNAL;
106 DEBUG_CHK( err == CLDSM_OK,
107 dsmDP1((
"ERROR: sectionTimerUpdate %u\n", err)));
108 dsmDP3((
"exit sectionTimerUpdate -> rtn: %u\n", err));
123 BOOLEAN completed, BOOLEAN refresh)
125 E_DscError err = CLDSM_OK;
128 dsmDP3((
"sectionTimerUpdate(pSectionFilter = 0x%p)\n", pSectionFilter));
129 dsmAssert((idp != NULL));
130 dsmAssert((pSectionFilter != NULL));
132 if (idp->setup.startTimerFunc != NULL &&
133 idp->setup.stopTimerFunc != NULL)
138 if (pSectionFilter->tms.nextTimerHandle != NULL)
140 idp->setup.stopTimerFunc( idp->setup.dsmControl, pSectionFilter->tms.nextTimerHandle );
143 if (pSectionFilter->tms.mainTimerHandle != NULL)
146 idp->setup.stopTimerFunc( idp->setup.dsmControl, pSectionFilter->tms.mainTimerHandle );
150 pSectionFilter->tms.mainTimerHandle = NULL;
151 pSectionFilter->tms.nextTimerHandle = NULL;
152 pSectionFilter->tms.nextDuration = 0;
156 void **timerHandle = &pSectionFilter->tms.nextTimerHandle;
157 U32BIT duration = pSectionFilter->tms.nextDuration;
158 if (refresh && pSectionFilter->target.kind == SFK_DDB)
160 timerHandle = &pSectionFilter->tms.mainTimerHandle;
161 duration = pSectionFilter->tms.mainDuration;
165 if (*timerHandle != NULL)
167 idp->setup.stopTimerFunc( idp->setup.dsmControl, *timerHandle );
170 if (duration != 0xFFFFFFFF && duration > 0)
173 cbErr = idp->setup.startTimerFunc( idp->setup.dsmControl, duration, pSectionFilter, timerHandle );
176 dsmDP1((
"ERROR: sectionTimerUpdate : startTimerFunc failure"));
178 err = CLDSM_ERR_INTERNAL;
184 DEBUG_CHK( err == CLDSM_OK,
185 dsmDP1((
"ERROR: sectionTimerUpdate %u\n", err)));
186 dsmDP3((
"exit sectionTimerUpdate -> rtn: %u\n", err));
196 E_DscError err = CLDSM_OK;
198 dsmDP3((
"sectionTimerRemove(pSectionFilter = 0x%p)\n", pSectionFilter));
199 dsmAssert((idp != NULL));
200 dsmAssert((pSectionFilter != NULL));
202 if (idp->setup.stopTimerFunc != NULL)
204 if (NULL != pSectionFilter->tms.mainTimerHandle)
206 DBGLOG(DD_TIMER,
"(pSF = 0x%p) thdl=%x", pSectionFilter, pSectionFilter->tms.mainTimerHandle);
207 idp->setup.stopTimerFunc( idp->setup.dsmControl, pSectionFilter->tms.mainTimerHandle );
208 pSectionFilter->tms.mainTimerHandle = NULL;
211 if (NULL != pSectionFilter->tms.nextTimerHandle)
213 idp->setup.stopTimerFunc( idp->setup.dsmControl, pSectionFilter->tms.nextTimerHandle );
214 pSectionFilter->tms.nextTimerHandle = NULL;
218 DEBUG_CHK( err == CLDSM_OK,
219 dsmDP1((
"ERROR: sectionTimerRemove %u\n", err)));
220 dsmDP3((
"exit sectionTimerRemove -> rtn: %u\n", err));
226 #ifdef DSI_TIMEOUT_SUPPORT
233 E_DscError err = CLDSM_OK;
236 DBGLOG(DD_TIMER,
"(pSectionFilter = 0x%p)", pSectionFilter)
237 dsmAssert((idp != NULL));
238 dsmAssert((pSectionFilter != NULL));
240 if (idp->setup.startTimerFunc != NULL)
242 cbErr = idp->setup.startTimerFunc( idp->setup.dsmControl, SECTION_TIMER_DSI_TIMEOUT,
243 pSectionFilter, &(pSectionFilter->tms.mainTimerHandle));
246 dsmDP1((
"ERROR: sectionTimerDSIArm : startTimerFunc failure\n"));
248 err = CLDSM_ERR_INTERNAL;
250 pSectionFilter->tms.nextTimerHandle = 0;
251 pSectionFilter->tms.nextDuration = 0;
254 DEBUG_CHK( err == CLDSM_OK,
255 dsmDP1((
"ERROR: sectionTimerDSIArm %u\n", err)));
256 dsmDP3((
"exit sectionTimerDSIArm -> rtn: %u\n", err));
268 E_DscError err = CLDSM_OK;
273 DBGLOG(DD_TIMER,
"(pSectionFilter = 0x%p)", pSectionFilter)
274 dsmAssert((idp != NULL));
275 dsmAssert((pSectionFilter != NULL));
277 if (idp->setup.startTimerFunc != NULL)
280 pDC = pSectionFilter->target.u.pDC;
281 timeout = pDC->tap.timeout;
283 dsmDP3((
"sectionTimerDIIArm(-) timeout = %u microsecs\n", timeout));
284 cbErr = idp->setup.startTimerFunc( idp->setup.dsmControl, timeout / 1000, pSectionFilter, &(pSectionFilter->tms.mainTimerHandle));
287 dsmDP1((
"ERROR: sectionTimerDIIArm : startTimerFunc failure\n"));
288 err = CLDSM_ERR_INTERNAL;
290 pSectionFilter->tms.nextTimerHandle = 0;
291 pSectionFilter->tms.nextDuration = 0;
302 E_DscError err = CLDSM_OK;
305 U32BIT moduleTimeout, blockTimeout;
307 dsmDP3((
"sectionTimerDDBArm(pSectionFilter= 0x%p)\n", pSectionFilter));
308 dsmAssert((idp != NULL));
309 dsmAssert((pSectionFilter != NULL));
311 if ((idp->setup.startTimerFunc != NULL) && (NULL != pSectionFilter->target.u.pModule))
315 pModule = pSectionFilter->target.u.pModule;
316 if ( pModule->moduleInfo.crslMagic == OC_MAGIC )
318 moduleTimeout = pModule->moduleInfo.u.mhgp.moduleTimeout;
319 if (moduleTimeout != 0)
321 moduleTimeout /= 1000;
325 blockTimeout = pModule->moduleInfo.u.mhgp.blockTimeout / 1000;
327 dsmDP3((
"sectionTimerDDBArm(-) moduleTimeout = %u blockTimeout = %u microsecs\n", moduleTimeout, blockTimeout));
328 cbErr = idp->setup.startTimerFunc( idp->setup.dsmControl, moduleTimeout, pSectionFilter, &(pSectionFilter->tms.mainTimerHandle));
331 dsmDP1((
"ERROR: sectionTimerDDBArm : startTimerFunc failure\n"));
332 err = CLDSM_ERR_INTERNAL;
334 pSectionFilter->tms.nextTimerHandle = 0;
335 pSectionFilter->tms.mainDuration = moduleTimeout;
336 pSectionFilter->tms.nextDuration = blockTimeout;
Header to the dataCarousel module - functions/methods for creating/destroying and managing attributes...
General include file for clDsm library internal definitions.
Header to the loadMgr module.
Header to the sectionTimer module.
Header to the sectionFilter module.
Header to the objectCarousel module.
Header to siQuery module - functions for managing SI queries.
Header to the 'module' module - Functions/methods for creating/destroying and managing attributes of ...