summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorFrank Schmirler <vdr@schmirler.de>2011-07-06 09:13:50 +0200
committerFrank Schmirler <vdr@schmirler.de>2011-07-06 09:13:50 +0200
commit2c8377d42a9ebd7c399322968d2c78fb377f55b0 (patch)
treecf94f08eac64285d908e35b9b4d0dcdb09e83e74 /server
parent673fbae2e258102c7bd2a7bee554f75eae0e332b (diff)
downloadvdr-plugin-streamdev-2c8377d42a9ebd7c399322968d2c78fb377f55b0.tar.gz
vdr-plugin-streamdev-2c8377d42a9ebd7c399322968d2c78fb377f55b0.tar.bz2
added support for VDR 1.7.19 SignalStrength/SignalQuality
Diffstat (limited to 'server')
-rw-r--r--server/connectionVTP.c13
-rw-r--r--server/connectionVTP.h1
-rw-r--r--server/livestreamer.c11
-rw-r--r--server/livestreamer.h1
4 files changed, 26 insertions, 0 deletions
diff --git a/server/connectionVTP.c b/server/connectionVTP.c
index 2719fb4..64b5f37 100644
--- a/server/connectionVTP.c
+++ b/server/connectionVTP.c
@@ -840,6 +840,7 @@ bool cConnectionVTP::Command(char *Cmd)
else if (strcasecmp(Cmd, "TUNE") == 0) return CmdTUNE(param);
else if (strcasecmp(Cmd, "PLAY") == 0) return CmdPLAY(param);
else if (strcasecmp(Cmd, "PRIO") == 0) return CmdPRIO(param);
+ else if (strcasecmp(Cmd, "SGNL") == 0) return CmdSGNL(param);
else if (strcasecmp(Cmd, "ADDP") == 0) return CmdADDP(param);
else if (strcasecmp(Cmd, "DELP") == 0) return CmdDELP(param);
else if (strcasecmp(Cmd, "ADDF") == 0) return CmdADDF(param);
@@ -1155,6 +1156,18 @@ bool cConnectionVTP::CmdPRIO(char *Opts)
return Respond(550, "Priority not applicable");
}
+bool cConnectionVTP::CmdSGNL(char *Opts)
+{
+ if (m_LiveStreamer) {
+ int devnum = -1;
+ int signal = -1;
+ int quality = -1;
+ m_LiveStreamer->GetSignal(&devnum, &signal, &quality);
+ return Respond(220, "%d %d:%d", devnum, signal, quality);
+ }
+ return Respond(550, "Signal not applicable");
+}
+
bool cConnectionVTP::CmdADDP(char *Opts)
{
int pid;
diff --git a/server/connectionVTP.h b/server/connectionVTP.h
index ee842fe..2d683f3 100644
--- a/server/connectionVTP.h
+++ b/server/connectionVTP.h
@@ -65,6 +65,7 @@ public:
bool CmdTUNE(char *Opts);
bool CmdPLAY(char *Opts);
bool CmdPRIO(char *Opts);
+ bool CmdSGNL(char *Opts);
bool CmdADDP(char *Opts);
bool CmdDELP(char *Opts);
bool CmdADDF(char *Opts);
diff --git a/server/livestreamer.c b/server/livestreamer.c
index f17025d..144f353 100644
--- a/server/livestreamer.c
+++ b/server/livestreamer.c
@@ -440,6 +440,17 @@ void cStreamdevLiveStreamer::SetPriority(int Priority)
StartReceiver();
}
+void cStreamdevLiveStreamer::GetSignal(int *DevNum, int *Strength, int *Quality) const
+{
+ if (m_Device) {
+ *DevNum = m_Device->DeviceNumber() + 1;
+#if APIVERSNUM >= 10719
+ *Strength = m_Device->SignalStrength();
+ *Quality = m_Device->SignalQuality();
+#endif
+ }
+}
+
void cStreamdevLiveStreamer::StartReceiver(void)
{
if (m_NumPids > 0) {
diff --git a/server/livestreamer.h b/server/livestreamer.h
index 71feb4c..6203966 100644
--- a/server/livestreamer.h
+++ b/server/livestreamer.h
@@ -39,6 +39,7 @@ public:
bool SetPids(int Pid, const int *Pids1 = NULL, const int *Pids2 = NULL, const int *Pids3 = NULL);
bool SetChannel(const cChannel *Channel, eStreamType StreamType, const int* Apid = NULL, const int* Dpid = NULL);
void SetPriority(int Priority);
+ void GetSignal(int *DevNum, int *Strength, int *Quality) const;
virtual int Put(const uchar *Data, int Count);
virtual uchar *Get(int &Count);