MHEG5  15.3.0
source/classes/inc/mh5action.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002  * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
00003  * Copyright © 2004 Ocean Blue Software Ltd
00004  * Copyright © 2000 Koninklijke Philips Electronics N.V
00005  *
00006  * This file is part of a DTVKit Software Component
00007  * You are permitted to copy, modify or distribute this file subject to the terms
00008  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
00009  * 
00010  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
00011  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
00012  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
00013  * 
00014  * If you or your organisation is not a member of DTVKit then you have access
00015  * to this source code outside of the terms of the licence agreement
00016  * and you are expected to delete this and any associated files immediately.
00017  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
00018  *******************************************************************************/
00029 #ifndef _MH5ACTION_H
00030 #define _MH5ACTION_H
00031 
00032 /*---includes for this file--------------------------------------------------*/
00033 
00034 #include "mh5root.h"
00035 
00036 /*---Constant and macro definitions for public use---------------------------*/
00037 #define MAX_EVENT_INDENT   64
00038 #define MAX_EVENT_DLEVEL   256
00039 
00040 /*---Enumerations for public use---------------------------------------------*/
00041 
00042 /*---Global type defs for public use-----------------------------------------*/
00043 
00044 /*
00045      Defined Actions as Enumeration
00046    Do not modifie the sequence - this is very important
00047    for the ASN1 Decoder
00048  */
00049 typedef enum
00050 {
00051    MHEG5NONEACTION,               /* 0 */
00052    MHEG5ACTIVATE,
00053    MHEG5ADD,
00054    MHEG5ADDITEM,
00055    MHEG5APPEND,
00056    MHEG5BRINGTOFRONT,
00057    MHEG5CALL,
00058    MHEG5CALLACTIONSLOT,
00059    MHEG5CLEAR,
00060    MHEG5CLONE,
00061    MHEG5CLOSECONNECTION,         /* 10 */
00062    MHEG5DEACTIVATE,
00063    MHEG5DELITEM,
00064    MHEG5DESELECT,
00065    MHEG5DESELECTITEM,
00066    MHEG5DIVIDE,
00067    MHEG5DRAWARC,
00068    MHEG5DRAWLINE,
00069    MHEG5DRAWOVAL,
00070    MHEG5DRAWPOLYGON,
00071    MHEG5DRAWPOLYLINE,            /* 20 */
00072    MHEG5DRAWRECTANGLE,
00073    MHEG5DRAWSECTOR,
00074    MHEG5FORK,
00075    MHEG5GETAVAILABILITYSTATUS,
00076    MHEG5GETBOXSIZE,
00077    MHEG5GETCELLITEM,
00078    MHEG5GETCURSORPOSITION,
00079    MHEG5GETENGINESUPPORT,
00080    MHEG5GETENTRYPOINT,
00081    MHEG5GETFILLCOLOUR,           /* 30 */
00082    MHEG5GETFIRSTITEM,
00083    MHEG5GETHIGHLIGHTSTATUS,
00084    MHEG5GETINTERACTIONSTATUS,
00085    MHEG5GETITEMSTATUS,
00086    MHEG5GETLABEL,
00087    MHEG5GETLASTANCHORFIRED,
00088    MHEG5GETLINECOLOUR,
00089    MHEG5GETLINESTYLE,
00090    MHEG5GETLINEWIDTH,
00091    MHEG5GETLISTITEM,             /* 40 */
00092    MHEG5GETLISTSIZE,
00093    MHEG5GETOVERWRITEMODE,
00094    MHEG5GETPORTION,
00095    MHEG5GETPOSITION,
00096    MHEG5GETRUNNINGSTATUS,
00097    MHEG5GETSELECTIONSTATUS,
00098    MHEG5GETSLIDERVALUE,
00099    MHEG5GETTEXTCONTENT,
00100    MHEG5GETTEXTDATA,
00101    MHEG5GETTOKENPOSITION,        /* 50 */
00102    MHEG5GETVOLUME,
00103    MHEG5LAUNCH,
00104    MHEG5LOCKSCREEN,
00105    MHEG5MODULO,
00106    MHEG5MOVE,
00107    MHEG5MOVETO,
00108    MHEG5MULTIPLY,
00109    MHEG5OPENCONNECTION,
00110    MHEG5PRELOAD,
00111    MHEG5PUTBEFORE,               /* 60 */
00112    MHEG5PUTBEHIND,
00113    MHEG5QUIT,
00114    MHEG5READPERSISTENT,
00115    MHEG5RUN,
00116    MHEG5SCALEBITMAP,
00117    MHEG5SCALEVIDEO,
00118    MHEG5SCROLLITEMS,
00119    MHEG5SELECT,
00120    MHEG5SELECTITEM,
00121    MHEG5SENDEVENT,               /* 70 */
00122    MHEG5SENDTOBACK,
00123    MHEG5SETBOXSIZE,
00124    MHEG5SETCACHEPRIORITY,
00125    MHEG5SETCOUNTERENDPOSITION,
00126    MHEG5SETCOUNTERPOSITION,
00127    MHEG5SETCOUNTERTRIGGER,
00128    MHEG5SETCURSORPOSITION,
00129    MHEG5SETCURSORSHAPE,
00130    MHEG5SETDATA,
00131    MHEG5SETENTRYPOINT,           /* 80 */
00132    MHEG5SETFILLCOLOUR,
00133    MHEG5SETFIRSTITEM,
00134    MHEG5SETFONTREF,
00135    MHEG5SETHIGHLIGHTSTATUS,
00136    MHEG5SETINTERACTIONSTATUS,
00137    MHEG5SETLABEL,
00138    MHEG5SETLINECOLOUR,
00139    MHEG5SETLINESTYLE,
00140    MHEG5SETLINEWIDTH,
00141    MHEG5SETOVERWRITEMODE,        /* 90 */
00142    MHEG5SETPALETTEREF,
00143    MHEG5SETPORTION,
00144    MHEG5SETPOSITION,
00145    MHEG5SETSLIDERVALUE,
00146    MHEG5SETSPEED,
00147    MHEG5SETTIMER,
00148    MHEG5SETTRANSPARENCY,
00149    MHEG5SETVARIABLE,
00150    MHEG5SETVOLUME,
00151    MHEG5SPAWN,                   /* 100 */
00152    MHEG5STEP,
00153    MHEG5STOP,
00154    MHEG5STOREPERSISTENT,
00155    MHEG5SUBTRACT,
00156    MHEG5TESTVARIABLE,
00157    MHEG5TOGGLE,
00158    MHEG5TOGGLEITEM,
00159    MHEG5TRANSITIONTO,
00160    MHEG5UNLOAD,
00161    MHEG5UNLOCKSCREEN,            /* 110 */
00162    ACTION_225, ACTION_226, ACTION_227, ACTION_228, ACTION_229, ACTION_230,
00163    ACTION_231, ACTION_232, ACTION_233, ACTION_234, ACTION_235, ACTION_236,
00164    MHEG5SETBACKGROUNDCOLOUR,      /* 123 */
00165    MHEG5SETCELLPOSITION,
00166    MHEG5SETINPUTREGISTER,
00167    MHEG5SETTEXTCOLOUR,
00168    MHEG5SETFONTATTRIBUTES,
00169    MHEG5SETVIDEODECODEOFFSET,
00170    MHEG5GETVIDEODECODEOFFSET,
00171    MHEG5GETFOCUSPOSITION,         /* 130 */
00172    MHEG5SETFOCUSPOSITION,
00173    MHEG5SETBITMAPDECODEOFFSET,
00174    MHEG5GETBITMAPDECODEOFFSET,
00175    MHEG5SETSLIDERPARAMETERS,
00176    ACTION_249,
00177    MHEG5SETDESKTOPCOLOUR,
00178    MHEG5GETCOUNTERPOSITION,
00179    MHEG5GETCOUNTERMAXPOSITION,
00180    ACTION_253,
00181    MHEG5SETINPUTMASK,             /* 140 */
00182    ACTION_LAST
00183 } E_ElementryAction;
00184 
00185 typedef MHEG5Short MHEG5ElemActionType;
00186 
00187 /*
00188     Each Elementary Action consists of a Type Identifier, a List of Parameters and
00189     a Pointer to the next Elementary Action in the List
00190  */
00191 typedef struct sMHEG5Action
00192 {
00193    MHEG5Root *target;
00194    MHEG5GList *firstParam;
00195    MHEG5GList *origFirstParam;
00196    MHEG5ElemActionType type;
00197    MHEG5Boolean targetIsIndirect;
00198 } MHEG5Action;
00199 
00200 typedef struct sMHEG5ActionList
00201 {
00202    MHEG5Action *a_ptr;
00203    MHEG5Int total;
00204 } MHEG5ActionList;
00205 
00206 
00207 /*---Global variable declarations for public use-----------------------------*/
00208 #if defined(MH5PRINTOUT) || defined(TRACING)
00209 extern int event_indent_num;
00210 #endif
00211 
00212 /*---Global Function prototypes for public use-------------------------------*/
00213 
00219 /*
00220    Debug
00221  */
00222 #ifdef MH5PRINTOUT
00223 void MHEG5actionPrint(MHEG5ActionList actions, char *out);
00224 #endif
00225 
00226 /*
00227     Free the memory of a list of elementary actions
00228     The memory is allocated by the Text- or ASN.1 parser.
00229  */
00230 void MHEG5actionDestruct(MHEG5ActionList actions);
00231 
00232 
00233 #endif /*_MH5ACTION_H*/
 All Data Structures Files Functions Variables Typedefs Defines