summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Schmirler <vdr@schmirler.de>2011-09-02 13:11:13 +0200
committerFrank Schmirler <vdr@schmirler.de>2011-09-02 13:11:13 +0200
commitcc74cba39690f94d622b84f6a6196e8348ef23d1 (patch)
tree50de9dc55b76f14f131389a3aff0b85d28d2a68f
parent2c8377d42a9ebd7c399322968d2c78fb377f55b0 (diff)
downloadvdr-plugin-streamdev-cc74cba39690f94d622b84f6a6196e8348ef23d1.tar.gz
vdr-plugin-streamdev-cc74cba39690f94d622b84f6a6196e8348ef23d1.tar.bz2
check availability of channel if VTP command TUNE is called without prior
PROV call (e.g. client side EPG scan)
-rw-r--r--HISTORY2
-rw-r--r--server/connectionVTP.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/HISTORY b/HISTORY
index 051e23b..9ba250c 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,6 +1,8 @@
VDR Plugin 'streamdev' Revision History
---------------------------------------
+- check availability of channel if VTP command TUNE is called without
+ prior PROV call (e.g. client side EPG scan)
- added support for VDR 1.7.19 SignalStrength/SignalQuality
- analog video channels use the same transponder and pid for different
channels, so streamdev-client must always issue TUNE command
diff --git a/server/connectionVTP.c b/server/connectionVTP.c
index 64b5f37..8224d1d 100644
--- a/server/connectionVTP.c
+++ b/server/connectionVTP.c
@@ -1089,14 +1089,16 @@ bool cConnectionVTP::CmdTUNE(char *Opts)
return Respond(550, "Undefined channel \"%s\"", Opts);
if (chan != m_TuneChannel) {
- esyslog("streamdev-server TUNE %s: Priority unknown - using 0", Opts);
+ isyslog("streamdev-server TUNE %s: Priority unknown - using 0", Opts);
prio = 0;
+ if (!ProvidesChannel(chan, prio))
+ return Respond(560, "Channel not available (ProvidesChannel)");
}
if ((dev = GetDevice(chan, prio)) == NULL)
- return Respond(560, "Channel not available");
+ return Respond(560, "Channel not available (GetDevice)");
if (!dev->SwitchChannel(chan, false))
- return Respond(560, "Channel not available");
+ return Respond(560, "Channel not available (SwitchChannel)");
delete m_LiveStreamer;
m_LiveStreamer = new cStreamdevLiveStreamer(prio, this);