diff options
| author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-05-30 13:11:40 +0200 |
|---|---|---|
| committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-05-30 14:15:00 +0200 |
| commit | 8aeb848044150f62c5bdd0f9f5c17f672b110386 (patch) | |
| tree | 46a5491b2dfd19e1a00610f26f6022f000c80589 | |
| parent | b55994a8a62b22ae3583e523c411f0bf4ffa0185 (diff) | |
| download | vdr-plugin-skindesigner-8aeb848044150f62c5bdd0f9f5c17f672b110386.tar.gz vdr-plugin-skindesigner-8aeb848044150f62c5bdd0f9f5c17f672b110386.tar.bz2 | |
Add token errors for recordings (VDR >= 2.5.4)
| -rw-r--r-- | coreengine/definitions.h | 4 | ||||
| -rw-r--r-- | coreengine/listelements.c | 30 | ||||
| -rw-r--r-- | coreengine/viewdetail.c | 6 | ||||
| -rw-r--r-- | coreengine/viewelementsdisplaymenu.c | 6 | ||||
| -rw-r--r-- | skinskeleton/xmlfiles/displaymenudetailrecording.xml | 2 | ||||
| -rw-r--r-- | skinskeleton/xmlfiles/displaymenurecordings.xml | 2 |
6 files changed, 41 insertions, 9 deletions
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) --> <detailheader> </detailheader> @@ -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) --> <listelement> </listelement> @@ -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) --> <currentelement delay="500" fadetime="0"> </currentelement> |
