Added DeviceName() and DeviceType() to client device. The server IP and the

number of the device used on the server are returned respectively.
This commit is contained in:
Frank Schmirler 2012-06-07 19:23:14 +02:00
parent af48d11b18
commit 5cfa16c402
5 changed files with 32 additions and 5 deletions

View File

@ -1,6 +1,9 @@
VDR Plugin 'streamdev' Revision History VDR Plugin 'streamdev' Revision History
--------------------------------------- ---------------------------------------
- Added DeviceName() and DeviceType() to client device. The server IP and the
number of the device used on the server are returned respectively.
2012-05-29: Version 0.6.0 2012-05-29: Version 0.6.0
- Reimplemented some client device methods - Reimplemented some client device methods

View File

@ -318,17 +318,34 @@ void cStreamdevDevice::UpdatePriority(bool SwitchingChannels) {
} }
} }
cString cStreamdevDevice::DeviceName(void) const {
return StreamdevClientSetup.RemoteIp;
}
cString cStreamdevDevice::DeviceType(void) const {
static int dev = -1;
static cString devType("STRDev");
int d = -1;
if (ClientSocket.DataSocket(siLive) != NULL)
ClientSocket.GetSignal(NULL, NULL, &d);
if (d != dev) {
dev = d;
devType = d < 0 ? "STRDev" : *cString::sprintf("STRD%2d", d);
}
return devType;
}
int cStreamdevDevice::SignalStrength(void) const { int cStreamdevDevice::SignalStrength(void) const {
int strength = -1; int strength = -1;
if (ClientSocket.DataSocket(siLive) != NULL) if (ClientSocket.DataSocket(siLive) != NULL)
ClientSocket.GetSignal(&strength, NULL); ClientSocket.GetSignal(&strength, NULL, NULL);
return strength; return strength;
} }
int cStreamdevDevice::SignalQuality(void) const { int cStreamdevDevice::SignalQuality(void) const {
int quality = -1; int quality = -1;
if (ClientSocket.DataSocket(siLive) != NULL) if (ClientSocket.DataSocket(siLive) != NULL)
ClientSocket.GetSignal(NULL, &quality); ClientSocket.GetSignal(NULL, &quality, NULL);
return quality; return quality;
} }

View File

@ -62,6 +62,8 @@ public:
#else #else
virtual bool IsTunedToTransponder(const cChannel *Channel); virtual bool IsTunedToTransponder(const cChannel *Channel);
#endif #endif
virtual cString DeviceName(void) const;
virtual cString DeviceType(void) const;
virtual int SignalStrength(void) const; virtual int SignalStrength(void) const;
virtual int SignalQuality(void) const; virtual int SignalQuality(void) const;

View File

@ -29,6 +29,7 @@ cClientSocket::cClientSocket(void)
m_LastSignalUpdate = 0; m_LastSignalUpdate = 0;
m_LastSignalStrength = -1; m_LastSignalStrength = -1;
m_LastSignalQuality = -1; m_LastSignalQuality = -1;
m_LastDev = -1;
Reset(); Reset();
} }
@ -291,7 +292,7 @@ bool cClientSocket::SetPriority(int Priority) {
return Command(command, 220); return Command(command, 220);
} }
bool cClientSocket::GetSignal(int *SignalStrength, int *SignalQuality) { bool cClientSocket::GetSignal(int *SignalStrength, int *SignalQuality, int *Dev) {
if (!CheckConnection()) return -1; if (!CheckConnection()) return -1;
CMD_LOCK; CMD_LOCK;
@ -301,7 +302,8 @@ bool cClientSocket::GetSignal(int *SignalStrength, int *SignalQuality) {
std::string buffer; std::string buffer;
std::string command("SGNL"); std::string command("SGNL");
if (!Send(command) || !Receive(command, &code, &buffer) || code != 220 if (!Send(command) || !Receive(command, &code, &buffer) || code != 220
|| sscanf(buffer.c_str(), "%*d %*d %d:%d", &m_LastSignalStrength, &m_LastSignalQuality) != 2) { || sscanf(buffer.c_str(), "%*d %d %d:%d", &m_LastDev, &m_LastSignalStrength, &m_LastSignalQuality) != 3) {
m_LastDev = -1;
m_LastSignalStrength = -1; m_LastSignalStrength = -1;
m_LastSignalQuality = -1; m_LastSignalQuality = -1;
} }
@ -311,6 +313,8 @@ bool cClientSocket::GetSignal(int *SignalStrength, int *SignalQuality) {
*SignalStrength = m_LastSignalStrength; *SignalStrength = m_LastSignalStrength;
if (SignalQuality) if (SignalQuality)
*SignalQuality = m_LastSignalQuality; *SignalQuality = m_LastSignalQuality;
if (Dev)
*Dev = m_LastDev;
return 0; return 0;
} }

View File

@ -28,6 +28,7 @@ private:
time_t m_LastSignalUpdate; time_t m_LastSignalUpdate;
int m_LastSignalStrength; int m_LastSignalStrength;
int m_LastSignalQuality; int m_LastSignalQuality;
int m_LastDev;
protected: protected:
/* Send Command, and return true if the command results in Expected. /* Send Command, and return true if the command results in Expected.
Returns false on failure. */ Returns false on failure. */
@ -57,7 +58,7 @@ public:
bool SetPriority(int Priority); bool SetPriority(int Priority);
bool SetPid(int Pid, bool On); bool SetPid(int Pid, bool On);
bool SetFilter(ushort Pid, uchar Tid, uchar Mask, bool On); bool SetFilter(ushort Pid, uchar Tid, uchar Mask, bool On);
bool GetSignal(int *SignalStrength, int *SignalQuality); bool GetSignal(int *SignalStrength, int *SignalQuality, int *Dev);
bool CloseDvr(void); bool CloseDvr(void);
bool SuspendServer(void); bool SuspendServer(void);
bool Quit(void); bool Quit(void);