diff options
author | Frank Neumann <fnu@yavdr.org> | 2017-05-01 11:02:21 +0200 |
---|---|---|
committer | Frank Neumann <fnu@yavdr.org> | 2017-05-01 11:02:21 +0200 |
commit | a46c7161bddc00b5b11bda0f8a14066b5f837302 (patch) | |
tree | 48e50b78f0efb1120b39bfb07f3612aabb1541e6 /uservars.h | |
parent | 0b09f90f361454d1d422cc750ee84359f11bd378 (diff) | |
download | vdr-plugin-epgsearch-a46c7161bddc00b5b11bda0f8a14066b5f837302.tar.gz vdr-plugin-epgsearch-a46c7161bddc00b5b11bda0f8a14066b5f837302.tar.bz2 |
Add compatibility for VDR 2.3.2+ (thx kamel5, mini73 & TomJoad)
Diffstat (limited to 'uservars.h')
-rw-r--r-- | uservars.h | 42 |
1 files changed, 36 insertions, 6 deletions
@@ -176,7 +176,13 @@ public: string Evaluate(const cEvent* e, bool escapeStrings = false) { if (!e) return ""; - cChannel *channel = Channels.GetByChannelID(e->ChannelID(), true); +#if VDRVERSNUM > 20300 + LOCK_CHANNELS_READ; + const cChannels *vdrchannels = Channels; +#else + cChannels *vdrchannels = &Channels; +#endif + const cChannel *channel = vdrchannels->GetByChannelID(e->ChannelID(), true); if (!channel) return ""; string res(channel->GetChannelID().ToString()); @@ -415,7 +421,13 @@ public: string Evaluate(const cEvent* e, bool escapeStrings = false) { if (!e) return ""; - cChannel *channel = Channels.GetByChannelID(e->ChannelID(), true); +#if VDRVERSNUM > 20300 + LOCK_CHANNELS_READ; + const cChannels *vdrchannels = Channels; +#else + cChannels *vdrchannels = &Channels; +#endif + const cChannel *channel = vdrchannels->GetByChannelID(e->ChannelID(), true); string res = channel?channel->ShortName(true):""; if (escapeStrings) return "'" + EscapeString(res) + "'"; else return res; } @@ -427,7 +439,13 @@ public: string Evaluate(const cEvent* e, bool escapeStrings = false) { if (!e) return ""; - cChannel *channel = Channels.GetByChannelID(e->ChannelID(), true); +#if VDRVERSNUM > 20300 + LOCK_CHANNELS_READ; + const cChannels *vdrchannels = Channels; +#else + cChannels *vdrchannels = &Channels; +#endif + const cChannel *channel = vdrchannels->GetByChannelID(e->ChannelID(), true); string res = channel?channel->Name():""; if (escapeStrings) return "'" + EscapeString(res) + "'"; else return res; } @@ -439,7 +457,13 @@ class cChannelDataVar : public cInternalVar { string Evaluate(const cEvent* e, bool escapeStrings = false) { if (!e) return ""; - cChannel *channel = Channels.GetByChannelID(e->ChannelID(), true); +#if VDRVERSNUM > 20300 + LOCK_CHANNELS_READ; + const cChannels *vdrchannels = Channels; +#else + cChannels *vdrchannels = &Channels; +#endif + const cChannel *channel = vdrchannels->GetByChannelID(e->ChannelID(), true); return channel?CHANNELSTRING(channel):""; } }; @@ -451,9 +475,15 @@ public: { if (!e) return ""; ostringstream os; - cChannel *channel = Channels.GetByChannelID(e->ChannelID(), true); +#if VDRVERSNUM > 20300 + LOCK_CHANNELS_READ; + const cChannels *vdrchannels = Channels; +#else + cChannels *vdrchannels = &Channels; +#endif + const cChannel *channel = vdrchannels->GetByChannelID(e->ChannelID(), true); while(channel && !channel->GroupSep()) - channel = Channels.Prev(channel); + channel = vdrchannels->Prev(channel); if (!channel || !channel->Name()) return ""; string grpName = channel->Name(); if (escapeStrings) return "'" + EscapeString(grpName) + "'"; else return grpName; |