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 *******************************************************************************/ 00031 #ifndef _MH5GROUP_H 00032 #define _MH5GROUP_H 00033 00034 /*---includes for this file--------------------------------------------------*/ 00035 00036 #include "mh5action.h" 00037 #include "mh5ingredient.h" 00038 00039 /*---Constant and macro definitions for public use---------------------------*/ 00040 #define GRP_HASH_TABLE_SIZE 251 00041 /*#define GROUP_MAGIC_NUM 0x970db5f0*/ 00042 00043 /*---Enumerations for public use---------------------------------------------*/ 00044 00045 /*---Global type defs for public use-----------------------------------------*/ 00046 00047 typedef struct sMHEG5Group 00048 { 00049 /* Base classe */ 00050 MHEG5Root root; 00051 00052 /* Exchanged attributes */ 00053 MHEG5String groupName; 00054 MH5GroupId group_id; 00055 /*U32BIT magic;*/ 00056 /*MHEG5Int standardID[2]; * 00057 * MHEG5Int standardVersion;*/ 00058 MHEG5String objectInformation; 00059 MHEG5ActionList onStartUp; 00060 MHEG5ActionList onCloseDown; 00061 MHEG5Int originalCachePriority; 00062 MHEG5Ingredient *itemHead; 00063 MHEG5Ingredient *itemTail; 00064 MHEG5Ingredient *hashIngred[256]; 00065 00066 /* Internal attributes */ 00067 MHEG5Int cachePriority; 00068 00069 /* Engine data */ 00070 unsigned long startTime; 00071 } MHEG5Group; 00072 00073 /*---Global variable declarations for public use-----------------------------*/ 00074 00075 /*---Global Function prototypes for public use-------------------------------*/ 00076 #ifdef MH5PRINTOUT 00077 00083 void MHEG5groupPrint(MHEG5Group *group, char *out); 00084 00085 #endif /* MH5PRINTOUT */ 00086 00093 void MHEG5groupAddItem(MHEG5Group *group, MHEG5Ingredient *item); 00094 00101 void MHEG5groupDelItem(MHEG5Group *group, MHEG5Ingredient *item); 00102 00103 /* 00104 Constructor 00105 */ 00111 void MHEG5groupInit(MHEG5Group *group); 00112 00113 00121 void MHEG5groupFree(MHEG5Group *group); 00122 00123 00124 /* 00125 Internal behaviours 00126 */ 00138 void MHEG5groupPrepare(MHEG5Group *group); 00139 00140 00150 void MHEG5groupDestruct(MHEG5Group *group); 00151 00152 00166 void MHEG5groupActivate(MHEG5Group *group); 00167 00168 00181 void MHEG5groupDeactivate(MHEG5Group *group); 00182 00183 /* 00184 Actions 00185 */ 00201 MHEG5ErrorCode MHEG5setCachePriority(MHEG5Root *target, MHEG5GList *params); 00202 00249 MHEG5ErrorCode MHEG5setTimer(MHEG5Root *target, MHEG5GList *params); 00250 00255 void MH5_GroupInit(void); 00256 00257 #ifdef SURFACE_THRESHOLD 00258 00263 void MHEG5groupDestroySurfaces(MHEG5Int pixels); 00264 #endif /* SURFACE_THRESHOLD */ 00265 00266 #endif /*_MH5GROUP_H*/