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