summaryrefslogtreecommitdiff
path: root/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'status.c')
-rw-r--r--status.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/status.c b/status.c
index d590d59..45db455 100644
--- a/status.c
+++ b/status.c
@@ -44,13 +44,25 @@ void cDynamiteStatus::Init(void)
if (isnumber(cid)) // for compatibility with old setup.conf files
startupChannel = atoi(cid);
else {
- if (cChannel *Channel = Channels.GetByChannelID(tChannelID::FromString(cid))) {
+#if VDRVERSNUM > 20300
+ LOCK_CHANNELS_READ;
+ const cChannels *vdrchannels = Channels;
+#else
+ cChannels *vdrchannels = &Channels;
+#endif
+ if (const cChannel *Channel = vdrchannels->GetByChannelID(tChannelID::FromString(cid))) {
status = new cDynamiteStatus(Channel->Number());
return;
}
}
}
- if (cChannel *Channel = Channels.GetByNumber(startupChannel))
+#if VDRVERSNUM > 20300
+ LOCK_CHANNELS_READ;
+ const cChannels *vdrchannels = Channels;
+#else
+ cChannels *vdrchannels = &Channels;
+#endif
+ if (const cChannel *Channel = vdrchannels->GetByNumber(startupChannel))
status = new cDynamiteStatus(Channel->Number());
}
@@ -71,6 +83,12 @@ void cDynamiteStatus::SetStartupChannel(void)
return;
}
isyslog("dynamite: new device attached, retry switching to startup channel %d", status->startupChannel);
- if (!Channels.SwitchTo(status->startupChannel))
+#if VDRVERSNUM > 20300
+ LOCK_CHANNELS_READ;
+ const cChannels *vdrchannels = Channels;
+#else
+ cChannels *vdrchannels = &Channels;
+#endif
+ if (!vdrchannels->SwitchTo(status->startupChannel))
status->switchCount--;
}