diff options
| author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-01-24 13:06:13 +0100 |
|---|---|---|
| committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-01-24 13:06:13 +0100 |
| commit | 32559366584f241480ff9f7c2332569077c81930 (patch) | |
| tree | d723fd5c5ce67091e63c474976f37d5ed73138a2 /coreengine | |
| parent | 16eb7e8e53e3f627f21aa5d75a4e5e24a40a9ba1 (diff) | |
| parent | 1aead6d4008077380faebde1ad59d76cf41a8552 (diff) | |
| download | vdr-plugin-skindesigner-32559366584f241480ff9f7c2332569077c81930.tar.gz vdr-plugin-skindesigner-32559366584f241480ff9f7c2332569077c81930.tar.bz2 | |
Merge branch 'pbiering/skindesigner-add-menurecording-recchannel-and-add-fallback'
Diffstat (limited to 'coreengine')
| -rw-r--r-- | coreengine/definitions.h | 4 | ||||
| -rw-r--r-- | coreengine/listelements.c | 40 | ||||
| -rw-r--r-- | coreengine/viewdetail.c | 23 | ||||
| -rw-r--r-- | coreengine/viewelementsdisplaymenu.c | 24 |
4 files changed, 73 insertions, 18 deletions
diff --git a/coreengine/definitions.h b/coreengine/definitions.h index 6de0fdd..534f154 100644 --- a/coreengine/definitions.h +++ b/coreengine/definitions.h @@ -1139,6 +1139,8 @@ enum class eLeMenuRecordingsST { durationeventminutes, thumbnailpath, posterpath, + recchannelname, + recchannelid, count }; @@ -1184,6 +1186,8 @@ enum class eCeMenuRecordingsST { durationeventminutes, thumbnailpath, posterpath, + recchannelname, + recchannelid, count }; diff --git a/coreengine/listelements.c b/coreengine/listelements.c index 0599124..6c500bf 100644 --- a/coreengine/listelements.c +++ b/coreengine/listelements.c @@ -1754,6 +1754,8 @@ void cLeMenuRecordings::SetTokenContainer(void) { tokenContainer->DefineIntToken("{isHD}", (int)eLeMenuRecordingsIT::isHD); tokenContainer->DefineIntToken("{isUHD}", (int)eLeMenuRecordingsIT::isUHD); tokenContainer->DefineIntToken("{isRadio}", (int)eLeMenuRecordingsIT::isRadio); + tokenContainer->DefineStringToken("{recchannelname}", (int)eLeMenuRecordingsST::recchannelname); + tokenContainer->DefineStringToken("{recchannelid}", (int)eLeMenuRecordingsST::recchannelid); InheritTokenContainer(); } @@ -1852,6 +1854,24 @@ bool cLeMenuRecordings::Parse(bool forced) { tokenContainer->AddStringToken((int)eLeMenuRecordingsST::epgname, info->Title() ? info->Title() : recName); 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()); +#else + 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()); + } + } + } + cString recDate = event->GetDateString(); cString recTime = event->GetTimeString(); if (strstr(*recDate, "1970")) { @@ -2008,6 +2028,8 @@ void cCeMenuRecordings::SetTokenContainer(void) { tokenContainer->DefineIntToken("{isHD}", (int)eCeMenuRecordingsIT::isHD); tokenContainer->DefineIntToken("{isUHD}", (int)eCeMenuRecordingsIT::isUHD); tokenContainer->DefineIntToken("{isRadio}", (int)eCeMenuRecordingsIT::isRadio); + tokenContainer->DefineStringToken("{recchannelname}", (int)eCeMenuRecordingsST::recchannelname); + tokenContainer->DefineStringToken("{recchannelid}", (int)eCeMenuRecordingsST::recchannelid); InheritTokenContainer(); } @@ -2112,6 +2134,24 @@ bool cCeMenuRecordings::Parse(bool forced) { event = info->GetEvent(); 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()); +#else + 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->AddStringToken((int)eCeMenuRecordingsST::epgname, info->Title() ? info->Title() : buffer.c_str()); cString recDate = event->GetDateString(); cString recTime = event->GetTimeString(); diff --git a/coreengine/viewdetail.c b/coreengine/viewdetail.c index bb6d8b5..b63e9df 100644 --- a/coreengine/viewdetail.c +++ b/coreengine/viewdetail.c @@ -812,20 +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());
- }
+ 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 650fae7..5887f26 100644 --- a/coreengine/viewelementsdisplaymenu.c +++ b/coreengine/viewelementsdisplaymenu.c @@ -1219,18 +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()); - } + 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() : ""; |
