57 #include "dsm_control.h" 68 #ifdef INCLUDE_FREESAT 69 #error Cannot define INCLUDE_NVM and INCLUDE_FREESAT in the same build 72 #define WRITE_BUFFER_MAX (64 * 1024) 74 #elif defined(INCLUDE_FREESAT) 75 #define WRITE_BUFFER_MAX (64 * 1024) 79 #define WRITE_BUFFER_MAX (2 * 1024) 83 #include "asn1_testHarness.h" 107 { 6, (
U8BIT *)
"DSM://" },
108 { 5, (
U8BIT *)
"CI://" },
109 { 9, (
U8BIT *)
"hybrid://" }
114 static void *BootupFileOrmHandle = NULL;
123 static U16BIT applStackCount = 0;
131 int mheg_trace_source = 1;
144 MHEG_PRINT(out,
":Font ");
155 MHEG_PRINT(out,
", ");
175 int save_indent = MHEG5setIndent(0);
178 STB_DebugLogOpen(path.
data);
182 MHEG5groupPrint(&application->
group, out);
188 MHEG_PRINT(out,
":OnSpawnCloseDown ");
195 MHEG_PRINT(out,
":OnRestart ");
196 MHEG5actionPrint(application->
onRestart, out);
203 MHEG_PRINT(out,
":CharacterSet ");
210 MHEG_PRINT(out,
":BackgroundColour ");
216 MHEG_PRINT(out,
":TextColour ");
217 MHEG5colourPrint(application->
textColour, out);
220 MHEG5fontBodyPrint(application->
fontBody, out);
223 MHEG_PRINT(out,
":FontAttributes ");
228 MHEG_PRINT(out,
":BitmapCHook ");
235 MHEG_PRINT(out,
":StreamCHook: ");
242 MHEG_PRINT(out,
":TextCHook: ");
249 MHEG_PRINT(out,
":lineArtCHook: ");
276 MHEG_PRINT(out,
"}");
280 MHEG5setIndent(save_indent);
285 static void MHEG5unloadApp(
void)
289 H_ObjCarousel carousel;
294 assert( applStackCount != 0 );
300 assert( DSMCC_CurrentCarousel(dsmcc) == carousel );
304 TRACE(TFILE, (
"crsl_hdl=%p stk=%d name=%s", carousel, applStackCount, applStack[applStackCount].
app_name.
data))
306 for (sp = 0; sp != applStackCount; sp++)
317 TRACE(TFILE, (
"unload crsl_hdl=%p", carousel))
319 DSMCC_UnloadCarousel( dsmcc, carousel, RST_MODE_FORCE );
332 DSMCC_SetCurrentCarousel( dsmcc, applStack[applStackCount].
carousel_handle );
342 while (sp != applStackCount)
347 for (i = sp; i != applStackCount; i++)
349 applStack[i] = applStack[i + 1];
364 if (currentApplication != NULL && !isNdt)
373 TRACE(TFILE | TTUNE, (
"****** app name len=%d Carousel=%p *******",
389 H_ObjCarousel carousel;
390 E_DsmRstMode mode = (isNdt) ? RST_MODE_PENDING : RST_MODE_FORCE;
393 TRACE(TFILE | TTUNE, (
"clearing app stack cnt=%d isNdt=%d", applStackCount, isNdt))
394 appstr = applStack[applStackCount].
app_name;
398 asc = (int)applStackCount;
423 currentApplication = 0;
461 while (actions.
total != 0)
494 return currentApplication;
509 static void MHEG5applicationRetrieved(
void *userData,
S_CONTENT *content )
516 TRACE(TMHBOOT | TFILE | TEVNTS, (
"(%.*s)", (
int)launchAppName.
len, launchAppName.
data))
518 if (userData == NULL)
527 assert( content->
data );
540 TRACE(TFILE, (
"Got App (datalen=%ld)", (
long)content->
size))
543 if (*(content->
data) == 0xA0)
547 if (launchAppName.
len >= 5)
549 if (memcmp(launchAppName.
data,
"CI://", 5) == 0)
559 if (mheg_trace_source)
560 MHEG5applicationPrint(newApplication, 0);
565 TRACE(TERROR, (
"This application is Text, and not ASN1 encoded!"))
566 newApplication = NULL;
571 TRACE(TERROR, (
"Failed to parse application (%.*s)", (
int)launchAppName.
len, launchAppName.
data))
578 if (currentApplication)
580 if ((applStackCount > 0) && (applStack[applStackCount].
spawned))
599 application = currentApplication;
600 if (application == NULL)
602 if (!Restarted && currentApplication == NULL)
610 if (applStackCount != 0 &&
611 (applStack[applStackCount].
spawned) &&
626 if (applStackCount != 0 && applStack[applStackCount].
spawned)
637 applStack[applStackCount].
app_name = launchAppName;
659 if (application != 0)
666 TRACE((TFILE | TPERFORM | TMEMORY), (
"Stopped any App"))
679 currentApplication = newApplication;
689 TRACE((TFILE | TPERFORM), (
"Running App"))
691 TRACE((TFILE | TPERFORM), (
"Started App"))
695 launchAppName.
len = 0;
696 launchAppName.
data = 0;
697 BootupFileOrmHandle = NULL;
726 if (!currentApplication)
760 if (!currentApplication)
765 while (s && (s->
item != visible))
785 CALL_PRINT((
">> MHEG5displayStackAdd(%p %d)\n", visible, atTop));
797 if (!currentApplication)
799 WARNING_PRINT((
"MHEG5displayStackAdd : currentApplication == Null\n"));
807 if (s->
item == visible)
809 DEBUG_PRINT((
"MHEG5displayStackAdd : Item already in display stack\n"));
818 ERROR_PRINT((
"MHEG5displayStackAdd : MHEG5getMem failed\n"));
868 CALL_PRINT((
">> MHEG5displayStackDelete(%p)\n", visible));
871 if (!currentApplication)
873 WARNING_PRINT((
"MHEG5displayStackDelete : currentApplication == Null\n"));
874 CALL_PRINT((
"<< MHEG5displayStackDelete MHEG5FALSE\n"));
881 if (s->
item == visible)
900 CALL_PRINT((
"<< MHEG5displayStackDelete MHEG5TRUE\n"));
906 CALL_PRINT((
"<< MHEG5displayStackDelete MHEG5FALSE\n"));
918 CALL_PRINT((
">> MHEG5displayStackToTop(%p)\n", visible));
936 CALL_PRINT((
">> MHEG5displayStackToBottom(%p)\n", visible));
943 CALL_PRINT((
"<< MHEG5displayStackToBottom\n"));
957 CALL_PRINT((
">> MHEG5displayStackPutBefore(%p, %p)\n", target, refVisible));
962 if (!currentApplication)
964 WARNING_PRINT((
"MHEG5displayStackPutBefore : currentApplication == Null\n"));
965 CALL_PRINT((
"<< MHEG5displayStackPutBefore\n"));
968 if (target == refVisible)
970 WARNING_PRINT((
"MHEG5displayStackPutBefore : target == refVisible\n"));
971 CALL_PRINT((
"<< MHEG5displayStackPutBefore\n"));
978 CALL_PRINT((
"<< MHEG5displayStackPutBefore\n"));
987 if (w->
item == refVisible)
1007 CALL_PRINT((
"<< MHEG5displayStackPutBefore\n"));
1016 WARNING_PRINT((
"MHEG5displayStackPutBefore : Unable to find refVisible in display stack\n"));
1017 CALL_PRINT((
"<< MHEG5displayStackPutBefore\n"));
1031 CALL_PRINT((
">> MHEG5displayStackPutBehind(%p, %p)\n", target, refVisible));
1035 if (!currentApplication)
1037 WARNING_PRINT((
"MHEG5displayStackPutBehind : currentApplication == Null\n"));
1038 CALL_PRINT((
"<< MHEG5displayStackPutBehind\n"));
1041 if (target == refVisible)
1043 WARNING_PRINT((
"MHEG5displayStackPutBehind : target == refVisible\n"));
1044 CALL_PRINT((
"<< MHEG5displayStackPutBehind\n"));
1051 CALL_PRINT((
"<< MHEG5displayStackPutBehind\n"));
1060 if (w->
item == refVisible)
1080 CALL_PRINT((
"<< MHEG5displayStackPutBehind\n"));
1089 WARNING_PRINT((
"MHEG5displayStackPutBehind : Unable to find refVisible in display stack\n"));
1090 CALL_PRINT((
"<< MHEG5displayStackPutBehind\n"));
1100 assert(application);
1130 assert(application);
1167 #ifndef MHEG5PROFILE_UK1_06 1171 assert(application);
1182 TRACE(TEVNTS, (
"onRestart %p, %p", application, application->
onRestart))
1205 if (!((
MHEG5Stream *)item)->multiplex[mcnt]->initiallyStopped)
1207 switch (((
MHEG5Stream *)item)->multiplex[mcnt]->root.clazz)
1217 #ifndef MHEG5PROFILE_UK1_06 1224 ERROR_PRINT((
"ERROR: Unexpected object in stream multiplex\n"));
1250 #ifndef MHEG5PROFILE_UK1_06 1251 if (!foundRTGraphics)
1279 #if defined(INCLUDE_CI_PLUS) 1292 if (application == currentApplication)
1294 currentApplication = 0;
1327 if ((Restarted) && (currentApplication->
onRestart.
a_ptr != NULL))
1329 TRACE(TEVNTS, (
"onRestart %p, %p", currentApplication, currentApplication->
onRestart))
1346 assert(application);
1351 MHEG5LogPrintf(MHEG5CALLS,
"App Deactivate ");
1352 MHEG5LogPrintObjectPtr(MHEG5CALLS, (
MHEG5Root *) application);
1353 MHEG5LogPrintf(MHEG5CALLS,
"\n");
1385 U32BIT buffer_length = 0;
1386 #ifdef INCLUDE_FREESAT 1392 if (target != (
MHEG5Root *) currentApplication)
1421 lastParam = thirdParam;
1422 while (lastParam->
next)
1424 lastParam = lastParam->
next;
1430 if ((invalidString) || (fn.
len == 0))
1435 thirdParam = thirdParam->
next;
1436 #ifdef INCLUDE_FREESAT 1438 fn.
len >= 6 && memcmp(fn.
data,
"nvm://", 6) == 0)
1460 nextParam = thirdParam;
1468 buffer_length += storageSizeForVariable((
MHEG5Ingredient *)peek_param);
1490 if (fn.
len > 6 && memcmp(fn.
data,
"ram://", 6) == 0)
1497 fn.
len >= 6 && memcmp(fn.
data,
"nvm://", 6) == 0)
1505 else if (fn.
len >= 6 && memcmp(fn.
data,
"pst://", 6) == 0)
1513 #ifdef INCLUDE_FREESAT 1515 fn.
len >= 6 && memcmp(fn.
data,
"nvm://", 6) == 0)
1557 #ifdef INCLUDE_FREESAT 1564 if (target != (
MHEG5Root *) currentApplication)
1589 thirdParam = thirdParam->
next;
1596 lastParam = thirdParam;
1597 while (lastParam->
next)
1599 lastParam = lastParam->
next;
1605 if ((invalidString) || (fn.
len == 0))
1611 if (fn.
len > 6 && memcmp(fn.
data,
"ram://", 6) == 0)
1617 fn.
len >= 6 && memcmp(fn.
data,
"nvm://", 6) == 0)
1623 #ifdef INCLUDE_FREESAT 1625 fn.
len >= 6 && memcmp(fn.
data,
"nvm://", 6) == 0)
1628 short_fn.
len = fn.
len - 6;
1629 getSuccess =
MHEG5FSnvmRead(short_fn, (
void **) &buf, &len, &expires, &priority);
1633 else if (fn.
len >= 6 && memcmp(fn.
data,
"pst://", 6) == 0)
1646 #ifdef INCLUDE_FREESAT 1648 fn.
len >= 6 && memcmp(fn.
data,
"nvm://", 6) == 0)
1697 static void MHEG5applicationRetrieveFail(
void *userData )
1703 if (currentApplication)
1709 TRACE(TERROR, (
"%d, Failed to retrieve App %.*s", applStackCount, (
int)launchAppName.
len, launchAppName.
data))
1711 assert( launchAppName.
len );
1713 if (applStackCount == 0)
1717 #ifndef CI_PLUS_ONLY 1728 else if (applStack[applStackCount].
spawned)
1741 static void MHEG5applicationBootFail(
void *userData )
1747 TRACE(TMHBOOT, (
"%d, Failed to retrieve App %.*s", applStackCount, (
int)launchAppName.
len, launchAppName.
data))
1749 assert( pBootData );
1750 assert( launchAppName.
len );
1751 assert( currentApplication == NULL );
1752 assert( applStackCount == 0 );
1753 assert( pBootData->
origin < 3 );
1757 case 0: launchAppName.
len = oldName.
len + 2;
break;
1758 case 1: launchAppName.
len = oldName.
len + 6;
break;
1759 case 2: launchAppName.
len = boot_origins[pBootData->
origin].
len + 1;
break;
1760 case 3: launchAppName.
len = boot_origins[pBootData->
origin].
len + 7;
break;
1761 default: launchAppName.
len = 0;
1763 if (launchAppName.
len)
1766 if (launchAppName.
data == 0)
1768 TRACE(TERROR, (
"Out of Memory"))
1769 launchAppName.
len = 0;
1777 memcpy(launchAppName.
data, oldName.
data, oldName.
len);
1778 launchAppName.
data[oldName.
len] =
'/';
1779 launchAppName.
data[oldName.
len + 1] =
'a';
1783 memcpy(launchAppName.
data, oldName.
data, oldName.
len);
1784 launchAppName.
data[oldName.
len - 1] =
'\0';
1785 strcat((
char *)launchAppName.
data,
"startup");
1789 strcpy((
char *)launchAppName.
data, (
char *)boot_origins[pBootData->
origin].
data );
1790 strcat((
char *)launchAppName.
data,
"a");
1794 strcpy((
char *)launchAppName.
data, (
char *)boot_origins[pBootData->
origin].
data );
1795 strcat((
char *)launchAppName.
data,
"startup");
1806 (
void *)pBootData, MHEG5applicationRetrieved, MHEG5applicationBootFail );
1814 BootupFileOrmHandle = NULL;
1831 TRACE((TFILE | TPERFORM), (
"Launch App %.*s", (
int)gname.
len, gname.
data))
1835 assert( launchAppName.
len == 0 );
1839 if (launchAppName.
len == 0)
1841 ERROR_PRINT((
"ERROR: MHEG5Applaunch - failed to resolve path\n"));
1842 if (currentApplication != NULL)
1851 assert( launchAppName.
data );
1859 TRACE(TFILE | TEVNTS, (
"(%.*s)", (
int)launchAppName.
len, launchAppName.
data))
1865 NULL, MHEG5applicationRetrieved, MHEG5applicationRetrieveFail );
1896 assert( currentApplication == NULL );
1898 if (currentApplication != NULL)
1905 if ((app_name == NULL) || (strlen(app_name) == 0))
1919 launchAppName.
len = boot_origins[BootData.
origin].
len + 1;
1922 if (launchAppName.
data == 0)
1924 TRACE(TERROR, (
"Out of Memory"))
1925 launchAppName.
len = 0;
1929 strcpy((
char *)launchAppName.
data, (
char *)boot_origins[BootData.
origin].
data );
1930 strcat((
char *)launchAppName.
data,
"a" );
1937 while (app_name[name.
len] !=
'\0')
1939 if (app_name[name.
len] ==
'\\')
1941 app_name[name.
len] =
'/';
1947 while (name.
len != 0 && app_name[name.
len - 1] ==
'/')
1950 app_name[name.
len] =
'\0';
1957 if (launchAppName.
len != 0)
1970 TRACE(TMHBOOT | TFILE, (
"(%.*s)", (
int)launchAppName.
len, launchAppName.
data))
1971 if (launchAppName.
len)
1975 &BootData, MHEG5applicationRetrieved, MHEG5applicationBootFail );
1991 if (BootupFileOrmHandle != NULL)
2030 ClearGroupTargets(application->
onRestart, group);
2075 if ((
id != 0) || (gref.
len == 0))
2077 ERROR_PRINT((
"ERROR: MHEG5launch - id not zero (%ld) or name len zero (%ld)\n",
id, gref.
len));
2083 WARNING_PRINT((
"MHEG5launch - abort, application already active\n"));
2091 TRACE((TFILE | TPERFORM), (
"launch app %.*s id=%ld", (
int)name.
len, name.
data,
id))
2112 if (applStackCount < (
MAX_APPS - 1))
2149 if (target != (
MHEG5Root *) currentApplication)
2186 application = currentApplication;
2187 if (application != 0)
2197 currentApplication = NULL;
2200 #ifdef MHG_TRACK_MEM 2202 TRACE(TMEMORY, (
"quit app done"))
2203 mh5emt_print(1 << SRCMEM_APP);
2212 if (applStackCount != 0)
2221 TRACE(TFILE, (
"relaunching App"))
2223 launchAppName = applStack[applStackCount].
app_name;
2229 MHEG5applicationRetrieved, MHEG5applicationRetrieveFail );
2234 TRACE(TFILE, (
"Restart Boot App"))
2267 if (target != (
MHEG5Root *) currentApplication)
2301 if (target != (
MHEG5Root *) currentApplication)
2318 #ifndef MHEG5PROFILE_UK1_06 2392 MHEG5ErrorCode MHEG5getEngineSupport(MHEG5Root *target, MHEG5GList *params) 2401 if (target != (
MHEG5Root *) currentApplication)
2429 if (feature.
len < 3)
2457 if (target != (
MHEG5Root *) currentApplication)
MHEG5Bool availabilityStatus
void MH5_SetCurrentProfile(E_ProfileId profile)
Set current profile - CI plus or broadcast (Could extend this fnc to distuinguish between UK/HK/NZ/AU...
Implement MHEG5 engine control functions (i.e. start/stop etc)
MHEG5ActionList onRestart
BOOLEAN MH5GlueActiveState(void)
#define DEFAULTDESKTOPCOLOUR
void MHEG5sceneDestruct(MHEG5Scene *scene)
Destruct a scene object.
MHEG5String fontAttributes
void MHEG5groupDestruct(MHEG5Group *group)
Implementation of the Destruction behaviour Destruction.
MHEG5Bool MHEG5storageRead(MHEG5String fn, void **buf, MHEG5Int *len)
Read a file from the persistent store.
MHEG5Bool MHEG5sameGroup(MH5GroupPtr gptr, MH5GroupRef gref)
Compares group ptr with group ref to see whether they both reference the same group. The first is pointer to group, the second can be a relative group name and will be converted to absolute prior to the comparison, so two different references that resolve to reference the same group name produces a True return value.
void MHEG5applicationBootAbort(void)
Aborts launch of Boot Application.
MHEG5Int MHEG5variableStore(MHEG5Ingredient *v, void *buf, MHEG5Int bufLen)
This functions stores the value of a variable in the persistant storage. Implementation of the StoreP...
Interface functions to DSM-CC instance for MHEG5.
void MHEG5applicationStackClear(BOOLEAN isNdt)
void MHEG5applicationClearGroupTargets(MHEG5Application *application, MHEG5Group *group)
Clear targets of actions if they are ingredients of the given group.
struct sMHEG5Ingredient * next
MHEG5ErrorCode MHEG5readPersistent(MHEG5Root *target, MHEG5GList *params)
Implementation of the ReadPersistent (ReadSucceded, OutVariables, InFileName) action from the applica...
void MHEG5queueEvents(void)
Allow future events to be stored in the event queues. See also MHEG5stopEventsAndQueueReset.
MHEG5ErrorCode MHEG5unlockScreen(MHEG5Root *target, MHEG5GList *params)
Impelemtation of the UnlockScreen action of the application class This action may refresh the display...
MHEG5DisplayStackItem * displayStackTop
True Persistent Storage functions.
void MHEG5sceneFree(MHEG5Scene *scene)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
void MHEG5actionListExecute(MHEG5Group *source, MHEG5ActionList actions)
Execute the supplied list of actions immediately. The actions will have been executed by the time the...
void MHEG5applicationResolveTargets(MHEG5Application *application)
Resolve unresolved targets of actions in the application.
struct s_boot_data S_BOOT_DATA
void MHEG5SuppressMHEGGraphics(MHEG5Bool request)
Request that the external application toggles between showing MHEG graphics or subtitles This functio...
void MHEG5displayUpdate(void)
Update the display, redrawing any visible objects that are in the dirty rectangle.
MHEG5Application * asn1_parseApplication(unsigned char *asnData, unsigned long dataLength)
Top level ASN.1 parser interface function. Creates and fills a MHEG5Application object from a char ar...
MHEG5Colour desktopColour
#define DEFAULTHIGHLIGHTCOLOR
void MHEG5groupInit(MHEG5Group *group)
Initialise an Group object with default Values.
MHEG5Bool MHEG5TpsWrite(MHEG5String fn, void *data, MHEG5Int len)
Write data passed from the application into the TPS stroe.
void MHEG5TpsClose()
Close the clear the store and delete the cache none.
MHEG5ActionList onSpawnCloseDown
unsigned char * STR_DataAlloc(unsigned int size)
MHEG5ErrorCode MHEG5lockScreen(MHEG5Root *target, MHEG5GList *params)
Implementation of the LockScreen action of the application class Freeze the display screen and preven...
void MHEG5groupDeactivate(MHEG5Group *group)
Implementation of the Deactivation behaviour Deactivation If group is not active, ignore behaviour...
void MHEG5groupFree(MHEG5Group *group)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
struct sMHEG5DisplayStackItem * next
void MHEG5applicationInit(MHEG5Application *application)
Initialise an application object with default values. This function initialises an application object...
MHEG5Bool MHEG5nvmWrite(MHEG5String fn, void *buf, MHEG5Int len)
Write a file to the persistent store.
void MHEG5applicationFree(MHEG5Application *application)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
MHEG5Root * MHEG5displayStackGetVisible(MHEG5DisplayStackItem *item)
This function returns the visible at a specific display stack positon.
union sMH5GroupRef::@5 ptr
MHEG5Int MHEG5variableRead(MHEG5Ingredient *v, char *buf, MHEG5Int max_size)
This functions reads the value of a variable from the persistant storage. Implementation of the ReadP...
void MHEG5NotifyEngineStarted(void)
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...
void MHEG5genericCopy(MHEG5Generic *dest, MHEG5Generic *src)
Copy a MHEG5Generic.
void * MHEG5_DsmccInstance(void)
Get the DSMCC instance handle.
void MHEG5groupPrepare(MHEG5Group *group)
Implementation of the Preparation behaviour Preparation.
MHEG5Bool MHEG5storageWrite(MHEG5String fn, void *buf, MHEG5Int len)
Write a file to the persistent store.
MHEG5Bool MHEG5FSnvmWrite(MHEG5String fn, void *data, MHEG5Int len, MHEG5Int expires, MHEG5Int priority)
Interface functions for invoking the ASN.1 parser.
union MHEG5Generic::@6 value
void MHEG5applicationPrepare(MHEG5Application *application)
Apply the group preparation behaviour.
E_ProfileId MH5_GetCurrentProfile(void)
Get current profile - CI plus or broadcast.
void MHEG5FileOrmReset(MHEG5FileOrmResetMode resetMode)
Reset the ORM module. This function supports two modes:
#define FRP_CACHE_DEFAULT
MHEG5ActionList linkEffect
void MHEG5applicationDestruct(MHEG5Application *application)
Destruct an application object. This function destructs all parts of an application object...
MHEG5DisplayStackItem * MHEG5displayStackPrev(MHEG5DisplayStackItem *item)
This function returns a pointer to the previous item in the display stack. The input parameter is a D...
void MHEG5restoreReceiverDefaults(void)
Restore receiver defaults as described in section 3.12.10 of the 1.06 profile.
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
MHEG5ErrorCode MHEG5spawn(MHEG5Root *target, MHEG5GList *params)
Implementation of the Spawn action from the application class +Execute the OnSpawnCloseDown Action of...
MHEG5Bool streamContinuanceFlag
void MHEG5stringDestruct(MHEG5String *item)
Destruct a MHEG5String.
void MHEG5NotifyEngineQuit(void)
MHEG5Int MH5_MaxStorageFileLength(void)
Return maximum length of file for persistent storage depending on supported profiles (e...
void MHEG5stopEventsAndResetQueue(void)
Discard any pending events and actions and prevent future events from being queued. And reset queues. See also MHEG5queueEvents.
MHEG5Bool MHEG5displayStackDelete(MHEG5Root *visible)
This function removes the reference to a visible object from the display stack.
MHEG5Colour highlightRefColour
MHEG5ErrorCode MHEG5setDesktopColour(MHEG5Root *target, MHEG5GList *params)
Impelemtation of the SetDesktopColour action of the application class This action may refresh the dis...
void MHEG5displayVideoStop(void)
Stops playback of the video media decoder.
MHEG5Application * MHEG5getCurrentApplication(void)
Retrieve the current Application.
OSDColor OSDgetColour(const char *colour, int len)
Converts an MHEG5 colour value to an OSDColor type.
MHEG5ErrorCode MHEG5closeConnection(MHEG5Root *target, MHEG5GList *params)
Impelemtation of the CloseConnection(ConnectionTag) action of the application class |NOT IMPLEMENTED...
MHEG5Colour backgroundColour
void MHEG5applicationCarouselUnload(void *carousel, BOOLEAN isNdt)
#define DEFAULTSLIDERCOLOR
void MHEG5streamClearCurrentService(void)
Clear the current service.
MHEG5Colour sliderRefColour
void MHEG5FileOrmClear(void *orm_ref)
Aborts a request for file.
void MHEG5displayStackToBottom(MHEG5Root *visible)
Move a visible to the Bottom of the display stack.
Persistent storage module. The engine provides a persistent storage for 1024 bytes of data...
void MHEG5displayAudioStop(void)
Stops playback of the audio media decoder.
void MHEG5displayStackToTop(MHEG5Root *visible)
Move a Visible to the Top of the display stack.
void MHEG5ClearTlsCertStore(void)
Clear the TLS certificate store.
This file defines the profile for the MHEG engine.
MHEG5DisplayStackItem * MHEG5displayStackBottom(void)
This function returns a pointer to the DisplayStackItem at the Bottom of the Stack.
MHEG5GList * MHEG5resolveGenericOctetString(MHEG5GList *params, MHEG5String *value, MHEG5Bool *invalidString)
Resolve a parameter reference to a generic octet string. The reference can be either direct or indire...
void MHEG5StartReboot(void *dummy)
void MHEG5displayStackAdd(MHEG5Root *visible, MHEG5Bool atTop)
This function adds a visible to the display stack. The parameter atTop defines if the Visible is adde...
Implement Functions to support Service Gateways. Functions for standarizing several GroupIDs like +DS...
MHEG5Bool MHEG5TpsRead(MHEG5String fn, void **data, MHEG5Int *len)
Read a file from the TPS store and pass it back to the application.
MHEG5String MHEG5convertGIDGetOrigin(MHEG5String *inRef, E_FS_ORIGIN *pOrigin)
Convert a group ID from a relative reference to an absolute reference. See UK1.05 section 8...
#define MHEG5colourDestruct
void MHEG5setWorkingDir(MHEG5String source)
Set the working directory for the current application. This is used to resolve relative paths...
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
Functions relating to HTTPS Server Access.
union sMHEG5FontBody::@7 ref
MHEG5ErrorCode MHEG5quit(MHEG5Root *target, MHEG5GList *params)
Implementation of the Quit action from the application class Close an application and restart the pre...
MHEG5DisplayStackItem * displayStackBottom
void MHEG5ActivateCurrentApplication(void)
Apply the group activation behaviour.
void MHEG5displayStackPutBehind(MHEG5Root *target, MHEG5Root *refVisible)
Put a Visible exactly below another Visible in the display stack.
MHEG5Int bitmapContentHook
MHEG5Bool initiallyStopped
struct sMHEG5applStackItem MHEG5AppStackItem
void MHEG5displayStackPutBefore(MHEG5Root *target, MHEG5Root *refVisible)
Put a Visible exactly in front of another Visible in the display stack.
void MHEG5quitApp(void)
Close an application because of the Quit Application Event defined by DTG.
Implement functions to retrieve MHEG5objects by GroupID and ID.
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.
MHEG5Ingredient * itemHead
Mheg5 logging and debug printing.
MHEG5ErrorCode MHEG5storePersistent(MHEG5Root *target, MHEG5GList *params)
Implementation of the StorePersistent (StoreSucceeded, InVariables, OutFileName) action from the appl...
MHEG5Bool MH5_SupportMhegProfile(E_MHEG_PROFILE profile)
Return whether Mheg profile (UK, NZ, AU, HK, SA, FREESAT) is currently supported. ...
Persistent storage module. The engine provides a persistent storage for 1024 bytes of data...
MHEG5ErrorCode MHEG5openConnection(MHEG5Root *target, MHEG5GList *params)
Impelemtation of the OpenConnection (OpenSucceeded, Protocol, Address, ConnectionTag) action of the a...
File interface functions to DSMCC component.
MHEG5ErrorCode MHEG5launch(MHEG5Root *target, MHEG5GList *params)
MHEG5DisplayStackItem * MHEG5displayStackPrevVisible(MHEG5Root *visible)
This function returns a pointer to the previous item in the display stack. The input parameter is a V...
void MHEG5actionDestruct(MHEG5ActionList actions)
<Function description>="">
void MHEG5PopHybridFileSystem(void)
Clear the current hybrid file system and pop a stored hybrid file system from the stack...
void MHEG5displayLockStreams(void)
Lock streams, disallow any stream updates.
MHEG5ErrorCode MHEG5applicationLaunch(MHEG5String gname, MHEG5Int id)
Implementation of the Launch action from the application class Activate a new application by flushing...
MHEG5Scene * MHEG5getCurrentScene(void)
<Function description>="">
void MHEG5sendEvent(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the asynchronous event queue.
void MHEG5PushHybridFileSystem(void)
Push a copy of the current hybrid file system into the stack.
Functions relating to TLS certificate store.
MHEG5Bool MH5_SupportInteractionChannel(void)
Return whether Interaction channel is supported by current profile.
MHEG5Bool MHEG5FSnvmRead(MHEG5String fn, void **data, MHEG5Int *len, MHEG5Int *expires, MHEG5Int *priority)
MHEG5GList * origFirstParam
void MHEG5applicationNDTcarouselAttach(void *carousel)
void MHEG5queueResolveTargets(MHEG5ActionList actions)
Finds targets for the action list.
Definition of colour type for MHEG5 - settings and conversions.
#define USE_UNWANTED_PARAM(param)
void MHEG5displayShowAll(void)
Redisplay all active visible objects. AKD: Optimised 12/5/99.
MHEG5String MHEG5convertGID(MHEG5String *inRef)
Convert a group ID from a relative reference to an absolute reference. See UK1.05 section 8...
void MHEG5displayResetStreamDecoders(BOOLEAN update)
Reset all media decoders to default values. This is used when the MHEG-5 engine is terminated...
void MHEG5applicationDeactivate(MHEG5Application *application)
Apply the application deactivation behaviour +Apply the CloseConnection action to all opened auxiliar...
MHEG5GList * MHEG5resolveORef(MHEG5GList *params, MHEG5Root **object)
MHEG5GList * MHEG5resolveGenericGeneric(MHEG5GList *params, MHEG5Generic *value)
MHEG5ErrorCode MHEG5applicationBootup(char *app_name, BOOLEAN single)
Launches Boot Application according to name rules: This function will authenticate and resolve a file...
MHEG5Int streamContentHook
Implement generic MHEG5-display functions - independent from the OSD These are generic functions used...
void MHEG5displayRtgraphicsStop(void)
Stops playback of the RTGraphics (subtitle) media decoder.
void MHEG5NotifyEngineStartFailed(void)
MHEG5Colour buttonRefColour
void MHEG5enableEventProcessing(MHEG5Bool enable)
Enable or disable engine event processing. This function is used to implement the Call action for res...
struct sMHEG5GList * next
MHEG5Bool MHEG5nvmRead(MHEG5String fn, void **buf, MHEG5Int *len)
Read a file from the persistent store.
Functions relating to Hybrid file system.
void MHEG5displayClear(void)
<Function description>="">
#define DEFAULTBUTTONCOLOR
MHEG5GList * MHEG5resolveGenericORefProper(MHEG5GList *params, MH5GroupRef *pgroupRef, MHEG5Int *id)
Resolve a generic object reference, returning the object reference. The reference can be direct or in...
struct sMHEG5DisplayStackItem * prev
Engine support utility functions for MHEG5.
MHEG5Bool MH5_GetEngineSupport(MHEG5String feature)
Used by the GetEngineSupport action.
void MHEG5groupActivate(MHEG5Group *group)
Implementation of the Activation behaviour Activation.