MHEG5  15.3.0
source/classes/inc/mh5group.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  *******************************************************************************/
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*/
 All Data Structures Files Functions Variables Typedefs Defines