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 _MH5LINK_H 00032 #define _MH5LINK_H 00033 00034 /*---includes for this file--------------------------------------------------*/ 00035 #include "mh5ingredient.h" 00036 #include "mh5action.h" 00037 00038 /*---Constant and macro definitions for public use---------------------------*/ 00039 00040 #define HTEXT_TOP_STR 1 00041 #define HTEXT_BOT_STR 2 00042 00043 /*---Enumerations for public use---------------------------------------------*/ 00044 00045 /*---Global type defs for public use-----------------------------------------*/ 00046 typedef struct sMHEG5Link 00047 { 00048 /* Base class */ 00049 MHEG5Ingredient ingredient; 00050 00051 /* Exchanged attributes */ 00052 MH5GroupRef sourcegid; /* \ */ 00053 MHEG5Int source; /* | LinkCondition */ 00054 MHEG5EventType eventType; /* | */ 00055 MHEG5Generic eventData; /* / */ 00056 MHEG5ActionList linkEffect; 00057 00058 /* No internal attributes for this class */ 00059 00060 /* Engine data */ 00061 struct sMHEG5Link *nextActiveLink; /* Pointer to the next currently */ 00062 /* active link */ 00063 } MHEG5Link; 00064 00065 /*---Global variable declarations for public use-----------------------------*/ 00066 00067 /*---Global Function prototypes for public use-------------------------------*/ 00068 00080 void MHEG5linkInit(MHEG5Link *link); 00081 00082 00090 void MHEG5linkFree(MHEG5Link *link); 00091 00092 00093 /* 00094 Internal behaviours 00095 */ 00096 void MHEG5linkPrepare(MHEG5Link *link); 00097 void MHEG5linkDestruct(MHEG5Link *link); 00098 void MHEG5linkActivate(MHEG5Link *link); 00099 void MHEG5linkDeactivate(MHEG5Link *link); 00100 U8BIT* MHEG5linkEventName( MHEG5Link *link ); 00101 00102 /* 00103 Actions 00104 */ 00105 MHEG5ErrorCode MHEG5activate(MHEG5Root *target, MHEG5GList *params); 00106 MHEG5ErrorCode MHEG5deactivate(MHEG5Root *target, MHEG5GList *params); 00107 00108 /* 00109 Internal Engine Functions 00110 */ 00111 00112 int LNK_RegisterString( MHEG5String s ); 00113 int LNK_GetStringIndex( MHEG5String s ); 00114 MHEG5String LNK_GetString( int i ); 00115 00116 00117 void initialiseActiveLinkQs(void); 00118 00119 #ifdef MH5PRINTOUT 00120 void MHEG5linkPrint(MHEG5Link *link, char *out); 00121 #endif 00122 00123 extern MHEG5Link *activeLinksHead[MHEG5LASTEVENT + 1]; 00124 extern unsigned int existsLinkCount[MHEG5LASTEVENT + 1]; 00125 00126 #endif /*_MH5LINK_H*/