summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-01-24 13:02:35 +0100
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-01-24 13:02:35 +0100
commitc9c2d953a56215d0db76b8cba4aa627f164a2fc9 (patch)
tree7dd05c7f5e355df1127c2017e1b0e7cb9659be75
parentb9b82875bad96d69e895d54ef0f88be998d12be2 (diff)
downloadvdr-plugin-skindesigner-c9c2d953a56215d0db76b8cba4aa627f164a2fc9.tar.gz
vdr-plugin-skindesigner-c9c2d953a56215d0db76b8cba4aa627f164a2fc9.tar.bz2
- retrieve ChannelName from 'info' and fallback via ChannelID from active channel list (reverse mechanism)
- remove exposing ChannelID (senseless as default 'info' is not containing it)
-rw-r--r--coreengine/definitions.h2
-rw-r--r--coreengine/listelements.c50
-rw-r--r--coreengine/viewdetail.c27
-rw-r--r--coreengine/viewelementsdisplaymenu.c28
-rw-r--r--skinskeleton/xmlfiles/displaymenurecordings.xml2
5 files changed, 53 insertions, 56 deletions
diff --git a/coreengine/definitions.h b/coreengine/definitions.h
index 57ce803..534f154 100644
--- a/coreengine/definitions.h
+++ b/coreengine/definitions.h
@@ -1168,7 +1168,6 @@ enum class eLeMenuRecordingsIT {
hasposter,
posterwidth,
posterheight,
- recchannelnumber,
framesPerSecond,
isHD,
isUHD,
@@ -1218,7 +1217,6 @@ enum class eCeMenuRecordingsIT {
hasposter,
posterwidth,
posterheight,
- recchannelnumber,
framesPerSecond,
isHD,
isUHD,
diff --git a/coreengine/listelements.c b/coreengine/listelements.c
index 6f66097..6c500bf 100644
--- a/coreengine/listelements.c
+++ b/coreengine/listelements.c
@@ -1756,7 +1756,6 @@ void cLeMenuRecordings::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{isRadio}", (int)eLeMenuRecordingsIT::isRadio);
tokenContainer->DefineStringToken("{recchannelname}", (int)eLeMenuRecordingsST::recchannelname);
tokenContainer->DefineStringToken("{recchannelid}", (int)eLeMenuRecordingsST::recchannelid);
- tokenContainer->DefineIntToken("{recchannelnumber}", (int)eLeMenuRecordingsIT::recchannelnumber);
InheritTokenContainer();
}
@@ -1856,21 +1855,21 @@ bool cLeMenuRecordings::Parse(bool forced) {
delete[] recName;
if (info) {
+ if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
+ tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelname, info->ChannelName());
+ tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelid, info->ChannelID().ToString());
+ } else {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
- LOCK_CHANNELS_READ;
- const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
+ LOCK_CHANNELS_READ;
+ const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
#else
- const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
+ const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
#endif
- if (channel) {
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelname, channel->Name());
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelid, *channel->GetChannelID().ToString());
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::recchannelnumber, channel->Number());
- } else {
- // fallback to information provided in 'info' if channel is no longer found in active channels
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelname, info->ChannelName());
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelid, info->ChannelID().ToString());
- }
+ if (channel) {
+ tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelname, channel->Name());
+ tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelid, *channel->GetChannelID().ToString());
+ }
+ }
}
cString recDate = event->GetDateString();
@@ -2031,7 +2030,6 @@ void cCeMenuRecordings::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{isRadio}", (int)eCeMenuRecordingsIT::isRadio);
tokenContainer->DefineStringToken("{recchannelname}", (int)eCeMenuRecordingsST::recchannelname);
tokenContainer->DefineStringToken("{recchannelid}", (int)eCeMenuRecordingsST::recchannelid);
- tokenContainer->DefineIntToken("{recchannelnumber}", (int)eCeMenuRecordingsIT::recchannelnumber);
InheritTokenContainer();
}
@@ -2137,21 +2135,21 @@ bool cCeMenuRecordings::Parse(bool forced) {
if (!event) return true;
if (info) {
+ if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
+ tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelname, info->ChannelName());
+ tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelid, info->ChannelID().ToString());
+ } else {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
- LOCK_CHANNELS_READ;
- const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
+ LOCK_CHANNELS_READ;
+ const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
#else
- const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
+ const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
#endif
- if (channel) {
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelname, channel->Name());
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelid, *channel->GetChannelID().ToString());
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::recchannelnumber, channel->Number());
- } else {
- // fallback to information provided in 'info' if channel is no longer found in active channels
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelname, info->ChannelName());
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelid, info->ChannelID().ToString());
- }
+ if (channel) {
+ tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelname, channel->Name());
+ tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelid, *channel->GetChannelID().ToString());
+ }
+ }
}
tokenContainer->AddStringToken((int)eCeMenuRecordingsST::epgname, info->Title() ? info->Title() : buffer.c_str());
diff --git a/coreengine/viewdetail.c b/coreengine/viewdetail.c
index e4791c6..b63e9df 100644
--- a/coreengine/viewdetail.c
+++ b/coreengine/viewdetail.c
@@ -812,24 +812,25 @@ void cViewDetailRec::SetRecInfos(void) {
const cRecordingInfo *info = recording->Info();
if (info) {
+ if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
+ tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelname, info->ChannelName());
+ tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelid, info->ChannelID().ToString());
+ tokenContainer->AddIntToken((int)eDmDetailedRecIT::recchannelnumber, 0); // cannot be provided, for backward compatibility only
+ } else {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
- LOCK_CHANNELS_READ;
- const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
+ LOCK_CHANNELS_READ;
+ const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
#else
- const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
+ const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
#endif
- if (channel) {
- tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelname, channel->Name());
- tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelid, *channel->GetChannelID().ToString());
- tokenContainer->AddIntToken((int)eDmDetailedRecIT::recchannelnumber, channel->Number());
- } else {
- // fallback to information provided in 'info' if channel is no longer found in active channels
- tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelname, info->ChannelName());
- tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelid, info->ChannelID().ToString());
- }
+ if (channel) {
+ tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelname, channel->Name());
+ tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelid, *channel->GetChannelID().ToString());
+ tokenContainer->AddIntToken((int)eDmDetailedRecIT::recchannelnumber, channel->Number());
+ }
+ }
}
-
if (index) {
int nLastIndex = index->Last();
if (nLastIndex) {
diff --git a/coreengine/viewelementsdisplaymenu.c b/coreengine/viewelementsdisplaymenu.c
index dad279a..5887f26 100644
--- a/coreengine/viewelementsdisplaymenu.c
+++ b/coreengine/viewelementsdisplaymenu.c
@@ -1219,22 +1219,24 @@ bool cVeDmDetailheaderRec::Parse(bool forced) {
tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info'
tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isRadio, RecordingIsRadio(event, info->FramesPerSecond())); // detect Radio from 'info' and FPS
}
+
+ if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
+ tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelname, info->ChannelName());
+ tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelid, info->ChannelID().ToString());
+ tokenContainer->AddIntToken((int)eDmDetailedRecIT::recchannelnumber, 0); // cannot be provided, for backward compatibility only
+ } else {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
- LOCK_CHANNELS_READ;
- const cChannels* channels = Channels;
+ LOCK_CHANNELS_READ;
+ const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
#else
- cChannels* channels = &Channels;
+ const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
#endif
- const cChannel *channel = channels->GetByChannelID(info->ChannelID());
- if (channel) {
- tokenContainer->AddStringToken((int)eDmDetailedHeaderRecST::recchannelname, channel->Name());
- tokenContainer->AddStringToken((int)eDmDetailedHeaderRecST::recchannelid, *channel->GetChannelID().ToString());
- tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::recchannelnumber, channel->Number());
- } else {
- // fallback to information provided in 'info' if channel is no longer found in active channels
- tokenContainer->AddStringToken((int)eDmDetailedHeaderRecST::recchannelname, info->ChannelName());
- tokenContainer->AddStringToken((int)eDmDetailedHeaderRecST::recchannelid, info->ChannelID().ToString());
- }
+ if (channel) {
+ tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelname, channel->Name());
+ tokenContainer->AddStringToken((int)eDmDetailedRecST::recchannelid, *channel->GetChannelID().ToString());
+ tokenContainer->AddIntToken((int)eDmDetailedRecIT::recchannelnumber, channel->Number());
+ }
+ }
}
string recImage = "";
string path = recording->FileName() ? recording->FileName() : "";
diff --git a/skinskeleton/xmlfiles/displaymenurecordings.xml b/skinskeleton/xmlfiles/displaymenurecordings.xml
index 9bde817..e46fd12 100644
--- a/skinskeleton/xmlfiles/displaymenurecordings.xml
+++ b/skinskeleton/xmlfiles/displaymenurecordings.xml
@@ -35,7 +35,6 @@
{posterpath} absolute path of scraped poster
{recchannelname} name of channel from which was recorded
{recchannelid} id of channel from which was recorded
- {recchannelnumber} number of channel from which was recorded
{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)
@@ -81,7 +80,6 @@
{bannerpath} absolute path of scraped banner
{recchannelname} name of channel from which was recorded
{recchannelid} id of channel from which was recorded
- {recchannelnumber} number of channel from which was recorded
{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)