63 MHEG_PRINT(out,
"( ");
64 while (currIntList != NULL)
66 MHEG5intPrint(currIntList->
number, out);
68 currIntList = currIntList->
next;
86 while (currMovementTable != NULL)
89 MHEG5intListPrint(currMovementTable->
row, out);
90 currMovementTable = currMovementTable->
next;
108 MHEG_PRINT(out,
":movementTable: ");
113 MHEG_PRINT(out,
"// TokenPosition:\t");
129 assert(tokenManager);
142 assert(tokenManager);
159 assert(tokenManager);
164 ilEntry = mtEntry->
row;
167 lastILEntry = ilEntry;
168 ilEntry = ilEntry->
next;
171 lastMTEntry = mtEntry;
172 mtEntry = mtEntry->
next;
187 assert(tokenManager);
219 assert(tokenManager);
260 source = source->
next;
278 table->
row = MHEG5rowCopy(source->
row);
281 source = source->
next;
312 assert(tokenManager);
345 static void MHEG5tokenManagerTransferToken(
MHEG5Root *source,
MHEG5Int targetElement )
385 MHEG5Int movementId = 0, row = 1, col = 1;
402 movementTable = ((
MHEG5TokenGroup *) target)->tokenManager.movementTable;
404 while ((movementTable) && (row < movementId))
406 movementTable = movementTable->
next;
409 if ((movementTable) && (row == movementId))
411 oneRow = movementTable->
row;
412 while ((oneRow) && (col != ((
MHEG5TokenGroup *) target)->tokenManager.tokenPosition))
414 oneRow = oneRow->
next;
417 if ((oneRow) && (col == ((
MHEG5TokenGroup *) target)->tokenManager.tokenPosition))
421 MHEG5tokenManagerTransferToken( target, oneRow->
number );
462 if (((
MHEG5TokenGroup *) target)->tokenManager.tokenPosition != movementId)
464 MHEG5tokenManagerTransferToken( target, movementId );
void MHEG5tokenManagerInit(MHEG5TokenManager *tokenManager)
Initialise a tokenManager object with default values.
Implement the MHEG5 TokenManager Class 28 TokenManager Class Mix-in class that defines functions to m...
MHEG5GList * MHEG5resolveGenericInteger(MHEG5GList *params, MHEG5Int *value)
MHEG5MovementTable * movementTable
void MHEG5tokenManagerAddRow(MHEG5TokenManager *tokenManager)
Add a new row to a TokenManager.
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
struct sMHEG5IntList * next
void MHEG5tokenManagerAddNumber(MHEG5TokenManager *tokenManager, MHEG5Int number)
Insert a number into the last element of the movement table.
Implement the MHEG5 ListGroup Class Defines the location of list elements on the screen and theire in...
Implement the MHEG5 Tokengroup Class 29 TokenGroup Class. Defines a group of Visible objects for navi...
void MHEG5tokenManagerPrepare(MHEG5TokenManager *tokenManager)
Sets all internal attributes for the specified object to their default values.
MHEG5ErrorCode MHEG5getTokenPosition(MHEG5Root *target, MHEG5GList *params)
Set the Variable referenced by TokenPositionVar to the value of the TokenPosition attribute...
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
MHEG5ErrorCode MHEG5move(MHEG5Root *target, MHEG5GList *params)
Move the token between elements of the group. The movement to apply from any particular element locat...
Implement functions to retrieve MHEG5objects by GroupID and ID.
struct sMHEG5MovementTable * next
void MHEG5tokenManagerFree(MHEG5TokenManager *tokenManager)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
MHEG5GList * MHEG5resolveORef(MHEG5GList *params, MHEG5Root **object)
void MHEG5tokenManagerCopy(MHEG5TokenManager *destination, MHEG5TokenManager *source)
Copy a TokenManager object. The movement table of the TokenManager object is copied as well...
void MHEG5tokenManagerDestruct(MHEG5TokenManager *tokenManager)
Destruct a TokenManager object.
MHEG5ErrorCode MHEG5moveTo(MHEG5Root *target, MHEG5GList *params)
Move the token to a specific element of the group. Implementation of the MoveTo (Target, Index) action of the TokenManager class.
void MHEG5sendSync(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the synchronous event queue.