diff --git a/coreengine/definitions.h b/coreengine/definitions.h
index ffc4efb..421c8de 100644
--- a/coreengine/definitions.h
+++ b/coreengine/definitions.h
@@ -1186,6 +1186,7 @@ enum class eLeMenuRecordingsIT {
isRadio,
isRecording,
isInUse,
+ errors,
count
};
@@ -1237,6 +1238,7 @@ enum class eCeMenuRecordingsIT {
isRadio,
isRecording,
isInUse,
+ errors,
count
};
@@ -1353,6 +1355,7 @@ enum class eDmDetailedHeaderRecIT {
isRadio,
isRecording,
isInUse,
+ errors,
count
};
@@ -1466,6 +1469,7 @@ enum class eDmDetailedRecIT {
isRadio,
isRecording,
isInUse,
+ errors,
count
};
diff --git a/coreengine/listelements.c b/coreengine/listelements.c
index a402fa1..10d4837 100644
--- a/coreengine/listelements.c
+++ b/coreengine/listelements.c
@@ -152,6 +152,7 @@
tokenContainer->DefineIntToken("{isRadio}", (int)token_it::isRadio); \
tokenContainer->DefineIntToken("{isRecording}", (int)token_it::isRecording); \
tokenContainer->DefineIntToken("{isInUse}", (int)token_it::isInUse); \
+ tokenContainer->DefineIntToken("{errors}", (int)token_it::errors); \
tokenContainer->DefineStringToken("{recchannelname}", (int)token_st::recchannelname); \
tokenContainer->DefineStringToken("{recchannelid}", (int)token_st::recchannelid); \
}
@@ -209,8 +210,9 @@
tokenContainer->AddIntToken((int)token_it::isHD, RecordingIsHD(event)); /* detect HD from 'info' */ \
tokenContainer->AddIntToken((int)token_it::isUHD, RecordingIsUHD(event)); /* detect UHD from 'info' */ \
tokenContainer->AddIntToken((int)token_it::isRadio, RecordingIsRadio(event, info->FramesPerSecond())); /* detect Radio from 'info' and FPS */ \
- tokenContainer->AddIntToken((int)token_it::isRecording, usedRecording->IsInUse() & ruTimer); \
- tokenContainer->AddIntToken((int)token_it::isInUse, usedRecording->IsInUse()); \
+ tokenContainer->AddIntToken((int)token_it::isRecording, usedRecording->IsInUse() & ruTimer); \
+ tokenContainer->AddIntToken((int)token_it::isInUse, usedRecording->IsInUse()); \
+ tokenContainer->AddIntToken((int)token_it::errors, errors); \
}
/*-------------------------------------------------------------------------------------------------------*/
@@ -2055,6 +2057,11 @@ bool cLeMenuRecordings::Parse(bool forced) {
recTime = TimeString(start);
}
+ int errors = -1;
+#if defined (APIVERSNUM) && (APIVERSNUM >= 20504)
+ errors = info->Errors();
+#endif
+
// do the same stuff as in cCeMenuRecordings::Parse() (part 2)
ADD_TOKEN_MR2(TOKEN_LMR_IT, TOKEN_LMR_ST);
SetScraperRecordingPoster(tokenContainer, usedRecording, true);
@@ -2244,10 +2251,10 @@ bool cCeMenuRecordings::Parse(bool forced) {
if (!event) return true;
if (info) {
- if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
- ADD_TOKEN_CMR_ST(recchannelname, info->ChannelName());
- ADD_TOKEN_CMR_ST(recchannelid, info->ChannelID().ToString());
- } else {
+ if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
+ ADD_TOKEN_CMR_ST(recchannelname, info->ChannelName());
+ ADD_TOKEN_CMR_ST(recchannelid, info->ChannelID().ToString());
+ } else {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
@@ -2255,10 +2262,10 @@ bool cCeMenuRecordings::Parse(bool forced) {
const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
#endif
if (channel) {
- ADD_TOKEN_CMR_ST(recchannelname, channel->Name());
- ADD_TOKEN_CMR_ST(recchannelid, *channel->GetChannelID().ToString());
+ ADD_TOKEN_CMR_ST(recchannelname, channel->Name());
+ ADD_TOKEN_CMR_ST(recchannelid, *channel->GetChannelID().ToString());
+ }
}
- }
}
ADD_TOKEN_CMR_ST(epgname, info->Title() ? info->Title() : buffer.c_str());
@@ -2270,6 +2277,11 @@ bool cCeMenuRecordings::Parse(bool forced) {
recTime = TimeString(start);
}
+ int errors = -1;
+#if defined (APIVERSNUM) && (APIVERSNUM >= 20504)
+ errors = info->Errors();
+#endif
+
// do the same stuff as in cLeMenuRecordings::Parse() (part 2)
ADD_TOKEN_MR2(TOKEN_CMR_IT, TOKEN_CMR_ST);
SetScraperRecordingPoster(tokenContainer, usedRecording, false);
diff --git a/coreengine/viewdetail.c b/coreengine/viewdetail.c
index d52219d..56910d3 100644
--- a/coreengine/viewdetail.c
+++ b/coreengine/viewdetail.c
@@ -609,6 +609,7 @@ void cViewDetailRec::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{isRadio}", (int)eDmDetailedRecIT::isRadio);
tokenContainer->DefineIntToken("{isRecording}", (int)eDmDetailedRecIT::isRecording);
tokenContainer->DefineIntToken("{isInUse}", (int)eDmDetailedRecIT::isInUse);
+ tokenContainer->DefineIntToken("{errors}", (int)eDmDetailedRecIT::errors);
tokenContainer->DefineIntToken("{ismovie}", (int)eScraperIT::ismovie);
tokenContainer->DefineIntToken("{moviebudget}", (int)eScraperIT::moviebudget);
tokenContainer->DefineIntToken("{movierevenue}", (int)eScraperIT::movierevenue);
@@ -673,6 +674,11 @@ bool cViewDetailRec::Parse(bool forced) {
tokenContainer->AddStringToken((int)eDmDetailedRecST::shorttext, info->ShortText());
tokenContainer->AddStringToken((int)eDmDetailedRecST::description, info->Description());
tokenContainer->AddIntToken((int)eDmDetailedRecIT::framesPerSecond, info->FramesPerSecond());
+ int errors = -1;
+#if defined (APIVERSNUM) && (APIVERSNUM >= 20504)
+ errors = info->Errors();
+#endif
+ tokenContainer->AddIntToken((int)eDmDetailedRecIT::errors, errors);
const cEvent *event = info->GetEvent();
if (event) {
cString recDate = event->GetDateString();
diff --git a/coreengine/viewelementsdisplaymenu.c b/coreengine/viewelementsdisplaymenu.c
index 1eb7374..24240a7 100644
--- a/coreengine/viewelementsdisplaymenu.c
+++ b/coreengine/viewelementsdisplaymenu.c
@@ -1208,6 +1208,7 @@ void cVeDmDetailheaderRec::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{isRadio}", (int)eDmDetailedHeaderRecIT::isRadio);
tokenContainer->DefineIntToken("{isRecording}", (int)eDmDetailedHeaderRecIT::isRecording);
tokenContainer->DefineIntToken("{isInUse}", (int)eDmDetailedHeaderRecIT::isInUse);
+ tokenContainer->DefineIntToken("{errors}", (int)eDmDetailedHeaderRecIT::errors);
InheritTokenContainer();
}
@@ -1228,6 +1229,11 @@ bool cVeDmDetailheaderRec::Parse(bool forced) {
tokenContainer->AddStringToken((int)eDmDetailedHeaderRecST::epgname, info->Title());
tokenContainer->AddStringToken((int)eDmDetailedHeaderRecST::shorttext, info->ShortText());
tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::framesPerSecond, info->FramesPerSecond());
+ int errors = -1;
+#if defined (APIVERSNUM) && (APIVERSNUM >= 20504)
+ errors = info->Errors();
+#endif
+ tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::errors, errors);
const cEvent *event = info->GetEvent();
if (event) {
cString recDate = event->GetDateString();
diff --git a/skinskeleton/xmlfiles/displaymenudetailrecording.xml b/skinskeleton/xmlfiles/displaymenudetailrecording.xml
index 679bdc3..a53e17d 100644
--- a/skinskeleton/xmlfiles/displaymenudetailrecording.xml
+++ b/skinskeleton/xmlfiles/displaymenudetailrecording.xml
@@ -33,6 +33,7 @@
{isHD} true if recording is HD/UHD (from EPG info)
{isUHD} true if recording is UHD (from EPG info)
{isRadio} true if recording is AudioOnly (from EPG info)
+ {errors} recording errors (-1 if not available)
-->
@@ -57,6 +58,7 @@
{isHD} true if recording is HD/UHD (from EPG info)
{isUHD} true if recording is HD (from EPG info)
{isRadio} true if recording is AudioOnly (from EPG info)
+ {errors} recording errors (-1 if not available)
{recordingsize} size of recording (automatically in GB / MB)
{recordingsizecutted} size of cutted recording (automatically in GB / MB)
diff --git a/skinskeleton/xmlfiles/displaymenurecordings.xml b/skinskeleton/xmlfiles/displaymenurecordings.xml
index e46fd12..e046dd4 100644
--- a/skinskeleton/xmlfiles/displaymenurecordings.xml
+++ b/skinskeleton/xmlfiles/displaymenurecordings.xml
@@ -39,6 +39,7 @@
{isHD} true if recording is HD/UHD (from EPG info)
{isUHD} true if recording is UHD (from EPG info)
{isRadio} true if recording is AudioOnly (from EPG info)
+ {errors} recording errors (-1 if not available)
-->
@@ -84,6 +85,7 @@
{isHD} true if recording is HD/UHD (from EPG info)
{isUHD} true if recording is UHD (from EPG info)
{isRadio} true if recording is AudioOnly (from EPG info)
+ {errors} recording errors (-1 if not available)
-->