DSMCC  17.9.0
 All Data Structures Files Functions Typedefs
pmtUpdate.c
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  *
5  * This file is part of a DTVKit Software Component
6  * You are permitted to copy, modify or distribute this file subject to the terms
7  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
8  *
9  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
10  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
11  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
12  *
13  * If you or your organisation is not a member of DTVKit then you have access
14  * to this source code outside of the terms of the licence agreement
15  * and you are expected to delete this and any associated files immediately.
16  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
17  *******************************************************************************/
25 /*---includes for this file--------------------------------------------------*/
26 
27 #include "clDsmUtils.h"
28 #include "linkList.h"
29 #include "module.h"
30 #include "dataCarousel.h"
31 #include "rootCarousel.h"
32 
33 
34 #include "pmtUpdate.h"
35 #include "streamEvent.h"
36 
37 /*******************************************************************************
38  * **** STUB - NOT YET IMPLEMENTED (REQUIRED FOR MHEG5) ****
39  *
40  * Notify that the SI for the indicated service has changed
41  *
42  *******************************************************************************/
43 E_DscError pmtUpdtAllSectionFiltersReset( H_DsmCoreInst idp, U16BIT service_id )
44 {
45  E_DscError err = CLDSM_OK;
46  P_RootCarousel pRC;
47  ListId_t listId;
48  ListId_t moduleListId;
49  P_Module pModuleFromList = NULL;
50  P_DataCarousel pDC;
51  ListId_t dcListId;
52 
53  dsmAssert((idp != NULL));
54 
55  dsmDP2(("pmtUpdtAllSectionFiltersReset(%d)\n",service_id));
56 
57  /* Get listId and first OC in list from Control block */
58  listId = LListId( idp->llcRootCarousels );
59  pRC = LLHead( idp->llcRootCarousels );
60 
61  while (pRC)
62  {
63  if (pRC->serviceId == service_id)
64  {
65  /* check DsiSf */
66  /*-------------*/
67  dsmDP2(("check DsiSf\n"));
68  err = DSC_RootCrslAcquireRestart(idp, pRC);
69 
70  /* check SRG data carousel filter */
71  pDC = DSC_RootCrslFirstDataCarousel( pRC );
72  if (pDC != NULL)
73  {
74  dsmDP2(("check DiiSf\n"));
75  DSC_DataCrslAcquireRestart(idp, pDC);
76  }
77 
78  /* get module list */
79  if (pRC->llcDataCarousels != NULL)
80  {
81  dcListId = LListId( pRC->llcDataCarousels );
82  pDC = LLHead( pRC->llcDataCarousels );
83 
84  while (pDC)
85  {
86  if (pDC->llcModuleAcquires != NULL)
87  {
88  moduleListId = LListId( pDC->llcModuleAcquires );
89  pModuleFromList = LLHead( pDC->llcModuleAcquires );
90 
91  /* Go through each module in list until the one with a matching moduleId is found */
92  while (pModuleFromList)
93  {
94  /* check DDB filter */
95  /*------------------*/
96  dsmDP2(("check module Id %d\n", pModuleFromList->moduleInfo.moduleId));
97  err = DSC_ModuleAcquireRestart(idp, pModuleFromList);
98  pModuleFromList = LLNext( pModuleFromList, moduleListId );
99  }
100  }
101  pDC = LLNext( pDC, dcListId );
102  }
103  }
104 
105  /* get DII list */
106  if (pRC->llcDiiAcquires != NULL)
107  {
108  dcListId = LListId( pRC->llcDiiAcquires );
109  pDC = LLHead( pRC->llcDiiAcquires );
110 
111  while (pDC)
112  {
113  DSC_DataCrslAcquireRestart(idp, pDC);
114  pDC = LLNext( pDC, dcListId );
115  }
116  }
117  }
118  pRC = LLNext( pRC, listId );
119  }
120 
121  DSC_StrmEventFilterReset( idp );
122 
123  DEBUG_CHK( err == CLDSM_OK, dsmDP1(("ERROR: pmtUpdtAllSectionFiltersReset: %u\n", err)));
124  return(err);
125 }
126 
DSM-CC functions related to PMT update (header)
Header to dsmStreamEvent module - functions for managing DSM streamEvent.
E_DscError DSC_ModuleAcquireRestart(P_DsmCoreInst idp, P_Module pModule)
Restart aquisition of module.
Definition: module.c:252
Header to the 'module' module - Functions/methods for creating/destroying and managing attributes of ...
eader to the clDsmUtils module.