summaryrefslogtreecommitdiff
path: root/uservars.h
diff options
context:
space:
mode:
authorFrank Neumann <fnu@yavdr.org>2017-05-01 11:02:21 +0200
committerFrank Neumann <fnu@yavdr.org>2017-05-01 11:02:21 +0200
commita46c7161bddc00b5b11bda0f8a14066b5f837302 (patch)
tree48e50b78f0efb1120b39bfb07f3612aabb1541e6 /uservars.h
parent0b09f90f361454d1d422cc750ee84359f11bd378 (diff)
downloadvdr-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.h42
1 files changed, 36 insertions, 6 deletions
diff --git a/uservars.h b/uservars.h
index 9366af0..1681f25 100644
--- a/uservars.h
+++ b/uservars.h
@@ -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;