MHEG5  18.9.0
MHEG5 Documentation
mh5queue.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 © 2000 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  *******************************************************************************/
28 #ifndef _MH5QUEUE_H
29 #define _MH5QUEUE_H
30 
31 /*---includes for this file--------------------------------------------------*/
32 
33 #include "mh5action.h"
34 #include "mh5link.h"
35 #include "mh5group.h"
36 
37 /*---Constant and macro definitions for public use---------------------------*/
38 
39 /*---Enumerations for public use---------------------------------------------*/
40 
41 /*---Global type defs for public use-----------------------------------------*/
42 
43 typedef enum
44 {
48 
51 
52  #ifdef INCLUDE_ICS
53  EE_SUBTITLE_PREF_CHANGED = 8,
54  #endif
55 
58 
60 
62 
67 
69 
70  #ifdef INCLUDE_IC
71  EE_IC_STATUS_CHANGED = 200,
72  EE_IC_LOCAL_ERROR = 201,
73  EE_IC_NETWORK_ERROR = 202,
74  EE_IC_REMOTE_ERROR = 203,
75 
76  #ifdef INCLUDE_ICS
77  EE_IC_STREAM_REF_ERROR = 204,
78  EE_IC_STREAM_UNDERFLOW = 205,
79 
80  #ifdef INCLUDE_FREESAT
81  EE_IP_STREAM_ACCESS_ERROR = 206,
82  #endif
83 
84  #if defined(INCLUDE_FREESAT) || defined(INCLUDE_IPLAYER)
85  EE_AUDIO_DESC_PREF_CHANGED = 207,
86  #endif
87 
88  EE_IC_STREAM_UNDERFLOW_RESUME = 208,
89  EE_IC_KEY_FILE_ERROR = 210,
90 
91  #endif /* INCLUDE_ICS */
92  #endif /* INCLUDE_IC */
93 
95 
99 
100 /*---Global variable declarations for public use-----------------------------*/
101 
102 /*---Global Function prototypes for public use-------------------------------*/
103 
104 
105 #ifdef MH5PRINTOUT
106 
111 void MHEG5queuePrint(char *out);
112 #endif
113 
114 
120 void MHEG5queueResetScene( MHEG5Root *grp );
121 
128 
135 
143 void MHEG5actionListExecute( MHEG5Group *source, MHEG5ActionList actions );
144 
145 
152 
158 void MHEG5AppendActionList( MHEG5ActionList actions );
159 
167 void MHEG5sendEvent( MHEG5Root *source, MHEG5EventType event, MHEG5Int data );
168 
173 void MHEG5sendAppEngineEvent( E_ENGINE_EVENT engine_event );
174 
182 void MHEG5sendSync( MHEG5Root *source, MHEG5EventType event, MHEG5Int data );
183 
184 
193 
194 
200 void MHEG5queueEvents(void);
201 
202 
212 void MHEG5processQueue(void);
213 
214 
225 
226 
234 void MHEG5eventProcessingReset(void);
235 
236 
241 void MHEG5requestDisplayUpdate(void);
242 
243 
244 int MHEG5InitQueues(void);
245 void MHEG5ExitQueues(void);
246 
247 #endif /*_MH5QUEUE_H*/
void MHEG5sendAppEngineEvent(E_ENGINE_EVENT engine_event)
Store an Engine event in the asynchronous event queue.
Definition: mh5queue.c:1633
int MHEG5InitQueues(void)
Definition: mh5queue.c:858
void MHEG5queueEvents(void)
Allow future events to be stored in the event queues. See also MHEG5stopEventsAndQueueReset.
Definition: mh5queue.c:1528
const char * data
Definition: mh5gate.c:56
void MHEG5requestDisplayUpdate(void)
Request display update at the end of synchronous event processing.
Definition: mh5queue.c:1855
void MHEG5actionListExecute(MHEG5Group *source, MHEG5ActionList actions)
Execute the supplied list of actions immediately. The actions will have been executed by the time the...
Definition: mh5queue.c:1400
void MHEG5PrependActionList(MHEG5ActionList actions)
Execute the supplied list of actions before others.
Definition: mh5queue.c:1502
void MHEG5eventProcessingReset(void)
Causes the MHEG5enableEventProcessing counter to be reset to 0, and event processing to be enabled...
Definition: mh5queue.c:1795
void MHEG5AppendActionList(MHEG5ActionList actions)
The supplied list of actions should execute after any already on queue.
Definition: mh5queue.c:1032
Implementation of the Group class Description Defines the structure and behaviour of objects used as ...
MHEG5EventType
Definition: mh5base.h:114
void MHEG5stopEventsAndResetQueue(void)
Discard any pending events and actions and prevent future events from being queued. And reset queues. See also MHEG5queueEvents.
Definition: mh5queue.c:914
long MHEG5Int
Definition: mh5base.h:73
void MHEG5ExitQueues(void)
Definition: mh5queue.c:1000
Manage elementary actions Manage a table of all actions and call a specific action which is defined b...
void MHEG5processQueue(void)
Process all pending events and actions. After processing all events and actions, Normally there will ...
Definition: mh5queue.c:1333
void MHEG5queueResetScene(MHEG5Root *grp)
Reset both event queues and the action queue, discarding any pending events and actions for this scen...
Definition: mh5queue.c:957
short MHEG5Bool
Definition: mh5base.h:71
void MHEG5sendEvent(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the asynchronous event queue.
Definition: mh5queue.c:1540
void MHEG5queueUnresolveTargets(MHEG5ActionList actions)
Clear targets for the action list.
Definition: mh5queue.c:1204
void MHEG5queueResolveTargets(MHEG5ActionList actions)
Finds targets for the action list.
Definition: mh5queue.c:1182
void MHEG5enableEventProcessing(MHEG5Bool enable)
Enable or disable engine event processing. This function is used to implement the Call action for res...
Definition: mh5queue.c:1751
void MHEG5sendSync(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the synchronous event queue.
Definition: mh5queue.c:1651
E_ENGINE_EVENT
Definition: mh5queue.h:43