MHEG  17.9.0
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Pages
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 {
45  EE_GROUP_ID_REF_ERROR = 2,
46  EE_CONTENT_REF_ERROR = 3,
47  EE_KEYPRESS_TEXT = 4,
48 
49  EE_VIDEO_PREF_CHANGED = 6,
50  EE_ENGINE_RESUME = 7,
51 
52  #ifdef INCLUDE_ICS
53  EE_SUBTITLE_PREF_CHANGED = 8,
54  #endif
55 
56  EE_NETWORK_BOOT_INFO = 9,
57  EE_NON_DESTRUCTIVE_TUNE_OK = 10,
58 
59  EE_KEYPRESS_CANCEL = 16,
60 
61  EE_PVR_LIST_CHANGED = 20,
62 
63  EE_KEYPRESS_RED = 100,
64  EE_KEYPRESS_GREEN = 101,
65  EE_KEYPRESS_YELLOW = 102,
66  EE_KEYPRESS_BLUE = 103,
67 
68  EE_KEYPRESS_INFO = 105,
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 
94  EE_KEYPRESS_EPG = 300,
95 
96  EE_AUDIO_LANG_PREF_CHANGED = 301,
97  EE_SUBTITLE_LANG_PREF_CHANGED = 302,
98 } E_ENGINE_EVENT;
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, int data );
168 
173 void MHEG5sendAppEngineEvent( E_ENGINE_EVENT engine_event );
174 
182 void MHEG5sendSync( MHEG5Root *source, MHEG5EventType event, int data );
183 
184 
193 
194 
200 void MHEG5queueEvents(void);
201 
202 
212 void MHEG5processQueue(void);
213 
214 
224 void MHEG5enableEventProcessing(MHEG5Bool enable);
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*/
Definition: mh5action.h:199
void MHEG5sendAppEngineEvent(E_ENGINE_EVENT engine_event)
Store an Engine event in the asynchronous event queue.
Definition: mh5queue.c:1633
void MHEG5queueEvents(void)
Allow future events to be stored in the event queues. See also MHEG5stopEventsAndQueueReset.
Definition: mh5queue.c:1528
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
Definition: mh5group.h:47
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 ...
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
Manage elementary actions Manage a table of all actions and call a specific action which is defined b...
void MHEG5sendSync(MHEG5Root *source, MHEG5EventType event, int data)
Store an event in the synchronous event queue.
Definition: mh5queue.c:1651
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
void MHEG5sendEvent(MHEG5Root *source, MHEG5EventType event, int 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
Definition: mh5root.h:43
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