DSMCC  17.9.0
 All Data Structures Files Functions Typedefs
dsmObject.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 © 2002 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 _DSMOBJECT_H_
26 #define _DSMOBJECT_H_
27 
28 
29 /*---includes for this file--------------------------------------------------*/
30 
31 #include "clDsmSystem.h"
32 #include "linkList.h"
33 #include "object.h"
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 
40 /*---Constant and macro definitions for public use---------------------------*/
41 
42 
43 #define DSM_OBJECT_MAGIC 0xF1D3B597
44 
45 #define DSM_OBJECT_VALIDATE( pDsmObject ) \
46  (pDsmObject->magic == DSM_OBJECT_MAGIC && pDsmObject->myDsmInst)
47 
48 #define DSM_OBJECT_CORRECT( pDsmObject, idp ) \
49  (pDsmObject->magic == DSM_OBJECT_MAGIC && pDsmObject->myDsmInst == idp)
50 
51 #define DEFFERED_SERVICE_RECEIVED 0xD0FE
52 
53 /*---Global type defs for public use-------------------------------------------*/
54 
55 typedef struct s_DsmObject *P_DsmObject;
56 
57 
58 typedef struct s_DsmObject
59 {
60  S_LLObject llData[NUM_LISTS_OBJECT];
61 
62  U32BIT magic;
63  P_DsmCoreInst myDsmInst;
64 
65  E_ObjLoadStatus status;
66 
67  E_CacheRules cachingRules;
68 
69  E_DsmObjectKind kind;
70 
71  P_ObjectCarousel pObjCarousel;
72  P_Module pModule;
73  P_ModuleData hModuleData;
74 
75  ObjectDataInfo_t objectInfo;
76  U32BIT objectDataOffset;
77  MemSeqRef objectDataSeq;
78 
79  /* Use of below depends on 'status' */
80  union
81  {
82  void* pLoadRequest; /* non-NULL when (status == OBJ_LOAD_IN_PROGRESS) */
83  void* pPendingSiQueryRef; /* non-NULL when (status == OBJ_LOAD_COMPLETED) and getting deferred service */
84  } r;
85 
86  /* Use of below depends on 'kind', and only valid when (status == OBJ_LOAD_COMPLETED) */
87  union
88  {
89  /* deferred service query - temporary held data, while (pPendingSiQueryRef != NULL) */
90  struct
91  {
92  void *userData1;
93  void *userData2;
94  } ds;
95 
96  /* stream object, deferred service */
97  struct
98  {
99  S_DvbLocator multiplex;
100  U16BIT retrieved;
101  } so;
102  } data;
103 } S_DsmObject;
104 
105 /*---Global variable declarations for public use-----------------------------*/
106 
107 /*---Global Function prototypes for public use---------------------------------*/
108 
109 E_DscError objectCreate( P_DsmCoreInst idp, P_DsmObject *ppObject );
110 
111 void objectDestroy( P_DsmCoreInst idp, P_DsmObject pObject );
112 
113 
114 /*----------------------------------------------------------------------------*/
115 #ifdef __cplusplus
116 }
117 #endif
118 #endif /* _DSMOBJECT_H_ */
General include file for clDsm library internal definitions.
Header to the object module - functions/methods accessing data of object messages inside modules...