MythTV  master
Actions.cpp
Go to the documentation of this file.
1 /* Actions.cpp
2 
3  Copyright (C) David C. J. Matthews 2004, 2008 dm at prolingua.co.uk
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public License
7  as published by the Free Software Foundation; either version 2
8  of the License, or (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
18  Or, point your browser to http://www.gnu.org/copyleft/gpl.html
19 
20 */
21 
22 #include <cstdio>
23 
24 #include "BaseActions.h"
25 #include "Actions.h"
26 #include "BaseClasses.h"
27 #include "ParseNode.h"
28 #include "ASN1Codes.h"
29 #include "Ingredients.h"
30 #include "Engine.h"
31 #include "Variables.h"
32 #include "Programs.h"
33 #include "Bitmap.h"
34 #include "Visible.h"
35 #include "Text.h"
36 #include "DynamicLineArt.h"
37 #include "Link.h"
38 #include "TokenGroup.h"
39 #include "Stream.h"
40 #include "Logging.h"
41 
42 
43 // Temporary place-holder for actions we haven't done yet.
45 {
46  public:
47  explicit MHUnimplementedAction(int nTag): MHElemAction(""), m_nTag(nTag)
48  {
49  MHLOG(MHLogWarning, QString("WARN Unimplemented action %1").arg(m_nTag) );
50  }
51  void Initialise(MHParseNode * /*p*/, MHEngine * /*engine*/) override {} // MHElemAction
52  void PrintMe(FILE *fd, int /*nTabs*/) const override // MHElemAction
53  {
54  fprintf(fd, "****Missing action %d\n", m_nTag);
55  }
56  void Perform(MHEngine * /*engine*/) override // MHElemAction
57  {
58  MHERROR(QString("Unimplemented action %1").arg(m_nTag));
59  }
60  protected:
61  int m_nTag;
62 };
63 
64 // ActionSequence.
65 
66 // Process the action set and create the action values.
68 {
69  // Depending on the caller we may have a tagged argument list or a sequence.
70  for (int i = 0; i < p->GetArgCount(); i++)
71  {
72  MHParseNode *pElemAction = p->GetArgN(i);
73  MHElemAction *pAction = nullptr;
74 
75  switch (pElemAction->GetTagNo())
76  {
77  case C_ACTIVATE:
78  pAction = new MHActivate(":Activate", true);
79  break;
80  case C_ADD:
81  pAction = new MHAdd;
82  break;
83  case C_ADD_ITEM:
84  pAction = new MHAddItem;
85  break;
86  case C_APPEND:
87  pAction = new MHAppend;
88  break;
89  case C_BRING_TO_FRONT:
90  pAction = new MHBringToFront;
91  break;
92  case C_CALL:
93  pAction = new MHCall(":Call", false);
94  break;
95  case C_CALL_ACTION_SLOT:
96  pAction = new MHCallActionSlot;
97  break;
98  case C_CLEAR:
99  pAction = new MHClear;
100  break;
101  case C_CLONE:
102  pAction = new MHClone;
103  break;
104  case C_CLOSE_CONNECTION:
105  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
106  break; // ??
107  case C_DEACTIVATE:
108  pAction = new MHActivate(":Deactivate", false);
109  break;
110  case C_DEL_ITEM:
111  pAction = new MHDelItem;
112  break;
113  case C_DESELECT:
114  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
115  break; // Button
116  case C_DESELECT_ITEM:
117  pAction = new MHDeselectItem;
118  break;
119  case C_DIVIDE:
120  pAction = new MHDivide;
121  break;
122  case C_DRAW_ARC:
123  pAction = new MHDrawArcSector(":DrawArc", false);
124  break;
125  case C_DRAW_LINE:
126  pAction = new MHDrawLine;
127  break;
128  case C_DRAW_OVAL:
129  pAction = new MHDrawOval;
130  break;
131  case C_DRAW_POLYGON:
132  pAction = new MHDrawPoly(":DrawPolygon", true);
133  break;
134  case C_DRAW_POLYLINE:
135  pAction = new MHDrawPoly(":DrawPolyline", false);
136  break;
137  case C_DRAW_RECTANGLE:
138  pAction = new MHDrawRectangle;
139  break;
140  case C_DRAW_SECTOR:
141  pAction = new MHDrawArcSector(":DrawSector", true);
142  break;
143  case C_FORK:
144  pAction = new MHCall(":Fork", true);
145  break;
147  pAction = new MHGetAvailabilityStatus;
148  break;
149  case C_GET_BOX_SIZE:
150  pAction = new MHGetBoxSize;
151  break;
152  case C_GET_CELL_ITEM:
153  pAction = new MHGetCellItem;
154  break;
156  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
157  break; // ?
159  pAction = new MHGetEngineSupport;
160  break;
161  case C_GET_ENTRY_POINT:
162  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
163  break; // EntryField
164  case C_GET_FILL_COLOUR:
165  pAction = new MHGetFillColour;
166  break;
167  case C_GET_FIRST_ITEM:
168  pAction = new MHGetFirstItem;
169  break;
171  pAction = new MHGetHighlightStatus;
172  break;
174  pAction = new MHGetInteractionStatus;
175  break;
176  case C_GET_ITEM_STATUS:
177  pAction = new MHGetItemStatus;
178  break;
179  case C_GET_LABEL: // PushButton
180  case C_GET_LAST_ANCHOR_FIRED: // HyperText
181  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
182  break;
183  case C_GET_LINE_COLOUR:
184  pAction = new MHGetLineColour;
185  break;
186  case C_GET_LINE_STYLE:
187  pAction = new MHGetLineStyle;
188  break;
189  case C_GET_LINE_WIDTH:
190  pAction = new MHGetLineWidth;
191  break;
192  case C_GET_LIST_ITEM:
193  pAction = new MHGetListItem;
194  break;
195  case C_GET_LIST_SIZE:
196  pAction = new MHGetListSize;
197  break;
199  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
200  break;// ?
201  case C_GET_PORTION:
202  pAction = new MHGetPortion;
203  break;
204  case C_GET_POSITION:
205  pAction = new MHGetPosition;
206  break;
208  pAction = new MHGetRunningStatus;
209  break;
211  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
212  break;// ?
213  case C_GET_SLIDER_VALUE:
214  pAction = new MHGetSliderValue;
215  break;
216  case C_GET_TEXT_CONTENT:
217  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
218  break;// Text
219  case C_GET_TEXT_DATA:
220  pAction = new MHGetTextData;
221  break;
223  pAction = new MHGetTokenPosition;
224  break;
225  case C_GET_VOLUME:
226  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
227  break; // ?
228  case C_LAUNCH:
229  pAction = new MHLaunch;
230  break;
231  case C_LOCK_SCREEN:
232  pAction = new MHLockScreen;
233  break;
234  case C_MODULO:
235  pAction = new MHModulo;
236  break;
237  case C_MOVE:
238  pAction = new MHMove;
239  break;
240  case C_MOVE_TO:
241  pAction = new MHMoveTo;
242  break;
243  case C_MULTIPLY:
244  pAction = new MHMultiply;
245  break;
246  case C_OPEN_CONNECTION:
247  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
248  break; // ?
249  case C_PRELOAD:
250  pAction = new MHPreload;
251  break;
252  case C_PUT_BEFORE:
253  pAction = new MHPutBefore;
254  break;
255  case C_PUT_BEHIND:
256  pAction = new MHPutBehind;
257  break;
258  case C_QUIT:
259  pAction = new MHQuit;
260  break;
261  case C_READ_PERSISTENT:
262  pAction = new MHPersistent(":ReadPersistent", true);
263  break;
264  case C_RUN:
265  pAction = new MHRun;
266  break;
267  case C_SCALE_BITMAP:
268  pAction = new MHScaleBitmap;
269  break;
270  case C_SCALE_VIDEO:
271  pAction = new MHScaleVideo;
272  break;
273  case C_SCROLL_ITEMS:
274  pAction = new MHScrollItems;
275  break;
276  case C_SELECT:
277  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
278  break; // Button
279  case C_SELECT_ITEM:
280  pAction = new MHSelectItem;
281  break;
282  case C_SEND_EVENT:
283  pAction = new MHSendEvent;
284  break;
285  case C_SEND_TO_BACK:
286  pAction = new MHSendToBack;
287  break;
288  case C_SET_BOX_SIZE:
289  pAction = new MHSetBoxSize;
290  break;
292  case C_SET_COUNTER_END_POSITION: // Stream
293  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
294  break;
296  pAction = new MHSetCounterPosition;
297  break; // Stream
298  case C_SET_COUNTER_TRIGGER: // Stream
300  case C_SET_CURSOR_SHAPE:
301  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
302  break;
303  case C_SET_DATA:
304  pAction = new MHSetData;
305  break;
306  case C_SET_ENTRY_POINT:
307  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
308  break; // EntryField
309  case C_SET_FILL_COLOUR:
310  pAction = new MHSetFillColour;
311  break;
312  case C_SET_FIRST_ITEM:
313  pAction = new MHSetFirstItem;
314  break;
315  case C_SET_FONT_REF:
316  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
317  break; // Text
319  pAction = new MHSetHighlightStatus;
320  break;
322  pAction = new MHSetInteractionStatus;
323  break;
324  case C_SET_LABEL:
325  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
326  break; // PushButton
327  case C_SET_LINE_COLOUR:
328  pAction = new MHSetLineColour;
329  break;
330  case C_SET_LINE_STYLE:
331  pAction = new MHSetLineStyle;
332  break;
333  case C_SET_LINE_WIDTH:
334  pAction = new MHSetLineWidth;
335  break;
336  case C_SET_OVERWRITE_MODE: // EntryField
337  case C_SET_PALETTE_REF: // Visible
338  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
339  break;
340  case C_SET_PORTION:
341  pAction = new MHSetPortion;
342  break;
343  case C_SET_POSITION:
344  pAction = new MHSetPosition;
345  break;
346  case C_SET_SLIDER_VALUE:
347  pAction = new MHSetSliderValue;
348  break;
349  case C_SET_SPEED:
350  pAction = new MHSetSpeed;
351  break; // ?
352  case C_SET_TIMER:
353  pAction = new MHSetTimer;
354  break;
355  case C_SET_TRANSPARENCY:
356  pAction = new MHSetTransparency;
357  break;
358  case C_SET_VARIABLE:
359  pAction = new MHSetVariable;
360  break;
361  case C_SET_VOLUME:
362  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
363  break; // ?
364  case C_SPAWN:
365  pAction = new MHSpawn;
366  break;
367  case C_STEP:
368  pAction = new MHStep;
369  break;
370  case C_STOP:
371  pAction = new MHStop;
372  break;
373  case C_STORE_PERSISTENT:
374  pAction = new MHPersistent(":StorePersistent", false);
375  break;
376  case C_SUBTRACT:
377  pAction = new MHSubtract;
378  break;
379  case C_TEST_VARIABLE:
380  pAction = new MHTestVariable;
381  break;
382  case C_TOGGLE:
383  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
384  break; // Button
385  case C_TOGGLE_ITEM:
386  pAction = new MHToggleItem;
387  break;
388  case C_TRANSITION_TO:
389  pAction = new MHTransitionTo;
390  break;
391  case C_UNLOAD:
392  pAction = new MHUnload;
393  break;
394  case C_UNLOCK_SCREEN:
395  pAction = new MHUnlockScreen;
396  break;
397  // UK MHEG added actions.
399  pAction = new MHSetBackgroundColour;
400  break;
401  case C_SET_CELL_POSITION:
402  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
403  break; // ?
405  pAction = new MHSetInputRegister;
406  break;
407  case C_SET_TEXT_COLOUR:
408  pAction = new MHSetTextColour;
409  break;
411  pAction = new MHSetFontAttributes;
412  break;
414  pAction = new MHSetVideoDecodeOffset;
415  break;
417  pAction = new MHGetVideoDecodeOffset;
418  break;
419  case C_GET_FOCUS_POSITION: // HyperText
420  case C_SET_FOCUS_POSITION: // HyperText
421  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
422  break; // HyperText
424  pAction = new MHSetBitmapDecodeOffset;
425  break;
427  pAction = new MHGetBitmapDecodeOffset;
428  break;
430  pAction = new MHSetSliderParameters;
431  break;
432 
433  // Added in ETSI ES 202 184 V2.1.1 (2010-01)
434  case C_GET_COUNTER_POSITION: // Stream position
435  pAction = new MHGetCounterPosition;
436  break;
437  case C_GET_COUNTER_MAX_POSITION: // Stream total size
438  pAction = new MHGetCounterMaxPosition;
439  break;
440 
441  default:
442  MHLOG(MHLogWarning, QString("WARN Unknown action %1").arg(pElemAction->GetTagNo()));
443  // Future proofing: ignore any actions that we don't know about.
444  // Obviously these can only arise in the binary coding.
445  pAction = nullptr;
446  }
447 
448  if (pAction)
449  {
450  Append(pAction); // Add to the sequence.
451  pAction->Initialise(pElemAction, engine);
452  }
453  }
454 }
455 
456 void MHActionSequence::PrintMe(FILE *fd, int nTabs) const
457 {
458  for (int i = 0; i < Size(); i++)
459  {
460  GetAt(i)->PrintMe(fd, nTabs);
461  }
462 }
#define C_BRING_TO_FRONT
Definition: ASN1Codes.h:152
#define C_GET_ENGINE_SUPPORT
Definition: ASN1Codes.h:175
#define C_APPEND
Definition: ASN1Codes.h:151
#define C_DRAW_ARC
Definition: ASN1Codes.h:163
#define C_SCALE_VIDEO
Definition: ASN1Codes.h:213
void Perform(MHEngine *) override
Definition: Actions.cpp:56
#define C_GET_RUNNING_STATUS
Definition: ASN1Codes.h:192
#define MHERROR(__text)
Definition: Logging.h:42
#define C_SET_OVERWRITE_MODE
Definition: ASN1Codes.h:237
#define C_SET_INTERACTION_STATUS
Definition: ASN1Codes.h:232
#define C_DEACTIVATE
Definition: ASN1Codes.h:158
#define C_LOCK_SCREEN
Definition: ASN1Codes.h:200
#define C_GET_OVERWRITE_MODE
Definition: ASN1Codes.h:189
#define C_DRAW_SECTOR
Definition: ASN1Codes.h:169
#define C_GET_LAST_ANCHOR_FIRED
Definition: ASN1Codes.h:183
#define C_SET_TRANSPARENCY
Definition: ASN1Codes.h:244
#define C_CLEAR
Definition: ASN1Codes.h:155
#define C_SET_VARIABLE
Definition: ASN1Codes.h:245
#define C_SET_FILL_COLOUR
Definition: ASN1Codes.h:228
#define C_GET_SLIDER_VALUE
Definition: ASN1Codes.h:194
#define C_GET_COUNTER_POSITION
Definition: ASN1Codes.h:286
MHElemAction * GetAt(int i) const
Definition: BaseClasses.h:48
#define C_GET_FOCUS_POSITION
Definition: ASN1Codes.h:278
#define C_GET_PORTION
Definition: ASN1Codes.h:190
#define C_SET_COUNTER_END_POSITION
Definition: ASN1Codes.h:221
#define C_SET_BOX_SIZE
Definition: ASN1Codes.h:219
#define C_GET_VOLUME
Definition: ASN1Codes.h:198
#define C_STOP
Definition: ASN1Codes.h:249
#define C_GET_FIRST_ITEM
Definition: ASN1Codes.h:178
#define C_TOGGLE_ITEM
Definition: ASN1Codes.h:254
#define C_DRAW_POLYLINE
Definition: ASN1Codes.h:167
#define C_GET_LINE_COLOUR
Definition: ASN1Codes.h:184
#define C_SET_INPUT_REGISTER
Definition: ASN1Codes.h:273
#define C_ADD_ITEM
Definition: ASN1Codes.h:150
#define C_CLOSE_CONNECTION
Definition: ASN1Codes.h:157
#define C_GET_FILL_COLOUR
Definition: ASN1Codes.h:177
#define C_SET_POSITION
Definition: ASN1Codes.h:240
#define C_TOGGLE
Definition: ASN1Codes.h:253
#define C_SELECT_ITEM
Definition: ASN1Codes.h:216
#define C_GET_LINE_STYLE
Definition: ASN1Codes.h:185
virtual void Initialise(MHParseNode *p, MHEngine *engine)
Definition: Actions.cpp:67
#define C_GET_LINE_WIDTH
Definition: ASN1Codes.h:186
#define C_SET_LABEL
Definition: ASN1Codes.h:233
#define C_GET_CELL_ITEM
Definition: ASN1Codes.h:173
#define C_DRAW_LINE
Definition: ASN1Codes.h:164
#define C_SET_PALETTE_REF
Definition: ASN1Codes.h:238
#define C_FORK
Definition: ASN1Codes.h:170
#define C_SET_FONT_REF
Definition: ASN1Codes.h:230
virtual void PrintMe(FILE *fd, int nTabs) const
Definition: BaseActions.cpp:37
#define C_SET_TIMER
Definition: ASN1Codes.h:243
#define C_CLONE
Definition: ASN1Codes.h:156
#define C_SET_VIDEO_DECODE_OFFSET
Definition: ASN1Codes.h:276
#define C_SET_FONT_ATTRIBUTES
Definition: ASN1Codes.h:275
#define C_SET_CURSOR_POSITION
Definition: ASN1Codes.h:224
#define C_SET_TEXT_COLOUR
Definition: ASN1Codes.h:274
#define C_SET_DATA
Definition: ASN1Codes.h:226
#define C_SET_BACKGROUND_COLOUR
Definition: ASN1Codes.h:271
#define C_GET_BITMAP_DECODE_OFFSET
Definition: ASN1Codes.h:281
#define C_GET_ENTRY_POINT
Definition: ASN1Codes.h:176
Definition: Groups.h:165
#define C_QUIT
Definition: ASN1Codes.h:209
MHUnimplementedAction(int nTag)
Definition: Actions.cpp:47
#define C_SEND_EVENT
Definition: ASN1Codes.h:217
#define C_DRAW_POLYGON
Definition: ASN1Codes.h:166
#define C_SET_PORTION
Definition: ASN1Codes.h:239
#define C_ADD
Definition: ASN1Codes.h:149
#define C_SET_LINE_WIDTH
Definition: ASN1Codes.h:236
#define C_DRAW_RECTANGLE
Definition: ASN1Codes.h:168
#define C_DRAW_OVAL
Definition: ASN1Codes.h:165
#define C_TRANSITION_TO
Definition: ASN1Codes.h:255
#define C_GET_HIGHLIGHT_STATUS
Definition: ASN1Codes.h:179
#define C_MULTIPLY
Definition: ASN1Codes.h:204
#define C_STEP
Definition: ASN1Codes.h:248
#define C_GET_BOX_SIZE
Definition: ASN1Codes.h:172
#define C_SET_COUNTER_TRIGGER
Definition: ASN1Codes.h:223
#define C_SCROLL_ITEMS
Definition: ASN1Codes.h:214
#define C_SET_CURSOR_SHAPE
Definition: ASN1Codes.h:225
#define C_GET_TOKEN_POSITION
Definition: ASN1Codes.h:197
#define C_GET_INTERACTION_STATUS
Definition: ASN1Codes.h:180
#define C_ACTIVATE
Definition: ASN1Codes.h:148
#define C_GET_AVAILABILITY_STATUS
Definition: ASN1Codes.h:171
#define C_CALL
Definition: ASN1Codes.h:153
int FILE
Definition: mythburn.py:110
#define C_RUN
Definition: ASN1Codes.h:211
#define C_TEST_VARIABLE
Definition: ASN1Codes.h:252
#define C_SUBTRACT
Definition: ASN1Codes.h:251
#define C_MOVE
Definition: ASN1Codes.h:202
#define C_SET_CELL_POSITION
Definition: ASN1Codes.h:272
#define C_GET_VIDEO_DECODE_OFFSET
Definition: ASN1Codes.h:277
#define C_DIVIDE
Definition: ASN1Codes.h:162
#define C_SET_LINE_STYLE
Definition: ASN1Codes.h:235
#define C_GET_CURSOR_POSITION
Definition: ASN1Codes.h:174
#define C_SET_FOCUS_POSITION
Definition: ASN1Codes.h:279
#define C_SET_LINE_COLOUR
Definition: ASN1Codes.h:234
#define C_PRELOAD
Definition: ASN1Codes.h:206
#define C_GET_LIST_SIZE
Definition: ASN1Codes.h:188
#define C_SET_SLIDER_VALUE
Definition: ASN1Codes.h:241
#define C_GET_ITEM_STATUS
Definition: ASN1Codes.h:181
#define MHLOG(__level, __text)
Definition: Logging.h:36
virtual void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseActions.cpp:31
#define C_PUT_BEHIND
Definition: ASN1Codes.h:208
#define C_SPAWN
Definition: ASN1Codes.h:247
#define C_SET_FIRST_ITEM
Definition: ASN1Codes.h:229
#define C_SET_SLIDER_PARAMETERS
Definition: ASN1Codes.h:282
#define C_LAUNCH
Definition: ASN1Codes.h:199
void Initialise(MHParseNode *, MHEngine *) override
Definition: Actions.cpp:51
#define C_UNLOCK_SCREEN
Definition: ASN1Codes.h:257
#define C_GET_TEXT_DATA
Definition: ASN1Codes.h:196
virtual void PrintMe(FILE *fd, int nTabs) const
Definition: Actions.cpp:456
#define C_SET_SPEED
Definition: ASN1Codes.h:242
#define C_SET_BITMAP_DECODE_OFFSET
Definition: ASN1Codes.h:280
#define C_READ_PERSISTENT
Definition: ASN1Codes.h:210
#define C_SET_CACHE_PRIORITY
Definition: ASN1Codes.h:220
#define C_PUT_BEFORE
Definition: ASN1Codes.h:207
#define C_GET_TEXT_CONTENT
Definition: ASN1Codes.h:195
int GetTagNo()
Definition: ParseNode.cpp:49
#define C_MODULO
Definition: ASN1Codes.h:201
#define C_GET_COUNTER_MAX_POSITION
Definition: ASN1Codes.h:287
#define C_SCALE_BITMAP
Definition: ASN1Codes.h:212
#define C_DEL_ITEM
Definition: ASN1Codes.h:159
#define C_DESELECT_ITEM
Definition: ASN1Codes.h:161
#define C_SEND_TO_BACK
Definition: ASN1Codes.h:218
void Append(MHElemAction * b)
Definition: BaseClasses.h:62
#define C_CALL_ACTION_SLOT
Definition: ASN1Codes.h:154
#define C_GET_POSITION
Definition: ASN1Codes.h:191
#define C_SELECT
Definition: ASN1Codes.h:215
void PrintMe(FILE *fd, int) const override
Definition: Actions.cpp:52
#define C_SET_COUNTER_POSITION
Definition: ASN1Codes.h:222
#define C_STORE_PERSISTENT
Definition: ASN1Codes.h:250
#define C_SET_VOLUME
Definition: ASN1Codes.h:246
#define C_SET_ENTRY_POINT
Definition: ASN1Codes.h:227
#define C_GET_LIST_ITEM
Definition: ASN1Codes.h:187
#define C_OPEN_CONNECTION
Definition: ASN1Codes.h:205
#define C_SET_HIGHLIGHT_STATUS
Definition: ASN1Codes.h:231
#define C_DESELECT
Definition: ASN1Codes.h:160
#define C_GET_SELECTION_STATUS
Definition: ASN1Codes.h:193
#define C_GET_LABEL
Definition: ASN1Codes.h:182
#define C_MOVE_TO
Definition: ASN1Codes.h:203
#define C_UNLOAD
Definition: ASN1Codes.h:256