52 #define EVENTTYPESSIZE 35 53 static MHEG5EventType eventTypes[EVENTTYPESSIZE] = {
54 MHEG5NONEEVENT, MHEG5ISAVAILABLE, MHEG5CONTENTAVAILABLE, MHEG5ISDELETED, MHEG5ISRUNNING,
55 MHEG5ISSTOPPED, MHEG5USERINPUT, MHEG5ANCHORFIRED, MHEG5TIMERFIRED, MHEG5ASYNCHSTOPPED,
56 MHEG5INTERACTIONCOMPLETED, MHEG5TOKENMOVEDFROM, MHEG5TOKENMOVEDTO, MHEG5STREAMEVENT,
57 MHEG5STREAMPLAYING, MHEG5STREAMSTOPPED, MHEG5COUNTERTRIGGER, MHEG5HIGHLIGHTON,
58 MHEG5HIGHLIGHTOFF, MHEG5CURSORENTER, MHEG5CURSORLEAVE, MHEG5ISSELECTED, MHEG5ISDESELECTED,
59 MHEG5TESTEVENT, MHEG5FIRSTITEMPRESENTED, MHEG5LASTITEMPRESENTED, MHEG5HEADITEMS,
60 MHEG5TAILITEMS, MHEG5ITEMSELECTED, MHEG5ITEMDESELECTED, MHEG5ENTRYFIELDFULL,
61 MHEG5ENGINEEVENT, MHEG5FOCUSMOVED, MHEG5SLIDERVALUECHANGED,
69 MHEG5EventType asn1_decodeEventType( MHEG5Int evt_val )
72 if ((evt_val <= 0) || (evt_val >= EVENTTYPESSIZE))
74 evt_val = EVENTTYPESSIZE - 1;
76 return eventTypes[evt_val];
91 DPL5((
">> asn1_decodeLinkCondition(%X,%X)\n", listPtr, link));
95 currItem = listPtr->children;
97 while (currItem != NULL)
99 switch (currItem->tag)
101 case EVENT_SOURCE_TYPE:
104 if (currItem->dataType == 2)
106 link->source = currItem->data.intData;
107 link->sourcegid.ptr.group = asn1_mainGroupPtr;
111 if (currItem->children != NULL)
115 link->sourcegid.len = name.len;
116 link->sourcegid.ptr.name = name.data;
117 if (currItem->children->next != NULL)
118 link->source = currItem->children->next->data.intData;
129 link->eventType = asn1_decodeEventType( currItem->data.intData );
130 existsLinkCount[link->eventType]++;
132 case EVENT_DATA_TYPE:
133 switch (currItem->dataType)
136 link->eventData.value.b = (currItem->data.boolData == 0) ? MHEG5FALSE : MHEG5TRUE;
137 link->eventData.indirect = MHEG5FALSE;
138 link->eventData.type = (U16BIT)MHEG5BOOL;
141 link->eventData.value.i = currItem->data.intData;
142 link->eventData.indirect = MHEG5FALSE;
143 link->eventData.type = (U16BIT)MHEG5INT;
146 link->eventData.value.i = LNK_RegisterString( currItem->data.stringData );
147 currItem->data.stringData.len = 0;
148 currItem->data.stringData.data = NULL;
149 link->eventData.indirect = MHEG5TRUE;
150 link->eventData.type = (U16BIT)MHEG5INT;
153 DPL2((
"WARNING:[ASN.1] Unexpected tag in LinkCondition\n"));
161 currItem = currItem->next;
167 DPL2((
"WARNING:[ASN.1] asn1_decodeLinkCondition() returns errVal = %d\n", errVal));
171 DPL5((
"<< asn1_decodeLinkCondition() Returns %d\n", errVal));
189 DPL5((
">> asn1_createLink(%X,%X)\n", listPtr, link));
197 link->ingredient.root.clazz = MHEG5LINK;
204 link->eventData.indirect = MHEG5FALSE;
207 currItem = listPtr->children;
208 while (currItem != NULL)
211 switch (currItem->tag)
214 errVal |= asn1_decodeLinkCondition(currItem, link);
221 case EXTERNAL_REFERENCE_TYPE:
223 assert( currItem->children );
224 child = currItem->children->next;
226 child->data.intData < 1)
233 link->ingredient.root.id = child->data.intData;
237 if (currItem->data.intData < 1)
244 link->ingredient.root.id = currItem->data.intData;
248 if (currItem->data.boolData == 0)
250 link->ingredient.initiallyStopped = MHEG5TRUE;
254 if (currItem->data.boolData != 0)
256 link->ingredient.shared = MHEG5TRUE;
263 currItem = currItem->next;
266 if (errVal != ASN_NO_ERROR)
269 DPL2((
"WARNING:[ASN.1] asn1_createLink() Fails\n"));
276 DPL5((
"<< asn1_createLink() Returns %d\n", link));
Functions to create a MHEG5Link from a MHEG5 script (in the form of a list of fpa1_syntaxList structu...
Functions to create a MHEG5Action from a MHEG5 script (in the form of a list of fpa1_syntaxList struc...
Functions to create a MHEG5Ingredient from a MHEG5 script (in the form of a list of fpa1_syntaxList s...
MHEG5Ingredient * asn1_createLink(fpa1_syntaxList *listPtr)
Decodes Link class. Refer to MHEG5 Specification (ISO/IEC 13522-2:1996), Appendix A...
Contains functions/structure used to do MHEG-5 ASN.1 syntax parsing.
Functions to create a MHEG5Group from a MHEG5 script (in the form of a list of fpa1_syntaxList struct...
Typedefs, macros used by all of parser. These may be duplicated elsewhere.
typedefs etc for the whole object creation section.
Contains macros for MHEG-5 ASN.1 tags and structures.
void asn1_decodeActions(fpa1_syntaxList *listPtr, MHEG5ActionList *p_actions)
Decodes action class Refer to MHEG5 Specification (ISO/IEC 13522-2:1996), Appendix A...
Implement the MHEG5 Link Class. Defines the functionality associated with reacting to events by perfo...