175 #if defined(INCLUDE_MHEG_PVR) || defined(INCLUDE_PVR_AU) 180 #ifdef INCLUDE_SA_PROFILE 199 #ifdef INCLUDE_SI_EXTENSION 221 #if defined(INCLUDE_MHEG_PVR) || defined(INCLUDE_PVR_AU) 224 #if defined(INCLUDE_IC) && defined(INCLUDE_ICS) 227 #if defined(INCLUDE_CONNECTED_TV) 269 MHEG5Root *callVar = 0, *dateVar, *timeVar;
297 if (mheg_trace_debug & (TACTIONS | TEVNTS))
299 DBG_PRINTF(T_NL
"GetCurrentDate( %ld, %ld )", day, time);
394 if (mheg_trace_debug & (TACTIONS | TEVNTS))
397 strcpy(buff, T_NL
"FormatDate( ");
398 MHEG5stringTrace( format, buff, 0, 120 );
399 DBG_PRINTF(
"%s, %ld, %ld, ", buff, day, time);
451 if (mheg_trace_debug & (TACTIONS | TEVNTS))
523 if (mheg_trace_debug & (TACTIONS | TEVNTS))
580 if (mheg_trace_debug & (TACTIONS | TEVNTS))
583 strcpy(buff, T_NL
"CastToContentRef( ");
584 MHEG5stringTrace( s1, buff, 0, 120 );
658 if (mheg_trace_debug & (TACTIONS | TEVNTS))
661 strcpy(buff, T_NL
"CastToObjectRef( ");
662 MHEG5stringTrace( s1, buff, 0, 120 );
663 DBG_PRINTF(
"%s, %ld ) result=%s", buff,
id, result ?
"true" :
"false");
694 MHEG5Root *callVar = 0, *objIdVar = 0, *oStrVar = 0;
725 TRACE(TEVNTS, (
" id=%ld gref.len=%d",
id, (
int)gref.
len))
755 if (mheg_trace_debug & (TACTIONS | TEVNTS))
758 strcpy(buff, T_NL
"CastToStringInt( ");
759 MHEG5stringTrace( sout, buff, 0, 120 );
760 DBG_PRINTF(
"%s, %ld ) result=%s", buff,
id, result ?
"true" :
"false");
851 if (mheg_trace_debug & (TACTIONS | TEVNTS))
854 strcpy(buff, T_NL
"GetStringLength( ");
855 MHEG5stringTrace( osVal, buff, 0, 120 );
930 if (mheg_trace_debug & (TACTIONS | TEVNTS))
933 strcpy(buff, T_NL
"GetSubString( ");
934 MHEG5stringTrace( input, buff, 0, 120 );
935 DBG_PRINTF(
"%s, %ld, %ld, ", buff, begin, end);
941 begin = (begin > input.
len) ? input.
len : begin;
942 begin = (begin < 1) ? 1 : begin;
943 end = (end > input.
len) ? input.
len : end;
944 end = (end < 1) ? 1 : end;
967 if (mheg_trace_debug & (TACTIONS | TEVNTS))
971 MHEG5stringTrace( sout, buff, 0, 120 );
1006 MHEG5Int start = 0, i = 0, rc = -1, j = 0;
1053 start = (start >
string.len) ?
string.
len : start;
1054 start = (start < 1) ? 1 : start;
1057 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1060 strcpy(buff, T_NL
"SearchSubString( ");
1061 MHEG5stringTrace(
string, buff, 0, 120 );
1063 MHEG5stringTrace( searchString, buff, 0, 120 );
1068 if (searchString.
len == 0)
1070 if (
string.
len == 0)
1088 while (i <
string.
len)
1090 if (
string.
data[i] == searchString.
data[j])
1098 if (j >= searchString.
len)
1109 if (j < searchString.
len)
1119 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1163 MHEG5Root *callVar = 0, *intVar = 0, *osVar = 0;
1166 MHEG5Int start = 0, i = 0, rc = -1, j = 0;
1220 start = (start >
string.len) ?
string.
len : start;
1221 start = (start < 1) ? 1 : start;
1224 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1227 strcpy(buff, T_NL
"SearchAndExtractSubString( ");
1228 MHEG5stringTrace(
string, buff, start - 1, 60 );
1232 MHEG5stringTrace( searchString, buff, 0, 120 );
1238 if (searchString.
len == 0)
1240 if (
string.
len == 0)
1258 while (i <
string.
len)
1260 if (
string.
data[i] == searchString.
data[j])
1268 if (j >= searchString.
len)
1282 if (j < searchString.
len)
1292 rc += searchString.
len;
1294 else if (rc > start)
1301 while (i < (rc - 1))
1303 sout.
data[sout.
len] =
string.data[i++];
1307 rc += searchString.
len;
1316 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1320 MHEG5stringTrace( sout, buff, 0, 120 );
1411 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1414 strcpy(buff, T_NL
"SI_GetServiceIndex( ");
1415 MHEG5stringTrace( s1, buff, 0, 120 );
1423 #ifndef CI_PLUS_ONLY 1478 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1480 DBG_PRINTF(T_NL
"SI_TuneIndex( %ld )", serviceIndex);
1533 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1535 DBG_PRINTF(T_NL
"SI_TuneIndexInfo( %ld )", tuneInfo);
1636 &transportStreamIDVal, &serviceIDVal);
1644 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1646 DBG_PRINTF(T_NL
"SI_GetBasicSI( %ld, %ld, %ld, %ld, %ld )",
1647 serviceIndex, networkIDVal, origNetworkIDVal, transportStreamIDVal, serviceIDVal );
1730 static void checkRefGood(
void *userData,
S_CONTENT *content )
1738 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1744 ProgramCompleted( program );
1758 static void checkRefFail(
void *userData )
1766 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1772 ProgramCompleted( program );
1810 MHEG5Root *callVar = 0, *rcVar1 = 0, *rcVar2 = 0;
1866 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1869 strcpy(buff, T_NL
"CheckContentRef( ");
1870 MHEG5stringTrace( cref_data, buff, 0, 120 );
1875 if (!cref_referenced)
1877 checkRefFail( program );
1883 program, checkRefGood, checkRefFail );
1924 MHEG5Root *callVar = 0, *rcVar1 = 0, *rcVar2 = 0;
1996 if (mheg_trace_debug & (TACTIONS | TEVNTS))
1999 strcpy(buff, T_NL
"CheckGroupIDRef( ");
2000 MHEG5stringTrace( out->
valueGrp, buff, 0, 120 );
2007 program, checkRefGood, checkRefFail );
2012 #ifndef CI_PLUS_ONLY 2036 MHEG5Root *callVar = 0, *bootInfo = 0, *infoResult = 0;
2065 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2068 strcpy(buff, T_NL
"GetBootInfo( ");
2070 DBG_PRINTF(
"%s, %s )", infoResultVal ?
"true" :
"false", buff);
2081 #ifndef CI_PLUS_ONLY 2103 MHEG5Root *callVar = 0, *graphicsX = 0, *graphicsY = 0;
2104 MHEG5Int videoXVal, videoYVal, graphicsYVal, graphicsXVal;
2144 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2146 DBG_PRINTF(T_NL
"VideoToGraphics( %ld, %ld, %ld, %ld )",
2147 videoXVal, videoYVal, graphicsYVal, graphicsXVal );
2194 else if (modeVal == 2)
2199 #ifdef INCLUDE_FREESAT 2200 else if (modeVal == 0)
2207 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2209 DBG_PRINTF(T_NL
"SetWidescreenAlignment( %ld )", modeVal );
2261 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2263 DBG_PRINTF(T_NL
"SetSubtitleMode( %ld )", onVal );
2272 #ifdef INCLUDE_NATIVE_APP 2315 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2317 DBG_PRINTF(T_NL
"SetBroadcasterInterruptions( %ld )", enable );
2341 MHEG5Root *callVar = 0, *aspectRatioVal = 0;
2361 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2372 #ifdef COMMON_INTERFACE 2400 ProgramCompleted( program );
2475 #ifdef COMMON_INTERFACE 2476 if (MHEG5FileOrmSendCiMessage(input, ciSendMessageCallback, program) ==
MHEG5FALSE)
2491 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2494 strcpy(buff, T_NL
"CI_SendMessage( ");
2495 MHEG5stringTrace( input, buff, 0, 120 );
2496 strcat(buff,
", n/a )");
2542 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2545 strcpy(buff, T_NL
"WhoAmI( ");
2555 #ifdef INCLUDE_DEBUG_PACKAGE 2600 prevParam = nextParam;
2605 DVB_MhegOutputDebugString(buffer);
2617 #if defined(INCLUDE_MHEG_PVR) || defined(INCLUDE_PVR_AU) 2629 if (pvr_program == NULL)
2631 TRACE(TERROR, (
"No Program"))
2658 TRACE(TERROR, (
"Invalid result %d", result))
2661 ProgramCompleted( pvr_program );
2669 #ifdef INCLUDE_MHEG_PVR 2716 if (crid_details.
type != 0x31 && crid_details.
type != 0x32)
2767 pvr_program = program;
2832 if (crid_type != 0x31 && crid_type != 0x32)
2898 if (crid_list != NULL)
2900 for (ndx = 0; ndx != number; ndx++)
2905 if (out_str.
data != NULL)
2908 for (ndx = 0; ndx != number; ndx++)
2910 memcpy( pData, crid_list[ndx].crid.zptr, crid_list[ndx].
crid.
zlen );
2912 if (crid_list[ndx].type == 49)
2914 memcpy( pData,
" 49 ", 4 );
2918 memcpy( pData,
" 50 ", 4 );
2929 out_str.
data = NULL;
2934 if (mheg_trace_debug & (TACTIONS | TEVNTS))
2937 strcpy(buff, T_NL
"WhoAmI( ");
2948 #ifdef INCLUDE_PVR_AU 3011 if (!MHEG5parseDecodeBookings( bookingDetails, &crid_details ))
3028 case MHEG5_RESULT_PENDING:
3030 pvr_program = program;
3046 MHEG5freeDecodeBookings( &crid_details );
3096 if (crid_type != 0x31 && crid_type != 0x32)
3160 if (crid_list != NULL)
3162 for (ndx = 0; ndx != number; ndx++)
3167 if (out_str.
data != NULL)
3170 for (ndx = 0; ndx != number; ndx++)
3172 memcpy( pData, crid_list[ndx].crid.zptr, crid_list[ndx].
crid.
zlen );
3184 out_str.
data = NULL;
3189 if (mheg_trace_debug & (TACTIONS | TEVNTS))
3192 strcpy(buff, T_NL
"PVR_ListBooking2( ");
3254 out_str.
data = NULL;
3255 if (pDetails != NULL)
3259 MHEG5parseEncodeBooking( pDetails, out_str );
3266 if (mheg_trace_debug & (TACTIONS | TEVNTS))
3269 strcpy(buff, T_NL
"PVR_GetDetails2( ");
3281 #ifdef INCLUDE_CI_PLUS 3482 if ((mheg_trace_debug & (TACTIONS | TEVNTS)) && !(mheg_trace_debug & TFILE))
3485 strcpy(buff, T_NL
"SetHybridFileSystem( ");
3486 MHEG5stringTrace(pathName, buff, 0, 120);
3488 MHEG5stringTrace(mappingList, buff, 0, 230);
3512 MHEG5Root *callVar = 0, *icStatusVar = 0;
3529 MHEG5getICStatus( &icStatus );
3606 cookie_data.
value = value;
3607 cookie_data.
secure = secure;
3608 cookie_data.
expires = expiryDate;
3635 MHEG5Root *callVar = 0, *found = 0, *expiryDate = 0,
3636 *value = 0, *secure = 0;
3729 ProgramCompleted( program );
3803 prevParam = nextParam;
3810 prevParam = nextParam;
3812 success = MHEG5parseEncodeField(&buffer, &used, &allocated, &name, &g);
3822 prevParam = nextParam;
3847 prevParam = nextParam;
3879 MHEG5FileOrmReturnData(url, data, returnDataCallback, program);
3918 ProgramCompleted( program );
3987 speedVar->
value = -1;
3996 program->
stopFunc = stopMeasurement;
4016 void MHEG5notifyGuidanceResponse(
MHEG5Bool result)
4020 if (program != NULL)
4022 TPRINT((TACTIONS | TEVNTS), (T_NL
"PIN result %d",result))
4030 ProgramCompleted( program );
4032 guidance_program = NULL;
4043 if (guidance_program != NULL)
4045 (void)MHEG5promptForGuidance(NULL,
MHEG5FALSE);
4046 guidance_program = NULL;
4104 if (!MHEG5IsPinRequired())
4106 TPRINT((TACTIONS | TEVNTS), (T_NL
"PIN not required"))
4127 guidance_program = program;
4129 TPRINT((TACTIONS | TEVNTS), (T_NL
"requesting PIN"))
4130 if (!MHEG5promptForGuidance( &restriction,
TRUE ))
4132 ProgramCompleted( program );
4134 guidance_program = NULL;
4245 #ifdef INCLUDE_IPLAYER 4262 MHEG5Root *callVar = 0, *supportVar = 0;
4281 success = MHEG5GetPINSupport(&support);
4290 #ifdef INCLUDE_FREESAT 4326 success = MHEG5GetPINRequirement(&status);
4386 success = MHEG5ValidatePIN(&pin, &status);
4446 success = MHEG5ComputePrivateSignature(&data, &result);
4473 MHEG5Root *callVar = 0, *fsi = 0, *fsiString = 0;
4474 MHEG5Int seviceIndex = 0, outputInt;
4507 rc = MHEG5GetFSIServiceReference(seviceIndex, &outputInt, &outputString);
4524 #ifdef INCLUDE_SA_PROFILE 4550 U8BIT lstr[4] = {0,0,0,0};
4587 lstr[0] = (
U8BIT)(lang >> 16);
4588 lstr[1] = (lang >> 8) & 0xFF;
4589 lstr[2] = lang & 0xFF;
4597 lstr[0] = (
U8BIT)(lang >> 16);
4598 lstr[1] = (lang >> 8) & 0xFF;
4599 lstr[2] = lang & 0xFF;
4604 if (mheg_trace_debug & (TACTIONS | TEVNTS))
4607 strcpy(buff, T_NL
"GetPreferredLangs( ");
4608 MHEG5stringTrace(*audioStr, buff, 0, 120);
4610 MHEG5stringTrace(*subsStr, buff, 0, 230);
4621 #ifdef INCLUDE_SA_PROFILE 4688 memset(langs, 0x0,
sizeof(langs));
4694 buffer.
data = langs;
4695 buffer.
len = strlen((
char *)langs);
4700 if (mheg_trace_debug & (TACTIONS | TEVNTS))
4703 DBG_PRINTF(T_NL
"LNG_GetADLangs( %ld, %ld, ", serviceIndex, eventIndex );
4705 MHEG5stringTrace(*langsStr, buff, 0, 230);
4716 #ifdef INCLUDE_SA_PROFILE 4784 memset(langs, 0x0,
sizeof(langs));
4791 buffer.
data = langs;
4792 buffer.
len = strlen((
char *)langs);
4797 if (mheg_trace_debug & (TACTIONS | TEVNTS))
4800 DBG_PRINTF(T_NL
"LNG_GetAudioLangs( %ld, %ld, ", serviceIndex, eventIndex );
4802 MHEG5stringTrace(*langsStr, buff, 0, 230);
4813 #ifdef INCLUDE_SA_PROFILE 4882 memset(langs, 0x0,
sizeof(langs));
4888 buffer.
data = langs;
4889 buffer.
len = strlen((
char *)langs);
4894 if (mheg_trace_debug & (TACTIONS | TEVNTS))
4897 DBG_PRINTF(T_NL
"LNG_GetSubtitleLangs( %ld, %ld, ", serviceIndex, eventIndex );
4899 MHEG5stringTrace(*langsStr, buff, 0, 230);
4910 #ifdef INCLUDE_SA_PROFILE 4988 #ifdef INCLUDE_SA_PROFILE 5067 #ifdef INCLUDE_SA_PROFILE 5121 #ifdef INCLUDE_SA_PROFILE 5169 U8BIT svalue[4] = { 0, 0, 0, 0 };
5173 static char bannerTransparency[] =
"BannerTransparency";
5174 static char bannerTimeout[] =
"BannerTimeout";
5175 static char osdLanguage[] =
"OSDLanguage";
5176 static char serviceMode[] =
"ServiceMode";
5210 if (strcmp((
char *)key.
data, bannerTransparency) == 0)
5223 else if (strcmp((
char *)key.
data, bannerTimeout) == 0)
5236 else if (strcmp((
char *)key.
data, osdLanguage) == 0)
5247 buffer.
data = svalue;
5252 else if (strcmp((
char*)key.
data, serviceMode) == 0)
5259 switch (DVB_MhegGetServiceMode())
5275 #ifdef INCLUDE_SI_EXTENSION 5282 S_ServiceDetails ServiceInfo;
5288 if (DVB_MhegGetServiceDetails((
S32BIT)serviceIndex, &ServiceInfo) ==
MHERR_OK)
5291 if (ServiceInfo.serviceName.zptr != NULL &&
5292 ServiceInfo.serviceName.zlen != 0)
5294 buffer.
data = ServiceInfo.serviceName.zptr;
5295 buffer.
len = ServiceInfo.serviceName.zlen;
5299 if (ServiceInfo.serviceProvider.zptr != NULL &&
5300 ServiceInfo.serviceProvider.zlen != 0)
5302 buffer.
data = ServiceInfo.serviceProvider.zptr;
5303 buffer.
len = ServiceInfo.serviceProvider.zlen;
5307 *serviceType = ServiceInfo.serviceType;
5310 if (mheg_trace_debug & (TACTIONS | TEVNTS))
5313 DBG_PRINTF(T_NL
"SI_GetServiceInfo( %ld ", serviceIndex );
5315 MHEG5stringTrace( *serviceName, buff, 0, 120 );
5317 MHEG5stringTrace( *serviceProvider, buff, 0, 100 );
5319 DBG_PRINTF(
" %ld )", ServiceInfo.serviceType );
5323 DVB_MhegReleaseServiceDetails( &ServiceInfo );
5327 TRACE(TERROR, (
" serviceIndex=%d", serviceIndex))
5400 success = GetServiceInfo( serviceIndex,
5410 static void GetEventInfo(S_EventDetails *eventDetails,
5428 if (eventDetails->eventName.zlen > 0 &&
5429 eventDetails->eventName.zptr != NULL)
5431 buffer.
data = eventDetails->eventName.zptr;
5432 buffer.
len = eventDetails->eventName.zlen;
5437 if (eventDetails->shortDescription.zlen > 0 &&
5438 eventDetails->shortDescription.zptr != NULL)
5440 buffer.
data = eventDetails->shortDescription.zptr;
5441 buffer.
len = eventDetails->shortDescription.zlen;
5446 if (eventDetails->category.zlen > 0 &&
5447 eventDetails->category.zptr != NULL)
5449 buffer.
len = eventDetails->category.zlen * 2;
5452 for (i = 0; i != buffer.
len; i += 2)
5454 buffer.
data[i] = ((eventDetails->category.zptr[i >> 1] >> 4) & 0xf) +
'A';
5455 buffer.
data[i + 1] = (eventDetails->category.zptr[i >> 1] & 0xf) +
'a';
5459 *parentalRating = eventDetails->parentalRating;
5460 *startDate = eventDetails->startDate;
5462 time = eventDetails->startTime.hours;
5464 time += eventDetails->startTime.minutes;
5466 time += eventDetails->startTime.seconds;
5470 time = eventDetails->duration.hours;
5472 time += eventDetails->duration.minutes;
5474 time += eventDetails->duration.seconds;
5478 if (eventDetails->freeNotCA ==
TRUE)
5488 if (mheg_trace_debug & (TACTIONS | TEVNTS))
5492 MHEG5stringTrace( *eventName, buff, 0, 120 );
5493 MHEG5stringTrace( *shortDescription, buff, 0, 230 );
5496 DBG_PRINTF(
" %d %d", eventDetails->parentalRating, eventDetails->startDate );
5497 DBG_PRINTF(
" %02d:%02d:%02d", eventDetails->startTime.hours,
5498 eventDetails->startTime.minutes, eventDetails->startTime.seconds );
5499 DBG_PRINTF(
" %02d:%02d:%02d", eventDetails->startTime.hours,
5500 eventDetails->duration.minutes, eventDetails->duration.seconds );
5502 DBG_PRINTF(
" %s %s )", category->
data, *freeNotCA ?
"TRUE" :
"FALSE" );
5572 S_EventDetails eventDetails;
5653 err = DVB_MhegGetEventDetails((
S32BIT)serviceIndex, porf ?
TRUE :
FALSE, &eventDetails);
5657 if (mheg_trace_debug & (TACTIONS | TEVNTS))
5662 GetEventInfo(&eventDetails,
5671 DVB_MhegReleaseEventDetails(&eventDetails);
5677 #ifdef INCLUDE_SA_PROFILE 5718 err = DVB_MhegGetNumberOfServices(&number);
5725 if (mheg_trace_debug & (TACTIONS | TEVNTS))
5727 DBG_PRINTF(T_NL
"SEI_GetNumberOfServices( %d )", number);
5735 #ifdef INCLUDE_SA_PROFILE 5805 switch (serviceIndex)
5816 oldIndex = serviceIndex;
5820 err = DVB_MhegNextServiceIndex(&serviceIndex,servType);
5824 err = DVB_MhegPrevServiceIndex(&serviceIndex,servType);
5831 if (mheg_trace_debug & (TACTIONS | TEVNTS))
5833 DBG_PRINTF(T_NL
"SEI_NextServiceIndex( updown=%d, %d -> %d )", updown, oldIndex, serviceIndex);
5841 #ifdef INCLUDE_SA_PROFILE 5863 U8BIT runningStatus;
5892 err = DVB_MhegGetServiceRunningStatus((
S32BIT)serviceIndex, &runningStatus);
5899 if (mheg_trace_debug & (TACTIONS | TEVNTS))
5901 DBG_PRINTF(T_NL
"SEI_GetServiceRunningStatus( %d )", runningStatus);
5909 #ifdef INCLUDE_SA_PROFILE 5959 err = DVB_MhegGetChannelNumber((
S32BIT)serviceIndex, &channelNum);
5965 if (mheg_trace_debug & (TACTIONS | TEVNTS))
5967 DBG_PRINTF(T_NL
"SEI_GetChannelNumber( -> %d )", channelNum);
5975 #ifdef INCLUDE_SA_PROFILE 6045 err = DVB_MhegGetEventId((
S32BIT)serviceIndex, (porf) ?
TRUE :
FALSE, &eventId);
6056 if (mheg_trace_debug & (TACTIONS | TEVNTS))
6058 DBG_PRINTF(T_NL
"PFEI_GetEventId( %d, %d, -> 0x%x )", serviceIndex, porf, eventId);
6066 #ifdef INCLUDE_SA_PROFILE 6135 err = DVB_MhegSetEventIterator((
S32BIT)serviceIndex, (
S32BIT)startDate,
6136 (
S32BIT)startTime, &eventId);
6142 if (mheg_trace_debug & (TACTIONS | TEVNTS))
6144 DBG_PRINTF(T_NL
"SEI_SetEventIterator( %d, %d, %02d:%02d:%02d, -> 0x%x )",
6145 serviceIndex, startDate, startTime / 3600, (startTime / 60) % 60, startTime % 60, eventId );
6153 #ifdef INCLUDE_SA_PROFILE 6203 err = DVB_MhegIncrementEventIterator(&eventId);
6209 if (mheg_trace_debug & (TACTIONS | TEVNTS))
6211 DBG_PRINTF(T_NL
"SEI_IncrementEventIterator( 0x%x -> 0x%x )", oldId, eventId);
6219 #ifdef INCLUDE_SA_PROFILE 6291 S_EventDetails eventDetails;
6374 err = DVB_MhegGetScheduledEventDetails((
S32BIT)serviceIndex, (
S32BIT)eventId,
6375 &result, &eventDetails);
6379 if (mheg_trace_debug & (TACTIONS | TEVNTS))
6381 DBG_PRINTF(T_NL
"SEI_GetScheduledEventInfo( %d, 0x%x, ->%d ", serviceIndex, eventId, result);
6388 GetEventInfo(&eventDetails,
6397 DVB_MhegReleaseEventDetails(&eventDetails);
6403 if (mheg_trace_debug & (TACTIONS | TEVNTS))
6416 #ifdef INCLUDE_SA_PROFILE 6483 static char subtitles[] =
"Subtitles";
6484 static char audioDesc[] =
"AudioDesc";
6485 static char altLang[] =
"AltLang";
6486 static char dolby[] =
"Dolby";
6487 static char hd[] =
"HD";
6539 if ((keyStr.
len != 0) && (keyStr.
data != NULL))
6541 if (strcmp((
char *)keyStr.
data, subtitles) == 0)
6543 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, (
S32BIT)eventId,
6544 &result, MHEG5_COMPONENT_SUBTITLES,
6547 else if (strcmp((
char *)keyStr.
data, audioDesc) == 0)
6549 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, (
S32BIT)eventId,
6550 &result, MHEG5_COMPONENT_AUDIO_DESC,
6553 else if (strcmp((
char *)keyStr.
data, altLang) == 0)
6555 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, (
S32BIT)eventId,
6556 &result, MHEG5_COMPONENT_ALT_LANG,
6559 else if (strcmp((
char *)keyStr.
data, dolby) == 0)
6561 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, (
S32BIT)eventId,
6562 &result, MHEG5_COMPONENT_DOLBY,
6565 else if (strcmp((
char *)keyStr.
data, hd) == 0)
6567 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, (
S32BIT)eventId,
6568 &result, MHEG5_COMPONENT_HD,
6603 #ifdef INCLUDE_SA_PROFILE 6671 static char subtitles[] =
"Subtitles";
6672 static char audioDesc[] =
"AudioDesc";
6673 static char altLang[] =
"AltLang";
6674 static char dolby[] =
"Dolby";
6675 static char hd[] =
"HD";
6727 if ((keyStr.
len != 0) && (keyStr.
data != NULL))
6729 err = DVB_MhegGetEventId((
S32BIT)serviceIndex, (porf) ?
TRUE :
FALSE, &eventId);
6733 if (strcmp((
char *)keyStr.
data, subtitles) == 0)
6735 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, eventId,
6736 &result, MHEG5_COMPONENT_SUBTITLES,
6739 else if (strcmp((
char *)keyStr.
data, audioDesc) == 0)
6741 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, eventId,
6742 &result, MHEG5_COMPONENT_AUDIO_DESC,
6745 else if (strcmp((
char *)keyStr.
data, altLang) == 0)
6747 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, eventId,
6748 &result, MHEG5_COMPONENT_ALT_LANG,
6751 else if (strcmp((
char *)keyStr.
data, dolby) == 0)
6753 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, eventId,
6754 &result, MHEG5_COMPONENT_DOLBY,
6757 else if (strcmp((
char *)keyStr.
data, hd) == 0)
6759 err = DVB_MhegGetComponentInfo((
S32BIT)serviceIndex, eventId,
6760 &result, MHEG5_COMPONENT_HD,
6800 #ifdef INCLUDE_SA_PROFILE 6852 U8BIT contType[256];
6909 err = DVB_MhegGetComponentData((
S32BIT)serviceIndex, (
S32BIT)eventId,
6910 &result, strCont, contType, lang);
6919 buffer.
len = strlen((
char *)strCont);
6920 buffer.
data = strCont;
6923 buffer.
len = strlen((
char *)contType);
6924 buffer.
data = contType;
6927 buffer.
len = strlen((
char *)lang);
6941 #ifdef INCLUDE_SA_PROFILE 6994 U8BIT contType[256];
7051 err = DVB_MhegGetEventId((
S32BIT)serviceIndex, (porf) ?
TRUE :
FALSE, &eventId);
7054 err = DVB_MhegGetComponentData((
S32BIT)serviceIndex, eventId,
7055 &result, strCont, contType, lang);
7064 buffer.
len = strlen((
char *)strCont);
7065 buffer.
data = strCont;
7068 buffer.
len = strlen((
char *)contType);
7069 buffer.
data = contType;
7072 buffer.
len = strlen((
char *)lang);
7131 #ifdef INCLUDE_CONNECTED_TV 7153 void MHEG5notifyApplicationLaunchStatus(
MHEG5Bool success)
7156 if (program != NULL)
7164 ProgramCompleted( program );
7166 application_launch_program = NULL;
7223 MHEG5GList *secondParam = 0, *thirdParam = 0, *prevParam, *nextParam = 0;
7253 if (invalidString) {
7263 prevParam = thirdParam;
7270 prevParam = nextParam;
7272 success = MHEG5parseEncodeField(&buffer, &used, &allocated, &name, &g);
7282 prevParam = nextParam;
7288 if (nextParam != NULL) {
7319 application_launch_program = program;
7320 MHEG5ApplicationLaunch(&location, &data);
7372 MHEG5GList *secondParam = 0, *thirdParam = 0;
7391 if (invalidString) {
7427 {
"GCD", &MHEG5prgGetCurrentDate, NULL },
7428 {
"FDa", &MHEG5prgFormatDate, NULL },
7429 {
"GDW", &MHEG5prgGetDayOfWeek, NULL },
7430 {
"Rnd", &MHEG5prgRandom, NULL },
7431 {
"CTC", &MHEG5prgCastToContentRef, NULL },
7432 {
"CTO", &MHEG5prgCastToObjectRef, NULL },
7433 {
"CSI", &MHEG5prgCastToStringInt, NULL },
7434 {
"GSL", &MHEG5prgGetStringLength, NULL },
7435 {
"GSS", &MHEG5prgGetSubString, NULL },
7436 {
"SSS", &MHEG5prgSearchSubString, NULL },
7437 {
"SES", &MHEG5prgSearchAndExtractSubString, NULL },
7438 {
"GSI", &MHEG5prgSI_GetServiceIndex, NULL },
7439 #ifndef CI_PLUS_ONLY 7440 {
"TIn", &MHEG5prgSI_TuneIndex, NULL },
7441 {
"TII", &MHEG5prgSI_TuneIndexInfo, NULL },
7442 {
"VTG", &MHEG5prgVideoToGraphics, NULL },
7443 {
"SSM", &MHEG5prgSetSubtitleMode, NULL },
7444 {
"SWA", &MHEG5prgSetWidescreenAlignment, NULL },
7446 {
"BSI", &MHEG5prgSI_GetBasicSI, NULL },
7447 {
"CCR", &MHEG5prgCheckContentRef, &clearOrmHandle },
7448 {
"CGR", &MHEG5prgCheckGroupIDRef, &clearOrmHandle },
7449 {
"CIS", &MHEG5prgCI_SendMessage, NULL },
7450 #ifndef CI_PLUS_ONLY 7451 {
"GBI", &MHEG5prgGetBootInfo, NULL },
7453 {
"WAI", &MHEG5prgWhoAmI, NULL },
7454 #ifdef INCLUDE_DEBUG_PACKAGE 7455 {
"DBG", &MHEG5prgDebug, NULL },
7457 {
"GDA", &MHEG5prgGetDisplayAspectRatio, NULL },
7458 #ifdef INCLUDE_NATIVE_APP 7459 {
"SBI", &MHEG5prgSetBroadcasterInterruptions, NULL },
7461 #ifdef INCLUDE_PVR_AU 7462 {
"PMB2", &MHEG5prgPVR_MakeBooking2, NULL },
7463 {
"PCB2", &MHEG5prgPVR_CancelBooking2, NULL },
7464 {
"PLB2", &MHEG5prgPVR_ListBookings2, NULL },
7465 {
"PGD2", &MHEG5prgPVR_GetDetails2, NULL },
7467 #ifdef INCLUDE_MHEG_PVR 7468 {
"PMB", &MHEG5prgPVR_MakeBooking, NULL },
7469 {
"PCB", &MHEG5prgPVR_CancelBooking, NULL },
7470 {
"PLB", &MHEG5prgPVR_ListBookings, NULL },
7472 #ifdef INCLUDE_SA_PROFILE 7473 {
"GPL", &MHEG5prgLNG_GetPreferredLangs, NULL },
7474 {
"GAu", &MHEG5prgLNG_GetAudioLangs, NULL },
7475 {
"GSb", &MHEG5prgLNG_GetSubtitleLangs, NULL },
7476 {
"GAD", &MHEG5prgLNG_GetADLangs, NULL },
7477 {
"GNS", &MHEG5prgSEI_GetNumberOfServices, NULL },
7478 {
"NSI", &MHEG5prgSEI_NextServiceIndex, NULL },
7479 {
"GSR", &MHEG5prgSEI_GetServiceRunningStatus, NULL },
7480 {
"GCN", &MHEG5prgSEI_GetChannelNumber, NULL },
7481 {
"SEv", &MHEG5prgSEI_SetEventIterator, NULL },
7482 {
"IEI", &MHEG5prgSEI_IncrementEventIterator, NULL },
7483 {
"GSE", &MHEG5prgSEI_GetScheduledEventInfo, NULL },
7484 {
"SCI", &MHEG5prgSEI_GetComponentInfo, NULL },
7485 {
"SCD", &MHEG5prgSEI_GetComponentData, NULL },
7486 {
"GID", &MHEG5prgPFEI_GetEventId, NULL },
7487 {
"PCI", &MHEG5prgPFEI_GetComponentInfo, NULL },
7488 {
"PCD", &MHEG5prgPFEI_GetComponentData, NULL },
7489 {
"SNR", &MHEG5prgREM_SetNativeReminder, NULL },
7490 {
"GNR", &MHEG5prgREM_GetNativeReminder, NULL },
7491 {
"CNR", &MHEG5prgREM_CancelNativeReminder, NULL },
7492 {
"GHS", &MHEG5prgSA_GetHostSetting, NULL },
7494 #ifdef INCLUDE_CI_PLUS 7495 {
"RMD", &MHEG5prgRequestMPEGDecoder, NULL },
7496 {
"SMG", &MHEG5prgSuppressMHEGGraphics, NULL },
7498 {
"TIM", &MHEG5prgTestInputMask, NULL },
7500 {
"SHF", &MHEG5prgSetHybridFileSystem, NULL },
7501 {
"GIS", &MHEG5prgGetICStatus, NULL },
7502 {
"RDa", &MHEG5prgReturnData, NULL },
7503 {
"GCk", &MHEG5prgGetCookie, NULL },
7504 {
"SCk", &MHEG5prgSetCookie, NULL },
7506 {
"PFG", &MHEG5prgPromptForGuidance, &stopPrompt },
7507 {
"MSP", &MHEG5prgMeasureStreamPerformance, &stopMeasurement },
7508 #ifdef INCLUDE_IPLAYER 7509 {
"GPS", &MHEG5prgGetPINSupport, NULL },
7511 #if defined(INCLUDE_IPLAYER) || defined(INCLUDE_FREESAT) 7512 {
"GAP", &MHEG5prgGetAudioDescPref, NULL },
7513 {
"GSP", &MHEG5prgGetSubtitlePref, NULL },
7515 #ifdef INCLUDE_FREESAT 7516 {
"GPR", &MHEG5prgGetPINRequirement, NULL },
7517 {
"VPP", &MHEG5prgValidatePIN, NULL },
7518 {
"CPS", &MHEG5prgComputePrivateSignature, NULL },
7522 #ifdef INCLUDE_FREESAT 7523 {
"FSI", &MHEG5prgGetFSIServiceReference, NULL },
7525 #ifdef INCLUDE_SI_EXTENSION 7526 {
"SeI", &MHEG5prgSI_GetServiceInfo, NULL },
7527 {
"GEI", &MHEG5prgSI_GetEventInfo, NULL },
7530 {
"PST", &MHEG5prgPersistentStorageInfo, NULL },
7533 #ifdef INCLUDE_CONNECTED_TV 7534 {
"GLA", &MHEG5prgGetLaunchArguments, NULL },
7535 {
"ApL", &MHEG5prgApplicationLaunch, NULL },
7539 &MHEG5prgGetCurrentDate, NULL },
7541 &MHEG5prgFormatDate, NULL },
7543 &MHEG5prgGetDayOfWeek, NULL },
7545 &MHEG5prgRandom, NULL },
7546 {
"CastToContentRef",
7547 &MHEG5prgCastToContentRef, NULL },
7548 {
"CastToObjectRef",
7549 &MHEG5prgCastToObjectRef, NULL },
7550 {
"CastToStringInt",
7551 &MHEG5prgCastToStringInt, NULL },
7552 {
"GetStringLength",
7553 &MHEG5prgGetStringLength, NULL },
7555 &MHEG5prgGetSubString, NULL },
7556 {
"SearchSubString",
7557 &MHEG5prgSearchSubString, NULL },
7558 {
"SearchAndExtractSubString",
7559 &MHEG5prgSearchAndExtractSubString, NULL },
7560 {
"SI_GetServiceIndex",
7561 &MHEG5prgSI_GetServiceIndex, NULL },
7562 #ifndef CI_PLUS_ONLY 7564 &MHEG5prgSI_TuneIndex, NULL },
7565 {
"SI_TuneIndexInfo",
7566 &MHEG5prgSI_TuneIndexInfo, NULL },
7567 {
"VideoToGraphics",
7568 &MHEG5prgVideoToGraphics, NULL },
7569 {
"SetSubtitleMode",
7570 &MHEG5prgSetSubtitleMode, NULL },
7571 {
"SetWidescreenAlignment",
7572 &MHEG5prgSetWidescreenAlignment, NULL },
7575 &MHEG5prgSI_GetBasicSI, NULL },
7576 {
"CheckContentRef",
7577 &MHEG5prgCheckContentRef, &clearOrmHandle },
7578 {
"CheckGroupIDRef",
7579 &MHEG5prgCheckGroupIDRef, &clearOrmHandle },
7581 &MHEG5prgCI_SendMessage, NULL },
7582 #ifndef CI_PLUS_ONLY 7584 &MHEG5prgGetBootInfo, NULL },
7587 &MHEG5prgWhoAmI, NULL },
7588 #ifdef INCLUDE_DEBUG_PACKAGE 7590 &MHEG5prgDebug, NULL },
7592 {
"GetDisplayAspectRatio",
7593 &MHEG5prgGetDisplayAspectRatio, NULL },
7594 #ifdef INCLUDE_NATIVE_APP 7595 {
"SetBroadcasterInterruptions",
7596 &MHEG5prgSetBroadcasterInterruptions, NULL },
7598 #ifdef INCLUDE_PVR_AU 7599 {
"PVR_MakeBooking2",
7600 &MHEG5prgPVR_MakeBooking2, NULL },
7601 {
"PVR_CancelBooking2",
7602 &MHEG5prgPVR_CancelBooking2, NULL },
7603 {
"PVR_ListBooking2",
7604 &MHEG5prgPVR_ListBookings2, NULL },
7605 {
"PVR_GetDetails2",
7606 &MHEG5prgPVR_GetDetails2, NULL },
7608 #ifdef INCLUDE_MHEG_PVR 7609 {
"PVR_MakeBooking",
7610 &MHEG5prgPVR_MakeBooking, NULL },
7611 {
"PVR_CancelBooking",
7612 &MHEG5prgPVR_CancelBooking, NULL },
7613 {
"PVR_ListBooking",
7614 &MHEG5prgPVR_ListBookings, NULL },
7616 #ifdef INCLUDE_SA_PROFILE 7617 {
"LNG_GetPreferredLangs",
7618 &MHEG5prgLNG_GetPreferredLangs, NULL },
7619 {
"LNG_GetAudioLangs",
7620 &MHEG5prgLNG_GetAudioLangs, NULL },
7621 {
"LNG_GetSubtitleLangs",
7622 &MHEG5prgLNG_GetSubtitleLangs, NULL },
7624 &MHEG5prgLNG_GetADLangs, NULL },
7625 {
"SEI_GetNumberOfServices",
7626 &MHEG5prgSEI_GetNumberOfServices, NULL },
7627 {
"SEI_NextServiceIndex",
7628 &MHEG5prgSEI_NextServiceIndex, NULL },
7629 {
"SEI_GetServiceRunningStatus",
7630 &MHEG5prgSEI_GetServiceRunningStatus, NULL },
7631 {
"SEI_GetChannelNumber",
7632 &MHEG5prgSEI_GetChannelNumber, NULL },
7633 {
"SEI_SetEventIterator",
7634 &MHEG5prgSEI_SetEventIterator, NULL },
7635 {
"SEI_IncrementEventIterator",
7636 &MHEG5prgSEI_IncrementEventIterator, NULL },
7637 {
"SEI_GetScheduledEventInfo",
7638 &MHEG5prgSEI_GetScheduledEventInfo, NULL },
7639 {
"SEI_GetComponentInfo",
7640 &MHEG5prgSEI_GetComponentInfo, NULL },
7641 {
"SEI_GetComponentData",
7642 &MHEG5prgSEI_GetComponentData, NULL },
7643 {
"PFEI_GetEventId",
7644 &MHEG5prgPFEI_GetEventId, NULL },
7645 {
"PFEI_GetComponentInfo",
7646 &MHEG5prgPFEI_GetComponentInfo, NULL },
7647 {
"PFEI_GetComponentData",
7648 &MHEG5prgPFEI_GetComponentData, NULL },
7649 {
"REM_SetNativeReminder",
7650 &MHEG5prgREM_SetNativeReminder, NULL },
7651 {
"REM_GetNativeReminder",
7652 &MHEG5prgREM_GetNativeReminder, NULL },
7653 {
"REM_CancelNativeReminder",
7654 &MHEG5prgREM_CancelNativeReminder, NULL },
7655 {
"SA_GetHostSetting",
7656 &MHEG5prgSA_GetHostSetting, NULL },
7658 #ifdef INCLUDE_CI_PLUS 7659 {
"RequestMPEGDecoder",
7660 &MHEG5prgRequestMPEGDecoder, NULL },
7661 {
"SuppressMHEGGraphics",
7662 &MHEG5prgSuppressMHEGGraphics, NULL },
7665 &MHEG5prgTestInputMask, NULL },
7667 {
"SetHybridFileSystem",
7668 &MHEG5prgSetHybridFileSystem, NULL },
7670 &MHEG5prgGetICStatus, NULL },
7672 &MHEG5prgReturnData, NULL },
7674 &MHEG5prgGetCookie, NULL },
7676 &MHEG5prgSetCookie, NULL },
7678 {
"PromptForGuidance",
7679 &MHEG5prgPromptForGuidance, &stopPrompt },
7680 {
"MeasureStreamPerformance",
7681 &MHEG5prgMeasureStreamPerformance, &stopMeasurement },
7682 #ifdef INCLUDE_IPLAYER 7684 &MHEG5prgGetPINSupport, NULL },
7686 #if defined(INCLUDE_IPLAYER) || defined(INCLUDE_FREESAT) 7687 {
"GetAudioDescPref",
7688 &MHEG5prgGetAudioDescPref, NULL },
7689 {
"GetSubtitlePref",
7690 &MHEG5prgGetSubtitlePref, NULL },
7692 #ifdef INCLUDE_FREESAT 7693 {
"GetPINRequirement",
7694 &MHEG5prgGetPINRequirement, NULL },
7696 &MHEG5prgValidatePIN, NULL },
7697 {
"ComputePrivateSignature",
7698 &MHEG5prgComputePrivateSignature, NULL },
7702 #ifdef INCLUDE_FREESAT 7703 {
"GetFSIServiceReference",
7704 &MHEG5prgGetFSIServiceReference, NULL },
7706 #ifdef INCLUDE_SI_EXTENSION 7707 {
"SI_GetServiceInfo",
7708 &MHEG5prgSI_GetServiceInfo, NULL },
7709 {
"SI_GetEventInfo",
7710 &MHEG5prgSI_GetEventInfo, NULL },
7713 {
"PersistentStorageInfo",
7714 &MHEG5prgPersistentStorageInfo, NULL },
7716 #ifdef INCLUDE_CONNECTED_TV 7717 {
"GetLaunchArguments",
7718 &MHEG5prgGetLaunchArguments, NULL },
7719 {
"ApplicationLaunch",
7720 &MHEG5prgApplicationLaunch, NULL },
7723 { NULL, NULL, NULL }
7733 MHEG5LogPrintf(MHEG5ERROR,
"MHEG5Program - Empty program name\n");
7739 MHEG5LogPrintf(MHEG5MESSAGE,
"MHEG5Program - Executing program ");
7740 MHEG5LogPrintString(MHEG5MESSAGE, program->
name);
7741 MHEG5LogPrintf(MHEG5MESSAGE,
"\n");
7747 for (i = 0; ProgramTable[i].
name != NULL; i++)
7749 if (strcmp((
char *)program->
name.
data,
7750 (
char *)ProgramTable[i].
name) == 0)
U8BIT DVB_MhegPrefSubtitleLangs(U32BIT *langs, U8BIT max)
Get list of preferred subtitle languages. If there is no preference then zero is returned. This only writes into array up to 'max' items This MUST be a non-blocking function, returning results immediately.
MHEG5Bool * forkSucceededValue
void(* stopFunc)(struct MHEG5Program_struct *)
Implement MHEG5 engine control functions (i.e. start/stop etc)
void DVB_MhegSetVideoAlignment(E_VIDEO_ASPECT_MODE mode)
unsigned long MHEG5random(void)
Calculate and return a psuedo random number.
void MG_DisplayVideoToGraphics(MHEG5Int videoXval, MHEG5Int videoYval, MHEG5Int *graphicsXVal, MHEG5Int *graphicsYVal)
Calculate the graphical co-ordinate from a given video coordinate (should take into account the curre...
E_MhegErr DVB_MhegGetBannerTimeout(S32BIT *timeout)
Return the banner timeout period in seconds. This setting is related to the information banner on the...
Distributor for Prepare, Destruct, Activate, Deactivate and Clone calls. Distribute the +Prepare +Des...
struct ResidentProgramTableEntry_struct ResidentProgramTableEntry_t
void MG_SetSubtitleMode(MHEG5Bool subtitleOn)
Set the current subtitle display mode to be either On or Off, Should only have an impact if subtitles...
True Persistent Storage functions.
MHEG5Int MHEG5GetServiceIndex(MHEG5String *serviceReference)
Ref:[1] - 3.10.6.1 and [1] - 3.10.6.3 Get the serviceIndex, a positive integer which is used to refer...
void MHEG5SuppressMHEGGraphics(MHEG5Bool request)
Request that the external application toggles between showing MHEG graphics or subtitles This functio...
S32BIT MHEG5getDayOfWeek(S32BIT day)
Get Day of Week for Davic-Day 0 is Sunday....
E_MhegErr DVB_MhegGetAudioLangs(S32BIT serviceIndex, S32BIT eventIndex, U8BIT *audioLangs)
Return a list of available audio languages for the specified event. The language list is extracted fr...
void(* stopFunction)(MHEG5Program *)
unsigned char * STR_DataAlloc(unsigned int size)
MHEG5GList * MHEG5resolveGenericInteger(MHEG5GList *params, MHEG5Int *value)
void MHEG5StreamerAbortMeasurement(MHEG5Program *program)
Abort streaming performance measurement.
union sMH5GroupRef::@5 ptr
void MHEG5getDate(S32BIT *day, S32BIT *sec)
Modified Julian Date - see Davic 9.2.12.1.
S_CRID_DETAILS * DVB_MhegPvrGetDetails(S_STRING crid)
Required by Australia profile only. Returns the type, name, description and a single booking section ...
void MHEG5objRefStoreValue(MHEG5ObjectRefVariable *objRef, MH5GroupRef ref, MHEG5Int id)
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...
Implementation of the Group class Description Defines the structure and behaviour of objects used as ...
void MHEG5SetHybridFileSystem(MHEG5String *pathName, MHEG5String *mappingList)
Set mapping list in the hybrid file system. This function sets, clears or modifies the list of mappin...
MHEG5Bool MHEG5RequestMPEGDecoder(MHEG5Bool request)
Requests exclusive access to a MPEG decoder and video plane to display I-frames. The MPEG decoder sha...
E_MhegErr DVB_MhegGetBannerTransparency(S32BIT *transparency)
Return the banner transparency as a percentage 0-100, where 100 is fully transparent. This setting is related to the information banner on the native UI of the receiver.
union MHEG5Generic::@6 value
MHEG5Ingredient ingredient
MHEG5String MHEG5stringCopy(MHEG5String source)
<Function description>="">
#define FRP_CACHE_DEFAULT
MHEG5Bool MHEG5CookieRetrieve(MHEG5cookie_t *cookie)
Retrieve a specific cookie from the store, referenced by the identity string.
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
void MHEG5ProgramSetStartFunc(MHEG5Program *program)
Test if the program NAME is included in this profile and get the start function to execute...
MHEG5Bool MHEG5parseEncodeQPrintable(MHEG5Byte **buffer, MHEG5Int *used, MHEG5Int *allocated, MHEG5Generic *value)
Add a value to the buffer. The value is QPrintable-encoded, which means that printable characters are...
void MHEG5stringDestruct(MHEG5String *item)
Destruct a MHEG5String.
MHEG5String MHEG5GetBootInfo(MHEG5Bool *InfoResultVal)
Tell whether a network_boot_info sub-descriptor has been found and received. If so, returns the value of the NB_info field of the network_boot_info sub-descriptor. This function is used by the GetBootInfo resident program. See UK1.06 profile section 3.10.7.3.
E_MhegErr DVB_MhegGetSubtitleLangs(S32BIT serviceIndex, S32BIT eventIndex, U8BIT *subsLangs)
Return a list of available subtitles languages for the specified event. The language list is extracte...
void MHEG5StreamerMeasurePerformance(MHEG5String *url, MHEG5Int maxBytes, MHEG5Program *program)
Measure streaming performance (bytes per second). The result is returned to the resident program...
DVB Video functions are required by MHEG5 engine. All required functions should be non-blocking...
string parsing utility functions for MHEG5
void MHEG5objRefValueDestruct(MHEG5ObjectRefVariable *objRef)
void DVB_MhegPvrReleaseList(S_CRID_REC *crid_array)
MHEG indicates that it is finished using the array returned by DVB_MhegPvrListBookings(). For example, platforms that malloc memory for this, may wish to free the memory here.
BOOLEAN DVB_MhegGetSubtitlePref(void)
This function is used by the MHEG-5 engine to determine whether subtitles are currently enabled...
void MHEG5FileOrmClear(void *orm_ref)
Aborts a request for file.
DVB Service information functions are required by MHEG5 engine. All required functions should be non-...
MHEG5GList * MHEG5resolveGenericCRef(MHEG5GList *params, MHEG5String *data, MHEG5Bool *referenced, MHEG5Bool *valid)
E_MhegErr DVB_MhegGetNativeReminder(S32BIT serviceIndex, S32BIT eventId, BOOLEAN *set)
Return whether a native reminder has been set for the given event on the given service. This MUST be a non-blocking function, returning results immediately.
MHEG5ErrorCode(* startFunc)(struct MHEG5Program_struct *)
This file defines the profile for the MHEG engine.
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 MHEG5TuneIndexInfo(MHEG5Int tuneInfo)
Sets the way the application expects the receiver is to perform all subsequence application initiated...
E_MhegErr DVB_MhegGetADLangs(S32BIT serviceIndex, S32BIT eventIndex, U8BIT *adLangs)
Return a list of available audio description languages for the specified event. The language list is ...
MHEG5String MH5_WhoAmI(void)
Used by the WhoAmI resident program to obtain WhoAmI string. See UK1.06 profile section 3...
Implementation of the resident programs which are defined by the current profile. ...
MHEG5 PVR functions for New Zealand or Australia profile References: [1] UK1 Profile - Digital Terres...
BOOLEAN DVB_MhegAudioDescriptionPref(void)
This function is used by the MHEG-5 engine to determine whether audio description is currently enable...
void DVB_MhegPvrReleaseDetails(S_CRID_DETAILS *details)
Required by Australia profile only. MHEG indicates that it is finished using the CRID details returne...
MHEG5Bool MHEG5CookieAdd(MHEG5cookie_t *cookie)
Directly add a cookie to the store.
void MHEG5objRefStoreString(MHEG5ObjectRefVariable *objRef, MHEG5String ref, MHEG5Int id)
E_MhegErr DVB_MhegCancelNativeReminder(S32BIT serviceIndex, S32BIT eventId)
Cancel any native reminder set for the given event on the given service. This MUST be a non-blocking ...
Native language, reminder and banner functions for South Africa profile.
E_MhegErr DVB_MhegSetNativeReminder(S32BIT serviceIndex, S32BIT eventId, BOOLEAN *result)
Set a native reminder for the given event on the given service. This MUST be a non-blocking function...
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
#define UND_LANGUAGE_CODE
MHEG5Bool MHEG5GetBasicSI(MHEG5Int serviceIndex, MHEG5Int *networkID, MHEG5Int *origNetworkID, MHEG5Int *transportStreamID, MHEG5Int *serviceID)
Returns a series of integers representing basic Service Information (SI) about a service. The service is identified by means of a receiver specific "ServiceIndex". This integer can be determined by means of the SI_GetServiceIndex resident program (see 3.10.6.1, "SI_GetServiceIndex", on page 3-20). This function is used by the SI_TuneIndexInfo resident program. See UK1.06 profile section 3.10.6.3.
MHEG5ErrorCode(* startFunction)(MHEG5Program *)
void MHEG5ingredientDeactivate(MHEG5Ingredient *ingredient)
Implementation of Deactivate behaviour Inherrited from Root class.
Implement functions to retrieve MHEG5objects by GroupID and ID.
Mheg5 logging and debug printing.
File interface functions to DSMCC component.
U8BIT DVB_MhegPrefAudioLangs(U32BIT *langs, U8BIT max)
Get list of preferred audio languages. If there is no preference then zero is returned. This only writes into array up to 'max' items This MUST be a non-blocking function, returning results immediately.
DVB Audio functions are required by MHEG5 engine. All required functions should be non-blocking...
E_MhegErr DVB_MhegPvrCancelBooking(S_STRING crid, U16BIT crid_type)
Removes an event from the PVR schedule.
Functions relating to HTTP Cookie Store.
void MHEG5sendEvent(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the asynchronous event queue.
MHEG5Bool MHEG5TuneIndex(MHEG5Int serviceIndex)
Ref: [1] - 3.10.6.2 Tune to the specified service. If the tuner fails to tune to the service it shoul...
MHEG5String MHEG5formatDate(MHEG5String format, S32BIT day, S32BIT sec)
Format date - See Davic part 9.0 - 9.2.12.1.
void MHEG5NotifyBookingResult(E_MhegErr result)
This should be called, and only called, when DVB_MhegPvrMakeBooking() has previously returned with MH...
MHEG5GList * MHEG5resolveGenericBoolean(MHEG5GList *params, MHEG5Bool *value)
MHEG5Bool MHEG5IsInputMaskSupported(MHEG5String query_mask)
Tell whether the set of keys indicated by the input mask is supported by the receiver (this means tha...
MHEG5GList * MHEG5resolveORef(MHEG5GList *params, MHEG5Root **object)
MHEG5Int MHEG5GetDisplayAspectRatio(void)
Reads the format of the connected display (4:3 or 16:9) This function is used by the GetDisplayAspect...
MHEG5GList * MHEG5resolveGenericGeneric(MHEG5GList *params, MHEG5Generic *value)
References: [1] UK1 Profile - Digital Terrestrial Television - Requirements for interoperability (The...
Implement generic MHEG5-display functions - independent from the OSD These are generic functions used...
MHEG5Bool MHEG5GetTpsStatus()
Get the status of the TPS store for the PST resident program. none.
Video Scaling / Positioning functionality.
void MHEG5enableEventProcessing(MHEG5Bool enable)
Enable or disable engine event processing. This function is used to implement the Call action for res...
void MHEG5PromotionalLinkControl(BOOLEAN isEnabled)
E_MhegErr DVB_MhegPvrMakeBooking(S_STRING crid, S_CRID_DETAILS *details)
The function adds an event to the PVR’s list of scheduled events to record. The type of CRID can be a...
E_MhegErr DVB_MhegGetOSDLanguage(U8BIT *language)
Return the language of the native UI (menu etc.) as a three character code as defined by ISO 639-2...
Functions relating to Hybrid file system.
Key Press related functionality.
S_CRID_REC * DVB_MhegPvrListBookings(U16BIT *number)
Returns an array of CRIDs (and CRID types for NZ profile) that are being monitored by the PVR...
MHEG5GList * MHEG5resolveGenericORefProper(MHEG5GList *params, MH5GroupRef *pgroupRef, MHEG5Int *id)
Resolve a generic object reference, returning the object reference. The reference can be direct or in...
Engine support utility functions for MHEG5.