60 #if defined(INCLUDE_IC) && defined(INCLUDE_ICS) 91 MHEG_PRINT(out,
" :ContentRef ( ");
95 MHEG_PRINT(out,
" :CCPriority ");
98 MHEG_PRINT(out,
" )");
115 MHEG5rootPrint(&ingredient->
root, out);
121 MHEG_PRINT(out,
":InitiallyActive FALSE");
128 MHEG_PRINT(out,
":CHook ");
136 MHEG_PRINT(out,
":OrigContent ");
145 MHEG_PRINT(out,
":Shared TRUE");
153 MHEG_PRINT(out,
"// :Content ");
154 MHEG5contentBodyPrint(ingredient->
content, out);
265 switch (item->contentHook)
268 #ifdef DRAW_IN_ADVANCE 273 #ifdef DRAW_IN_ADVANCE 279 #ifdef INCLUDE_FREESAT 280 case CHOOK_BITMAP_IMAGE_PLANE_IFRAME:
285 ERROR_PRINT((
"ERROR: invalid chook for Bitmap %ld\n", item->contentHook));
292 switch (item->contentHook)
302 ERROR_PRINT((
"ERROR: invalid chook for Text %ld\n", item->contentHook));
310 ERROR_PRINT((
"INTERNAL ERROR: invalid object class\n"));
316 if (item->content.referenced)
322 memcpy(item->data, content->
data, content->
size );
323 item->dataLen = content->
size;
324 TRACE(TFILE, (
"Cref: id=%ld, clz=%d ptr=0x%p len=%d", item->root.id, item->root.clazz, item->data, item->dataLen))
330 item->data = item->content.ref.included.data;
331 item->dataLen = item->content.ref.included.len;
332 TRACE(TFILE, (
"Cinc: id=%ld, clz=%d ptr=0x%p len=%d", item->root.id, item->root.clazz, item->data, item->dataLen))
366 #ifdef INCLUDE_FREESAT 367 case CHOOK_BITMAP_IMAGE_PLANE_IFRAME:
422 static
void MHEG5ingredientContentPrepareAsync(
433 MHEG5contentFree(ingredient);
445 if (content->data != NULL && content->size != 0)
447 MHEG5contentAdapt( ingredient, content );
466 if (((
MHEG5Root *) ingredient)->runningStatus)
472 #ifdef INCLUDE_FREESAT
473 || ingredient->contentHook == CHOOK_BITMAP_IMAGE_PLANE_IFRAME
479 if ((ingredient->data != NULL) && (ingredient->dataLen > 0))
490 #ifndef NO_SCREEN_UPDATE_ON_SYNC 519 static void MHEG5ingredientContentRetrieved(
void *userData,
S_CONTENT *content )
527 TRACE(TERROR, (
" Null pointer to Ingredient"))
533 assert(ingredient->
root.
id);
534 if (ingredient->
root.
id == 0)
537 TRACE(TERROR, (
" Null object: %p", ingredient))
543 MHEG5ingredientContentPrepareAsync( ingredient, content );
556 static
void MHEG5ingredientContentRetrievalFail(
void *userData )
564 TRACE(TERROR, (
" No object %p", userData))
568 TRACE(TFILE, (
" No content: id=%ld", ingredient->
root.
id))
583 if (((
MHEG5Root *)ingredient)->runningStatus)
590 MHEG5contentFree(ingredient);
596 ((
MHEG5Font *)ingredient)->mg_fnt_index = 0;
600 if (((
MHEG5Root *) ingredient)->runningStatus)
697 #ifndef MHEG5PROFILE_UK1_06 725 CALL_PRINT((
">> MHEG5ingredientPrepare(%p)\n", ingredient));
746 if (MHEG5canHaveContent(ingredient))
774 CALL_PRINT((
">> MHEG5ingredientContentPrepare(%p)\n", ingredient));
778 MHEG5updateContentHook(ingredient);
789 MHEG5ingredientContentPrepareAsync( ingredient, &content );
794 INFO_PRINT((
"MHEG5ingredientContentPrepare referenced content\n"));
824 MHEG5ingredientContentRetrieved,
825 MHEG5ingredientContentRetrievalFail );
830 TRACE(TERROR, (
"referenced content, but len is zero: id=%ld", ingredient->
root.
id))
833 CALL_PRINT((
"<< MHEG5ingredientContentPrepare\n"));
854 if (MHEG5canHaveContent(ingredient))
860 MHEG5contentFree(ingredient);
947 TRACE(TERROR, (
"err wrong no param"))
955 TRACE(TERROR, (
"err wrong class=%d", target->
clazz))
963 TRACE(TERROR, (
"err wrong param"))
1010 if (mheg_trace_debug & (TACTIONS | TFILE))
1012 DBG_PRINTF(T_NL
"SetData( %ld, %s=\"%s\" )", target->
id, (referenced) ?
"Ref" :
"Txt", newRef.
data);
1016 #ifndef MHEG5PROFILE_UK1 1035 multiplexItem = ((
MHEG5Stream *)target)->multiplex;
1037 while (*multiplexItem)
1039 if ((*multiplexItem)->root.clazz ==
MHEG5VIDEO)
1107 MHEG5Root *cloneRefVar = 0, *newItem = 0;
1124 switch (target->
clazz)
1136 ERROR_PRINT((
"ERROR: Clone not supported by this engine for class %d\n", target->
clazz));
1151 if (newItem != NULL)
1153 newId += target->
id;
1162 newItem->id = newId;
1171 switch (newItem->clazz)
1211 switch (target->
clazz)
1264 #ifndef MHEG5PROFILE_UK1_06 1330 TRACE(TERROR, (
"**** object still running! id=%d ****", target->
id))
1339 TRACE(TSTATE, (
"cloned id=%d", target->
id))
1343 switch (target->
clazz)
1355 TRACE(TERROR, (
"Unrecognised cloned class %d", target->
clazz));
1364 TRACE(TERROR, (
"*** unload on App/Scene %d ***", target->
clazz))
MHEG5Bool availabilityStatus
void MHEG5refreshStreamObject(MHEG5Stream *stream)
Refresh the DSM-CC Stream Object for a given MHEG-5 Stream Object.
Implement the MHEG5 Palette Class Palette Class Defines a class to represent a colour look-up table...
void MHEG5textClearTextData(MHEG5Text *text)
Clear text data.
MHEG5ErrorCode MHEG5unload(MHEG5Root *target, MHEG5GList *params)
Implementation of the Unload action Unload Destroys an Ingredient and provides a hint to the MHEG-5 e...
void MHEG5finalDestruct(MHEG5Root *item)
<Function description>="">
Implement the MHEG5 Hypertext Class. The HyperText class is a subclass of the Text class...
void MHEG5rootClone(MHEG5Root *destination, MHEG5Root *source)
Implementation of the root part of the Close action.
void MHEG5ingredientActivate(MHEG5Ingredient *ingredient)
Implementation of Activate behaviour Inherrited from Root class.
Distributor for Prepare, Destruct, Activate, Deactivate and Clone calls. Distribute the +Prepare +Des...
MHEG5Ingredient ingredient
Implementation of the RTGraphics class Description Defines the attributes and behaviour of non-persis...
Implement the MHEG5 Dynamiclineart Class Defines means to dynamically draw vectorial graphical object...
void MHEG5StreamerPrepare(MHEG5Stream *stream)
Prepare for retrieval of a stream from the IP connection.
Implementation of the Ingredient class.
void MHEG5requestDisplayUpdate(void)
Request display update at the end of synchronous event processing.
void MHEG5octetStringVariablePrepare(MHEG5OctetStringVariable *variable)
Sets all internal attributes for the specified object to their default values.
void MHEG5contentVariablePrepare(MHEG5ContentVariable *variable)
Sets all internal attributes for the specified object to their default values.
void MHEG5ingredientInit(MHEG5Ingredient *ingredient)
Initialise a ingredient object with default values.
void MHEG5cursorShapePrepare(MHEG5CursorShape *cursorShape)
Apply the preparation behaviour of the cursorshape class Apply the preparation behaviour of the curso...
void MHEG5booleanVariablePrepare(MHEG5BooleanVariable *variable)
Sets all internal attributes for the specified object to their default values.
void MHEG5finalDeactivate(MHEG5Root *item)
BOOLEAN MHEG5FileOrmIsReset(MHEG5FileOrmResetMode *resetMode)
Tell whether the ORM module is currently being reset. If it is, the function also returns the current...
Implementation of the Video class Description Defines the attributes and behaviour of an elementary v...
void MHEG5rootDestruct(MHEG5Root *root)
Implementation of the Destruction behaviour Destruction This behaviour has the basic semantics of ask...
MHEG5Root * MHEG5findObject(MH5GroupRef gid, MHEG5Int id)
#define CHOOK_STREAM_NORMAL
void MHEG5ingredientContentPrepare(MHEG5Ingredient *ingredient)
Implementation of the ContentPrepare behaviour COR.1 6.6: ContentPreparation Apply the following sequ...
void MHEG5textUtf16Content(MHEG5Text *text, unsigned char *data, int len)
Content for Text objects is encoded using UTF16.
Implement the MHEG5 Cursorshape Class Defines encapsulation for the data structures used to represent...
MHEG5GList * MHEG5resolveGenericInteger(MHEG5GList *params, MHEG5Int *value)
void MG_FontFreeFile(S16BIT font_index)
free memory associated with file
Implement the MHEG5 Stream Class Stream Class Defines the behaviour of a composition of continuous me...
MHEG5Int interchangedProgramContentHook
Implement the MHEG5 Program Class Defines means to handle execution of external pieces of procedural ...
#define CHOOK_BITMAP_NORMAL_IFRAME
void MG_DrawJpg(void *data, int len, MHEG5Visible *visible)
Implement the MHEG5 Hotspot Class. Defines invisible unlabelled rectangular areas on the screen that ...
Stream event subscription management.
void MG_FreeData(void *data)
free surface buffer
union sMH5GroupRef::@5 ptr
void MHEG5hyperTextInitCurrentLink(MHEG5Hypertext *hypertext)
void MHEG5objRefStoreValue(MHEG5ObjectRefVariable *objRef, MH5GroupRef ref, MHEG5Int id)
MHEG5Int lineArtContentHook
void * MHEG5FileOrmGet(MHEG5String name, U16BIT priority, void *userData, F_CB_Good cbGood, F_CB_Fail cbFail)
Get a file. The file will be loaded and one of the callback functions called when request is resolved...
MHEG5ErrorCode MHEG5clone(MHEG5Root *target, MHEG5GList *params)
Implementation of the Clone action Clone (CloneRefVar) If the engine supports the Cloning option the ...
MHEG5ErrorCode MHEG5preload(MHEG5Root *target, MHEG5GList *params)
Implementation of the Preload action Preload Prepares an Ingredient and provides a hint to the MHEG-5...
MHEG5Int counterEndPosition
void MHEG5tokenGroupPrepare(MHEG5TokenGroup *tokenGroup)
MHEG5Rectangle * MHEG5rectangleClone(MHEG5Rectangle *source)
<Function description>="">
MHEG5String MHEG5stringCopy(MHEG5String source)
<Function description>="">
#define FRP_CACHE_DEFAULT
Implement the MHEG5 Slider Class. Slider Class. Defines the behaviour of sliders. Base class: Visible...
void MHEG5textPrepare(MHEG5Text *text)
Apply the preparation behaviour of the text class Apply the preparation behaviour of the text class...
void MG_DrawPng(void *data, int len, MHEG5Visible *visible)
void MHEG5streamContentAdapt(MHEG5Stream *stream, S_CONTENT *content)
Adapt new content for Stream objects. Content is either a DSM-CC stream object, a DVB URL or an MPEG2...
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
void MHEG5linkPrepare(MHEG5Link *link)
void MHEG5stringDestruct(MHEG5String *item)
Destruct a MHEG5String.
#define CHOOK_BITMAP_H264_IFRAME
void MHEG5objectRefVariablePrepare(MHEG5ObjectRefVariable *variable)
Sets all internal attributes for the specified object to their default values.
Implement the MHEG5 ListGroup Class Defines the location of list elements on the screen and theire in...
void MHEG5integerVariablePrepare(MHEG5IntegerVariable *variable)
Sets all internal attributes for the specified object to their default values.
void MHEG5FileOrmClear(void *orm_ref)
Aborts a request for file.
MHEG5GList * MHEG5resolveGenericCRef(MHEG5GList *params, MHEG5String *data, MHEG5Bool *referenced, MHEG5Bool *valid)
void MHEG5dynamicLineartPrepare(MHEG5DynamicLineart *dynamicLineart)
Apply the preparation behaviour of the dynamiclineart class Apply the preparation behaviour of the dy...
void MHEG5videoPrepare(MHEG5Video *video)
Apply the preparation behaviour of the video class As this class has no own preparation behaviour thi...
This file defines the profile for the MHEG engine.
#define CHOOK_FONT_TRUE_TYPE
void MHEG5rootPrepare(MHEG5Root *root)
Implementation of the Preparation behaviour Preparation This behaviour has the basic semantics of all...
#define MHEG5displayRedraw(v)
void MHEG5hotspotPrepare(MHEG5Hotspot *hotspot)
MHEG5Bool MHEG5visibleIs(MHEG5Root *target)
<Function description>="">
void MHEG5textUtf8Content(MHEG5Text *text, unsigned char *data, int len)
Adapt new content for Text objects. Content is encoded using UTF8 - this is converted to 16 bit unico...
void MHEG5sliderPrepare(MHEG5Slider *slider)
Apply the preparation behaviour of the slider class Apply the preparation behaviour of the slider cla...
void MHEG5groupDelItem(MHEG5Group *group, MHEG5Ingredient *item)
Delete Item from the List.
void MHEG5rectangleFree(MHEG5Rectangle *rectangle)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void MHEG5rtgraphicsPrepare(MHEG5RTGraphics *rtgraphics)
Apply the preparation behaviour of the RTGraphics class As this class has no own preparation behaviou...
MHEG5ErrorCode MHEG5setData(MHEG5Root *target, MHEG5GList *params)
Implementation of SetData action SetData (NewContent) Set the Content attribute of the target Ingredi...
Implement the MHEG5 Font Class Font Class Defines a class to represent a character font used for rend...
void MHEG5rootDeactivate(MHEG5Root *root)
Implementation of the Deactivation behaviour Deactivation This behaviour has the basic semantics of n...
void MHEG5displayIFrameStart(MHEG5Bitmap *bitmap)
Start displaying an I-Frame.
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
Implement the MHEG5 Visible Class Defines the behaviour of Presentables that have a visual representa...
void MHEG5ingredientClone(MHEG5Ingredient *destination, MHEG5Ingredient *source)
Implementation of the ingredient part of the clone action.
void MHEG5streamPrepare(MHEG5Stream *stream)
Apply the preparation behaviour of the stream class.
void MHEG5ingredientDeactivate(MHEG5Ingredient *ingredient)
Implementation of Deactivate behaviour Inherrited from Root class.
void MHEG5displayStreamPlay(MHEG5Stream *stream)
Begin playback of all active components in the specifed stream object.
void MHEG5bitmapFree(MHEG5Bitmap *bitmap)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
MHEG5Int bitmapContentHook
MHEG5Bool initiallyStopped
MHEG5Text * MHEG5textClone(MHEG5Text *source)
Copy a text object with original values.
Implement functions to retrieve MHEG5objects by GroupID and ID.
void MHEG5palettePrepare(MHEG5Palette *palette)
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.
Implementation of the MHEG5 Scene Class Scene Class Defines a set of Ingredient objects to be activat...
Mheg5 logging and debug printing.
MHEG class interface to graphics text render.
Font file handling with the Freetype.
void MHEG5groupAddItem(MHEG5Group *group, MHEG5Ingredient *item)
Add an Item to the List.
void MHEG5rectanglePrepare(MHEG5Rectangle *rectangle)
File interface functions to DSMCC component.
void MHEG5fontRefreshTexts(MHEG5Font *font)
Refresh Text objects that reference this Font object. This function may be called after the font has ...
void MHEG5sendEvent(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the asynchronous event queue.
void MHEG5rootInit(MHEG5Root *root)
Initialise a Root object with default values.
void MHEG5listGroupPrepare(MHEG5ListGroup *listGroup)
Implementation of the ListGroup Preparation behaviour.
void MHEG5fontPrepare(MHEG5Font *font)
S16BIT MG_FontLoadFile(const U8BIT *data, U32BIT length)
Load font data file into memory for freetype.
union sMHEG5ContentBody::@2 ref
void MHEG5rootActivate(MHEG5Root *root)
Implementation of the Activation behaviour Activation This behaviour has the basic semantics of immed...
MHEG5ContentBody originalContent
void MHEG5hypertextPrepare(MHEG5Hypertext *hypertext)
void MHEG5audioPrepare(MHEG5Audio *audio)
Apply the preparation behaviour off the audio class Apply the preparation behaviour off the audio cla...
void MHEG5streamContentClear(MHEG5Stream *stream)
Clear content for Stream objects.
void MHEG5ingredientDestruct(MHEG5Ingredient *ingredient)
Implementation of the Destruction behaviour Execute the following sequence of actions: ...
MHEG5GList * MHEG5resolveORef(MHEG5GList *params, MHEG5Root **object)
#define INVALID_MG_FNT_INDEX
void MHEG5lineartPrepare(MHEG5Lineart *lineart)
Implement the MHEG5 Audio Class Audio Class Defines the attributes and behaviour of an elementary aud...
MHEG5Int streamContentHook
void MHEG5textFree(MHEG5Text *text)
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 MHEG5ingredientPrepare(MHEG5Ingredient *ingredient)
Implementation of the Preparation behaviour Inherrited from Root class.
void MHEG5bitmapPrepare(MHEG5Bitmap *bitmap)
Apply the preparation behaviour of the bitmap class. As this class has no own preparation behaviour t...
#define MHEG5CHOOK_UNDEFINED
void MHEG5ingredientFree(MHEG5Ingredient *ingredient)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void MHEG5displayStreamStop(MHEG5Stream *stream)
Stops playback of all active component of the specified stream object.
void MHEG5rootFree(MHEG5Root *root)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void MHEG5programPrepare(MHEG5Program *program)
MHEG5Bitmap * MHEG5bitmapClone(MHEG5Bitmap *source)
Copy a bitmap object with original values.
Implement the MHEG5 EntryField Class. Defines an interaction widget used by the final user to edit an...
MHEG5Application * MHEG5getCurrentApplication(void)
<Function description>="">
void MHEG5entryfieldPrepare(MHEG5Entryfield *entryfield)
Apply the preparation behaviour of the entryfield class Apply the preparation behaviour of the entryf...