MHEG5
15.3.0
|
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 *******************************************************************************/ 00034 #ifndef _MH5TOKENMANAGER_H 00035 #define _MH5TOKENMANAGER_H 00036 00037 /*---includes for this file--------------------------------------------------*/ 00038 00039 #include "mh5base.h" 00040 #include "mh5root.h" 00041 00042 /*---Constant and macro definitions for public use---------------------------*/ 00043 00044 /*---Enumerations for public use---------------------------------------------*/ 00045 00046 /*---Global type defs for public use-----------------------------------------*/ 00047 00048 typedef struct sMHEG5IntList 00049 { 00050 MHEG5Int number; 00051 struct sMHEG5IntList *next; 00052 } MHEG5IntList; 00053 00054 typedef struct sMHEG5MovementTable 00055 { 00056 MHEG5IntList *row; 00057 struct sMHEG5MovementTable *next; 00058 } MHEG5MovementTable; 00059 00060 typedef struct 00061 { 00062 /* No base class for this class (mix-in) */ 00063 00064 /* Exchanged attributes */ 00065 MHEG5MovementTable *movementTable; 00066 00067 /* Internal attributes */ 00068 MHEG5Int tokenPosition; 00069 } MHEG5TokenManager; 00070 00071 /*---Global variable declarations for public use-----------------------------*/ 00072 00073 /*---Global Function prototypes for public use-------------------------------*/ 00074 00080 /* 00081 Debug 00082 */ 00083 #ifdef MH5PRINTOUT 00084 00090 void MHEG5tokenManagerPrint(MHEG5TokenManager *tokenManager, char *out); 00091 00098 void MHEG5intListPrint(MHEG5IntList *intList, char *out); 00099 00106 void MHEG5movementTablePrint(MHEG5MovementTable *movementTable, char *out); 00107 00108 00109 #endif /* MH5PRINTOUT */ 00110 00111 00112 /* 00113 Constructor 00114 */ 00120 void MHEG5tokenManagerInit(MHEG5TokenManager *tokenManager); 00121 00122 00129 void MHEG5tokenManagerPrepare(MHEG5TokenManager *tokenManager); 00130 00131 00139 void MHEG5tokenManagerFree(MHEG5TokenManager *tokenManager); 00140 00141 00142 void MHEG5tokenManagerAddRow(MHEG5TokenManager *tokenManager); 00143 void MHEG5tokenManagerAddNumber(MHEG5TokenManager *tokenManager, MHEG5Int number); 00144 00145 /* 00146 Copy Constructor 00147 */ 00148 void MHEG5tokenManagerCopy(MHEG5TokenManager *destination, MHEG5TokenManager *source); 00149 00150 /* 00151 Internal behaviours 00152 */ 00153 void MHEG5tokenManagerPrepare(MHEG5TokenManager *tokenManager); 00154 void MHEG5tokenManagerDestruct(MHEG5TokenManager *tokenManager); 00155 00156 /* 00157 Actions 00158 */ 00159 MHEG5ErrorCode MHEG5move(MHEG5Root *target, MHEG5GList *params); 00160 MHEG5ErrorCode MHEG5moveTo(MHEG5Root *target, MHEG5GList *params); 00161 MHEG5ErrorCode MHEG5getTokenPosition(MHEG5Root *target, MHEG5GList *params); 00162 00163 #endif /*_MH5TOKENMANAGER_H*/