summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY1
-rw-r--r--enigma.c12
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;