50 #define MAX_REG_STRINGS 32 70 static int numberRegistered;
72 static const char htext_top[] =
"rec://htext/top";
73 static const char htext_bot[] =
"rec://htext/bot";
89 void MHEG5linkPrint(
MHEG5Link *link,
char *out)
93 MHEG_PRINT(out,
":EventSource ");
99 MHEG5intPrint(link->
source, out);
100 MHEG_PRINT(out,
")");
103 MHEG5intPrint(link->
source, out);
106 MHEG_PRINT(out,
":EventType ");
112 MHEG_PRINT(out,
":EventData ");
113 MHEG5genericPrint(link->
eventData, out, 0);
117 MHEG_PRINT(out,
":LinkEffect (");
121 MHEG_PRINT(out,
")");
133 activeLinksHead[et] = 0;
137 registeredStrings[0].
str.
len = 0;
138 registeredStrings[0].
str.
data = NULL;
149 registeredStrings[i].
str.
len = 0;
150 registeredStrings[i].
str.
data = NULL;
153 numberRegistered = 3;
166 if ((registeredStrings[i].
str.
len == s.
len) &&
173 else if (registeredStrings[i].
str.
len == 0)
175 if (i == numberRegistered)
195 for (i = 1; i != numberRegistered; i++)
197 if ((registeredStrings[i].
str.
len == s.
len) &&
208 return registeredStrings[i].
str;
211 static void LNK_FreeString(
MHEG5Int ndx )
213 int i = numberRegistered - 1;
214 if (registeredStrings[ndx].
numLinks)
219 registeredStrings[ndx].
str.
len &&
228 numberRegistered = i + 1;
242 eventName.
data = NULL;
244 return eventName.
data;
345 if (!(mheg_trace_debug & TACTIONS))
355 while (listItem != 0)
357 assert(listItem != link);
399 if (!(mheg_trace_debug & TACTIONS))
407 if (activeLinksHead[link->
eventType] == link)
438 ERROR_PRINT((
"ERROR: MHEG5linkDeactivate - couldn't find link in active list\n"));
MHEG5Bool availabilityStatus
void MHEG5ingredientInit(MHEG5Ingredient *ingredient)
Initialise a ingredient object with default values.
void MHEG5linkFree(MHEG5Link *link)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void initialiseActiveLinkQs(void)
<Function description>="">
void MHEG5notifyLinkActive(MHEG5Link *link)
Notify that a link is active.
Event to String conversion.
MHEG5Ingredient ingredient
MHEG5ErrorCode MHEG5activate(MHEG5Root *target, MHEG5GList *params)
void MHEG5linkActivate(MHEG5Link *link)
void MHEG5ingredientDestruct(MHEG5Ingredient *ingredient)
Implementation of the Destruction behaviour Execute the following sequence of actions: ...
Stream event subscription management.
union sMH5GroupRef::@5 ptr
struct s_LinkString S_LinkString
union MHEG5Generic::@6 value
MHEG5ActionList linkEffect
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
void MHEG5stringDestruct(MHEG5String *item)
Destruct a MHEG5String.
U8BIT * MHEG5linkEventName(MHEG5Link *link)
int LNK_GetStringIndex(MHEG5String s)
void MHEG5linkDestruct(MHEG5Link *link)
MHEG5Link * activeLinksHead[MHEG5LASTEVENT+1]
int LNK_RegisterString(MHEG5String s)
Implement the MHEG5 Link Class. Defines the functionality associated with reacting to events by perfo...
const char * MHEG5eventToString(MHEG5EventType event)
void MHEG5notifyLinkInactive(MHEG5Link *link)
Notify that a link has become inactive.
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
unsigned int existsLinkCount[MHEG5LASTEVENT+1]
void MHEG5ingredientDeactivate(MHEG5Ingredient *ingredient)
Implementation of Deactivate behaviour Inherrited from Root class.
Implement functions to retrieve MHEG5objects by GroupID and ID.
void MHEG5ingredientPrepare(MHEG5Ingredient *ingredient)
Implementation of the Preparation behaviour Inherrited from Root class.
Mheg5 logging and debug printing.
MHEG5String LNK_GetString(int i)
void MHEG5linkDeactivate(MHEG5Link *link)
void MHEG5actionDestruct(MHEG5ActionList actions)
<Function description>="">
void MHEG5linkPrepare(MHEG5Link *link)
void MHEG5queueUnresolveTargets(MHEG5ActionList actions)
Clear targets for the action list.
void MHEG5queueResolveTargets(MHEG5ActionList actions)
Finds targets for the action list.
void MHEG5linkInit(MHEG5Link *link)
Initialise a link object with default values.
void MHEG5ingredientFree(MHEG5Ingredient *ingredient)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void MHEG5sendSync(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the synchronous event queue.
struct sMHEG5Link * nextActiveLink
MHEG5ErrorCode MHEG5deactivate(MHEG5Root *target, MHEG5GList *params)