summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-01-22 19:44:15 +0100
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-01-22 19:44:15 +0100
commit59248ccebb663fbd8633766490cfd862a0631c14 (patch)
treea2eeba1c87b8fe2073f713e36c6fab1d9ce06152
parentc0dad5a14f7ae8d95822b7fbe156472d87bada01 (diff)
parentefeb8d69c4c08664941a9b50904f9b2c2f6db0e5 (diff)
downloadvdr-plugin-skindesigner-59248ccebb663fbd8633766490cfd862a0631c14.tar.gz
vdr-plugin-skindesigner-59248ccebb663fbd8633766490cfd862a0631c14.tar.bz2
Merge branch 'pbiering/skindesigner-add-isRadio-to-recording'
-rw-r--r--HISTORY4
-rw-r--r--coreengine/definitions.h4
-rw-r--r--coreengine/listelements.c4
-rw-r--r--coreengine/viewdetail.c4
-rw-r--r--coreengine/viewelement.c61
-rw-r--r--coreengine/viewelement.h1
-rw-r--r--coreengine/viewelementsdisplaymenu.c2
-rw-r--r--skinskeleton/xmlfiles/displaymenudetailrecording.xml2
-rw-r--r--skinskeleton/xmlfiles/displaymenurecordings.xml2
9 files changed, 79 insertions, 5 deletions
diff --git a/HISTORY b/HISTORY
index 662f081..e6b5e0f 100644
--- a/HISTORY
+++ b/HISTORY
@@ -461,3 +461,7 @@ Version 1.2.8 (kamel5)
Version 1.2.9
- [pbiering] added tokens for framesPerSecond and isHD
- [pbiering] improve HD detection code, catch also stream content 9
+
+Version 1.2.10
+- [pbiering] added tokens for recordings: isUHD, isRadio
+- [pbiering] added token for channels: isUHD
diff --git a/coreengine/definitions.h b/coreengine/definitions.h
index a8360b3..6de0fdd 100644
--- a/coreengine/definitions.h
+++ b/coreengine/definitions.h
@@ -1169,6 +1169,7 @@ enum class eLeMenuRecordingsIT {
framesPerSecond,
isHD,
isUHD,
+ isRadio,
count
};
@@ -1215,6 +1216,7 @@ enum class eCeMenuRecordingsIT {
framesPerSecond,
isHD,
isUHD,
+ isRadio,
count
};
@@ -1328,6 +1330,7 @@ enum class eDmDetailedHeaderRecIT {
framesPerSecond,
isHD,
isUHD,
+ isRadio,
count
};
@@ -1438,6 +1441,7 @@ enum class eDmDetailedRecIT {
framesPerSecond,
isHD,
isUHD,
+ isRadio,
count
};
diff --git a/coreengine/listelements.c b/coreengine/listelements.c
index c46e723..8834b29 100644
--- a/coreengine/listelements.c
+++ b/coreengine/listelements.c
@@ -1753,6 +1753,7 @@ void cLeMenuRecordings::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{fps}", (int)eLeMenuRecordingsIT::framesPerSecond);
tokenContainer->DefineIntToken("{isHD}", (int)eLeMenuRecordingsIT::isHD);
tokenContainer->DefineIntToken("{isUHD}", (int)eLeMenuRecordingsIT::isUHD);
+ tokenContainer->DefineIntToken("{isRadio}", (int)eLeMenuRecordingsIT::isRadio);
InheritTokenContainer();
}
@@ -1883,6 +1884,7 @@ bool cLeMenuRecordings::Parse(bool forced) {
tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::framesPerSecond, info->FramesPerSecond());
tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::isHD, RecordingIsHD(event)); // detect HD from 'info'
tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info'
+ tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::isRadio, RecordingIsRadio(event)); // detect Radio from 'info'
SetScraperRecordingPoster(tokenContainer, usedRecording, true);
@@ -2006,6 +2008,7 @@ void cCeMenuRecordings::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{fps}", (int)eCeMenuRecordingsIT::framesPerSecond);
tokenContainer->DefineIntToken("{isHD}", (int)eCeMenuRecordingsIT::isHD);
tokenContainer->DefineIntToken("{isUHD}", (int)eCeMenuRecordingsIT::isUHD);
+ tokenContainer->DefineIntToken("{isRadio}", (int)eCeMenuRecordingsIT::isRadio);
InheritTokenContainer();
}
@@ -2143,6 +2146,7 @@ bool cCeMenuRecordings::Parse(bool forced) {
tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::framesPerSecond, info->FramesPerSecond());
tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::isHD, RecordingIsHD(event)); // detect HD from 'info'
tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info'
+ tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::isRadio, RecordingIsRadio(event)); // detect Radio from 'info'
SetScraperRecordingPoster(tokenContainer, usedRecording, false);
diff --git a/coreengine/viewdetail.c b/coreengine/viewdetail.c
index 2351e84..f20e848 100644
--- a/coreengine/viewdetail.c
+++ b/coreengine/viewdetail.c
@@ -606,6 +606,7 @@ void cViewDetailRec::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{fps}", (int)eDmDetailedRecIT::framesPerSecond);
tokenContainer->DefineIntToken("{isHD}", (int)eDmDetailedRecIT::isHD);
tokenContainer->DefineIntToken("{isUHD}", (int)eDmDetailedRecIT::isUHD);
+ tokenContainer->DefineIntToken("{isRadio}", (int)eDmDetailedRecIT::isRadio);
tokenContainer->DefineIntToken("{ismovie}", (int)eScraperIT::ismovie);
tokenContainer->DefineIntToken("{moviebudget}", (int)eScraperIT::moviebudget);
tokenContainer->DefineIntToken("{movierevenue}", (int)eScraperIT::movierevenue);
@@ -696,7 +697,8 @@ bool cViewDetailRec::Parse(bool forced) {
tokenContainer->AddIntToken((int)eDmDetailedRecIT::durationeventhours, duration / 60);
tokenContainer->AddStringToken((int)eDmDetailedRecST::durationeventminutes, *cString::sprintf("%.2d", duration%60));
tokenContainer->AddIntToken((int)eDmDetailedRecIT::isHD, RecordingIsHD(event)); // detect HD from 'info'
- tokenContainer->AddIntToken((int)eDmDetailedRecIT::isUHD, RecordingIsUHD(event)); // detect HD from 'info'
+ tokenContainer->AddIntToken((int)eDmDetailedRecIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info'
+ tokenContainer->AddIntToken((int)eDmDetailedRecIT::isRadio, RecordingIsRadio(event)); // detect Radio from 'info'
}
}
SetRecInfos();
diff --git a/coreengine/viewelement.c b/coreengine/viewelement.c
index 370a58f..975757c 100644
--- a/coreengine/viewelement.c
+++ b/coreengine/viewelement.c
@@ -596,17 +596,17 @@ bool RecordingIsHD(const cEvent* event) {
int type = -1;
// #1: HVEC (stream content: 9)
- Component = Components->GetComponent(0, 9, 0);
+ Component = Components->GetComponent(0, 9, 0); // recording info: "X 9 <type>"
if (Component) {
isHD = true; // HVEC is always HD, type 4|5|6|7 would be even UHD (see below dedicated detection function)
} else {
// #2: H.264 (stream content: 5)
- Component = Components->GetComponent(0, 5, 0);
+ Component = Components->GetComponent(0, 5, 0); // recording info: "X 5 <type>"
if (Component) {
type = Component->type;
} else {
// #3: MPEG2 (stream content: 1)
- Component = Components->GetComponent(0, 1, 0);
+ Component = Components->GetComponent(0, 1, 0); // recording info: "X 1 <type>"
if (Component) {
type = Component->type;
};
@@ -641,7 +641,7 @@ bool RecordingIsUHD(const cEvent* event) {
int type = -1;
// HVEC (stream content: 9)
- Component = Components->GetComponent(0, 9, 0);
+ Component = Components->GetComponent(0, 9, 0); // recording info: "X 9 <type>"
if (Component) {
type = Component->type;
};
@@ -656,3 +656,56 @@ bool RecordingIsUHD(const cEvent* event) {
};
return isUHD;
};
+
+bool RecordingIsRadio(const cEvent* event) {
+ // detect Radio from 'info'
+ bool isRadio = false;
+ bool hasAudio = false;
+ bool hasVideo = false;
+ cComponents *Components = (cComponents *)event->Components();
+ if (Components) {
+ // Stream: 1 = MPEG2-Video, 2 = MPEG2 Audio, 3 = Untertitel, 4 = AC3-Audio, 5 = H.264-Video, 6 = HEAAC-Audio, 7 = DTS/DTS HD audio, 8 = SRM/CPCM data, 9 = HEVC Video, AC4 Audio
+
+ tComponent *Component;
+
+ Component = Components->GetComponent(0, 2, 0); // recording info: "X 2 <type>"
+ if (Component) {
+ hasAudio = true;
+ };
+
+ Component = Components->GetComponent(0, 4, 0); // recording info: "X 4 <type>"
+ if (Component) {
+ hasAudio = true;
+ };
+
+ Component = Components->GetComponent(0, 6, 0); // recording info: "X 6 <type>"
+ if (Component) {
+ hasAudio = true;
+ };
+
+ Component = Components->GetComponent(0, 7, 0); // recording info: "X 7 <type>"
+ if (Component) {
+ hasAudio = true;
+ };
+
+ Component = Components->GetComponent(0, 1, 0); // recording info: "X 1 <type>"
+ if (Component) {
+ hasVideo = true;
+ };
+
+ Component = Components->GetComponent(0, 5, 0); // recording info: "X 5 <type>"
+ if (Component) {
+ hasVideo = true;
+ };
+
+ Component = Components->GetComponent(0, 9, 0); // recording info: "X 9 <type>"
+ if (Component) {
+ hasVideo = true;
+ };
+ };
+
+ if ((hasAudio == true) && (hasVideo == false))
+ isRadio = true;
+
+ return isRadio;
+};
diff --git a/coreengine/viewelement.h b/coreengine/viewelement.h
index 83e9e11..7a58a7f 100644
--- a/coreengine/viewelement.h
+++ b/coreengine/viewelement.h
@@ -115,5 +115,6 @@ public:
******************************************************************/
bool RecordingIsHD(const cEvent* event);
bool RecordingIsUHD(const cEvent* event);
+bool RecordingIsRadio(const cEvent* event);
#endif //__VIEWELEMENT_H
diff --git a/coreengine/viewelementsdisplaymenu.c b/coreengine/viewelementsdisplaymenu.c
index bf4170e..15a161b 100644
--- a/coreengine/viewelementsdisplaymenu.c
+++ b/coreengine/viewelementsdisplaymenu.c
@@ -1169,6 +1169,7 @@ void cVeDmDetailheaderRec::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{fps}", (int)eDmDetailedHeaderRecIT::framesPerSecond);
tokenContainer->DefineIntToken("{isHD}", (int)eDmDetailedHeaderRecIT::isHD);
tokenContainer->DefineIntToken("{isUHD}", (int)eDmDetailedHeaderRecIT::isUHD);
+ tokenContainer->DefineIntToken("{isRadio}", (int)eDmDetailedHeaderRecIT::isRadio);
InheritTokenContainer();
}
@@ -1216,6 +1217,7 @@ bool cVeDmDetailheaderRec::Parse(bool forced) {
tokenContainer->AddStringToken((int)eDmDetailedHeaderRecST::durationeventminutes, *cString::sprintf("%.2d", duration%60));
tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isHD, RecordingIsHD(event)); // detect HD from 'info'
tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info'
+ tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isRadio, RecordingIsRadio(event)); // detect Radio from 'info'
}
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
LOCK_CHANNELS_READ;
diff --git a/skinskeleton/xmlfiles/displaymenudetailrecording.xml b/skinskeleton/xmlfiles/displaymenudetailrecording.xml
index 5d5b5b3..679bdc3 100644
--- a/skinskeleton/xmlfiles/displaymenudetailrecording.xml
+++ b/skinskeleton/xmlfiles/displaymenudetailrecording.xml
@@ -32,6 +32,7 @@
{framesPerSecond} frames per second (from EPG info)
{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)
-->
<detailheader>
</detailheader>
@@ -55,6 +56,7 @@
{framesPerSecond} frames per second (from EPG info)
{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)
{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 a5cf7bb..2a5ce3c 100644
--- a/skinskeleton/xmlfiles/displaymenurecordings.xml
+++ b/skinskeleton/xmlfiles/displaymenurecordings.xml
@@ -36,6 +36,7 @@
{framesPerSecond} frames per second (from EPG info)
{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)
-->
<listelement>
</listelement>
@@ -78,6 +79,7 @@
{framesPerSecond} frames per second (from EPG info)
{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)
-->
<currentelement delay="500" fadetime="0">
</currentelement>