From 628df59c601fa0dd41577e1f0d3b9e56e9ebceab Mon Sep 17 00:00:00 2001 From: Andreas Mair Date: Tue, 24 Apr 2012 11:54:42 +0200 Subject: Use vdr fuctions to determine signal strength (Closes #811). --- HISTORY | 1 + enigma.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/HISTORY b/HISTORY index 53ad24d..213cd02 100644 --- a/HISTORY +++ b/HISTORY @@ -2,6 +2,7 @@ VDR Skin 'EnigmaNG' Revision History ------------------------------------------ 2010-xx-xx: Version 0.1.2 +- Changed: Use vdr fuctions to determine signal strength (Closes #811). - Added: Hungarian translation (Provided by István Füley). - Updated: Italian translation (Provided by Diego Pierotto). - Added: New setup options for height and width of channel logos area. diff --git a/enigma.c b/enigma.c index 891b1e9..ef238d6 100644 --- a/enigma.c +++ b/enigma.c @@ -659,6 +659,7 @@ void cSkinEnigmaDisplayChannel::DrawSymbols(const cChannel *Channel) #define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d" int cSkinEnigmaDisplayChannel::GetSignal(int &str, int &snr, fe_status_t & /* status */) { +#if VDRVERSNUM < 10719 if (m_Frontend < 0) { str = 0; snr = 0; @@ -676,6 +677,11 @@ int cSkinEnigmaDisplayChannel::GetSignal(int &str, int &snr, fe_status_t & /* st ::ioctl(m_Frontend, FE_READ_SIGNAL_STRENGTH, &str); ::ioctl(m_Frontend, FE_READ_SNR, &snr); +#else + cDevice* dev = cDevice::ActualDevice(); + str = dev->SignalStrength(); + snr = dev->SignalQuality(); +#endif UpdateSignalTimer.Set(); return 0; @@ -685,8 +691,8 @@ void cSkinEnigmaDisplayChannel::UpdateSignal() { if (xSignalBarLeft < 0) return; - int str = 0; - int snr = 0; + int str = -1; + int snr = -1; fe_status_t status; if (GetSignal(str, snr, status) < 0) { @@ -694,7 +700,7 @@ void cSkinEnigmaDisplayChannel::UpdateSignal() { return; } - if (snr == 0 && str == 0) + if (snr < 0 && str < 0) return; xSignalBarLeft = xBottomRight - xIndent - MIN_CI_SIGNALBAR; -- cgit v1.2.3