77 MHEG5ingredientPrint(&visible->ingredient, out);
81 MHEG_PRINT(out,
":OrigBoxSize ");
82 MHEG5intPrint(visible->originalBoxSize[0], out);
84 MHEG5intPrint(visible->originalBoxSize[1], out);
87 if (visible->originalPosition[0] || visible->originalPosition[1])
90 MHEG_PRINT(out,
":OrigPosition ");
91 MHEG5intPrint(visible->originalPosition[0], out);
93 MHEG5intPrint(visible->originalPosition[1], out);
97 if (visible->originalPaletteRefID != 0)
100 MHEG_PRINT(out,
":OriginalPaletteRefID ");
101 MHEG5intPrint(visible->originalPaletteRefID, out);
105 if (visible->originalPaletteRefGROUPID.len)
108 MHEG_PRINT(out,
":OriginalPaletteRefGROUPID ");
109 MHEG5stringPrint( *((
MHEG5String *)&visible->originalPaletteRefGROUPID), out );
114 if (visible->boxSize[0] || visible->boxSize[1])
117 MHEG_PRINT(out,
"// BoxSize:\t");
118 MHEG5intPrint(visible->boxSize[0], out);
119 MHEG_PRINT(out,
" ");
120 MHEG5intPrint(visible->boxSize[1], out);
123 if (visible->position[0] || visible->position[1])
126 MHEG_PRINT(out,
"// Position:\t");
127 MHEG5intPrint(visible->position[0], out);
128 MHEG_PRINT(out,
" ");
129 MHEG5intPrint(visible->position[1], out);
146 switch (target->clazz)
148 case MHEG5RTGRAPHICS:
154 case MHEG5DYNAMICLINEART:
156 case MHEG5ENTRYFIELD:
159 case MHEG5PUSHBUTTON:
160 case MHEG5SWITCHBUTTON:
192 if (visible->originalPaletteRefGROUPID.len)
213 destination->originalBoxSize[0] = source->originalBoxSize[0];
214 destination->originalBoxSize[1] = source->originalBoxSize[1];
215 destination->originalPosition[0] = source->originalPosition[0];
216 destination->originalPosition[1] = source->originalPosition[1];
217 destination->originalPaletteRefID = source->originalPaletteRefID;
218 if (destination->originalPaletteRefGROUPID.len)
221 name.len = source->originalPaletteRefGROUPID.len;
222 name.data = source->originalPaletteRefGROUPID.ptr.name;
224 destination->originalPaletteRefGROUPID.len = name.len;
225 destination->originalPaletteRefGROUPID.ptr.name = name.data;
241 CALL_PRINT((
">> MHEG5visiblePrepare(%p)\n", visible));
244 if (visible->ingredient.root.runningStatus)
246 INFO_PRINT((
"MHEG5visiblePrepare : RunningStatus == TRUE\n"));
247 CALL_PRINT((
"<< MHEG5textPrepare\n"));
251 visible->boxSize[0] = visible->originalBoxSize[0];
252 visible->boxSize[1] = visible->originalBoxSize[1];
253 visible->position[0] = visible->originalPosition[0];
254 visible->position[1] = visible->originalPosition[1];
256 visible->paletteRefID = visible->originalPaletteRefID;
257 visible->paletteRefGROUPID = visible->originalPaletteRefGROUPID;
259 assert( visible->graphic_data == NULL );
264 CALL_PRINT((
"<< MHEG5textPrepare\n"));
309 if (!visible->ingredient.root.runningStatus)
313 visible->ingredient.root.runningStatus = MHEG5TRUE;
315 MHEG5displayShow(visible);
341 if (visible->ingredient.root.runningStatus)
343 MHEG5displayHide(visible);
364 MHEG5Int x = 0, y = 0;
370 return MHEG5ERR_WRONGTARGET;
374 return MHEG5ERR_WRONGNUMBEROFPARAMS;
377 thirdParam = MHEG5resolveGenericInteger(params, &x);
380 return MHEG5ERR_WRONGNUMBEROFPARAMS;
383 MHEG5resolveGenericInteger(thirdParam, &y);
387 return MHEG5ERR_NOERROR;
403 visible->originalPosition[0],
404 visible->originalPosition[1]);
422 if ((root->clazz != MHEG5DYNAMICLINEART) &&
423 (visible->position[0] == x) &&
424 (visible->position[1] == y))
429 if (root->runningStatus)
431 MHEG5displayHide(visible);
434 visible->position[0] = x;
435 visible->position[1] = y;
440 if (root->runningStatus)
442 MHEG5displayVideoPositionUpdate();
447 if (((
MHEG5Ingredient *)root)->contentHook == CHOOK_BITMAP_NORMAL_IFRAME ||
449 #ifdef INCLUDE_FREESAT
450 || ((
MHEG5Ingredient *)root)->contentHook == CHOOK_BITMAP_IMAGE_PLANE_IFRAME
454 if (root->runningStatus)
456 MHEG5displayVideoPositionUpdate();
461 #ifdef DRAW_IN_ADVANCE 463 if (visible->restricted && visible->graphic_data != NULL)
466 visible->graphic_data = NULL;
473 if (root->runningStatus)
475 MHEG5displayShow(visible);
496 return MHEG5ERR_WRONGTARGET;
501 return MHEG5ERR_WRONGNUMBEROFPARAMS;
503 thirdParam = MHEG5resolveORef(params, &xVar);
507 return MHEG5ERR_WRONGNUMBEROFPARAMS;
509 MHEG5resolveORef(thirdParam, &yVar);
513 if ((xVar->clazz == MHEG5INTEGERVARIABLE) && (yVar->clazz == MHEG5INTEGERVARIABLE) &&
514 (xVar->runningStatus) && (yVar->runningStatus))
521 return MHEG5ERR_PARAMNOTACTIVE;
526 return MHEG5ERR_PARAMNOTACTIVE;
528 return MHEG5ERR_NOERROR;
556 MHEG5Int x = 0, y = 0;
562 return MHEG5ERR_WRONGTARGET;
567 return MHEG5ERR_WRONGNUMBEROFPARAMS;
569 thirdParam = MHEG5resolveGenericInteger(params, &x);
572 return MHEG5ERR_WRONGNUMBEROFPARAMS;
575 MHEG5resolveGenericInteger(thirdParam, &y);
577 if ((x >= 0) && (y >= 0) &&
584 if (target->runningStatus)
586 MHEG5displayHide(visible);
589 visible->boxSize[0] = x;
590 visible->boxSize[1] = y;
592 #ifndef DRAW_IN_ADVANCE 593 if (target->clazz != MHEG5DYNAMICLINEART &&
594 visible->graphic_data != NULL)
597 visible->graphic_data = NULL;
602 switch (target->clazz)
604 case MHEG5DYNAMICLINEART:
609 #ifdef DRAW_IN_ADVANCE 613 case MHEG5ENTRYFIELD:
621 if (visible->graphic_data != NULL)
624 visible->graphic_data = NULL;
626 switch (visible->ingredient.contentHook)
628 case CHOOK_BITMAP_PNG:
629 MG_DrawPng( visible->ingredient.data, visible->ingredient.dataLen, visible );
632 case CHOOK_BITMAP_JPG:
633 MG_DrawJpg( visible->ingredient.data, visible->ingredient.dataLen, visible );
644 if (target->runningStatus)
646 MHEG5displayShow( visible );
649 return MHEG5ERR_NOERROR;
680 return MHEG5ERR_WRONGTARGET;
685 return MHEG5ERR_WRONGNUMBEROFPARAMS;
687 thirdParam = MHEG5resolveORef(params, &xVar);
691 return MHEG5ERR_WRONGNUMBEROFPARAMS;
693 MHEG5resolveORef(thirdParam, &yVar);
697 if ((xVar->clazz == MHEG5INTEGERVARIABLE) && (yVar->clazz == MHEG5INTEGERVARIABLE) &&
698 (xVar->runningStatus) && (yVar->runningStatus))
705 return MHEG5ERR_PARAMNOTACTIVE;
710 return MHEG5ERR_PARAMNOTACTIVE;
713 return MHEG5ERR_NOERROR;
748 return MHEG5ERR_WRONGTARGET;
755 return MHEG5ERR_NOERROR;
790 return MHEG5ERR_WRONGTARGET;
797 return MHEG5ERR_NOERROR;
837 return MHEG5ERR_WRONGTARGET;
842 return MHEG5ERR_WRONGNUMBEROFPARAMS;
844 (void)MHEG5resolveGenericORef(params, &refVisible);
845 if (refVisible == NULL || !refVisible->availabilityStatus)
847 return MHEG5ERR_REFERENCEDPARAMNOTAVAILABLE;
851 return MHEG5ERR_WRONGPARAM;
858 return MHEG5ERR_NOERROR;
899 return MHEG5ERR_WRONGTARGET;
903 return MHEG5ERR_WRONGNUMBEROFPARAMS;
905 (void)MHEG5resolveGenericORef(params, &refVisible);
906 if (refVisible == NULL || !refVisible->availabilityStatus)
908 return MHEG5ERR_REFERENCEDPARAMNOTAVAILABLE;
912 return MHEG5ERR_WRONGPARAM;
919 return MHEG5ERR_NOERROR;
951 return MHEG5ERR_WRONGTARGET;
956 return MHEG5ERR_WRONGNUMBEROFPARAMS;
958 (void)MHEG5resolveGenericORef(params, &palette);
959 if (palette == NULL || !palette->runningStatus)
961 return MHEG5ERR_PARAMNOTACTIVE;
963 if (palette->clazz != MHEG5PALETTE)
965 return MHEG5ERR_WRONGPARAM;
971 ((
MHEG5Visible *) target)->paletteRefGROUPID.ptr.group = palette->grp;
976 return MHEG5ERR_NOERROR;
void MHEG5ingredientInit(MHEG5Ingredient *ingredient)
Initialise a ingredient object with default values.
void MHEG5displayStackPutBehind(MHEG5Root *target, MHEG5Root *refVisible)
Put a Visible exactly below another Visible in the display stack.
void MHEG5displayStackToBottom(MHEG5Root *visible)
Move a visible to the Bottom of the display stack.
MHEG5ErrorCode MHEG5setPosition(MHEG5Root *target, MHEG5GList *params)
Change the location of the target Visible. Implementation of the SetPosition (NewXPosition, NewYPosition) action of the visible class.
MHEG5ErrorCode MHEG5setPaletteRef(MHEG5Root *target, MHEG5GList *params)
Change the colour look-up table used to render colours of the Visible object. Implementation of the S...
void MHEG5displayStackAdd(MHEG5Root *visible, MHEG5Bool atTop)
This function adds a visible to the display stack. The parameter atTop defines if the Visible is adde...
void MHEG5visibleDeactivate(MHEG5Visible *visible)
Apply the deactivation behaviour of the visible class. As this class has no own deactivation behaviou...
Implement the MHEG5 Dynamiclineart Class Defines means to dynamically draw vectorial graphical object...
MHEG5ErrorCode MHEG5putBefore(MHEG5Root *target, MHEG5GList *params)
Put a Visible exactly in front of another Visible in the display stack. Implementation of the PutBefo...
void MHEG5visibleResetPosition(MHEG5Visible *visible)
Reset the position of the visible back to its original values (as stored in originalPosition).
void MHEG5visibleSetPosition(MHEG5Visible *visible, MHEG5Int x, MHEG5Int y)
This procedure sets the position of the target visible object to the given values.
void MHEG5visibleActivate(MHEG5Visible *visible)
Apply the activation behaviour of the visible class. Apply the activation behaviour off the visible c...
MHEG5ErrorCode MHEG5sendToBack(MHEG5Root *target, MHEG5GList *params)
Put a Visible at the background of the screen. Implementation of the SendToBack action of the visible...
void MHEG5ingredientDestruct(MHEG5Ingredient *ingredient)
Implementation of the Destruction behaviour Execute the following sequence of actions: ...
void MG_FreeData(void *data)
free surface buffer
MHEG5Bool MHEG5visibleIs(MHEG5Root *target)
<Function description>="">
MHEG5String MHEG5stringCopy(MHEG5String source)
<Function description>="">
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
void MHEG5stringDestruct(MHEG5String *item)
Destruct a MHEG5String.
void MHEG5visibleFree(MHEG5Visible *visible)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
MHEG5ErrorCode MHEG5bringToFront(MHEG5Root *target, MHEG5GList *params)
Put a Visible at the foreground of the screen, i.e. on top of the Display Stack Implementation of the...
void MHEG5displayStackPutBefore(MHEG5Root *target, MHEG5Root *refVisible)
Put a Visible exactly in front of another Visible in the display stack.
This file defines the profile for the MHEG engine.
MHEG5ErrorCode MHEG5getPosition(MHEG5Root *target, MHEG5GList *params)
Returns the location of the target Visible.
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
void MHEG5displayStackToTop(MHEG5Root *visible)
Move a Visible to the Top of the display stack.
Implement the MHEG5 Visible Class Defines the behaviour of Presentables that have a visual representa...
void MHEG5visibleDestruct(MHEG5Visible *visible)
Destruct a visible object.
void MHEG5ingredientClone(MHEG5Ingredient *destination, MHEG5Ingredient *source)
Implementation of the ingredient part of the clone action.
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.
Implementation of the MHEG5 Application Class Defines a set of Ingredient objects, which are shared within an application scope. Base class: Group Subclasses: None Status: Concrete class.
Mheg5 logging and debug printing.
void MHEG5initDynamicLineart(MHEG5DynamicLineart *dynamicLineart)
Create the canvas for a dynamic lineart object.
MHEG class interface to graphics text render.
MHEG5ErrorCode MHEG5setBoxSize(MHEG5Root *target, MHEG5GList *params)
Change the size of the bounding box of the target Visible. Implementation of the SetBoxSize (XNewBoxS...
void MHEG5visibleInit(MHEG5Visible *visible)
Initialise a visible object with default values.
MHEG5ErrorCode MHEG5getBoxSize(MHEG5Root *target, MHEG5GList *params)
Returns the size of the bounding box of the target Visible. Implementation of the GetBoxSize (XBoxSiz...
void MHEG5freeDynamicLineart(MHEG5DynamicLineart *dynamicLineart)
Create the canvas for a dynamic lineart object.
void MHEG5ingredientFree(MHEG5Ingredient *ingredient)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
Implement generic MHEG5-display functions - independent from the OSD These are generic functions used...
void MHEG5visiblePrepare(MHEG5Visible *visible)
Apply the preparation behaviour off the visible class Apply the preparation behaviour of the visible ...
MHEG5ErrorCode MHEG5putBehind(MHEG5Root *target, MHEG5GList *params)
Put a Visible exactly below another Visible in the display stack. Implementation of the PutBehind (Re...
void MHEG5sendSync(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the synchronous event queue.
MHEG5Bool MHEG5displayStackDelete(MHEG5Root *visible)
This function removes the reference to a visible object from the display stack.
void MHEG5visibleClone(MHEG5Visible *destination, MHEG5Visible *source)
Copy a visible object with original values.