aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2007-05-20 23:47:19 +0000
committerFelix Domke <tmbinc@elitedvb.net>2007-05-20 23:47:19 +0000
commit1995abf236d34dd3264435a35f2c9c128cf3afaa (patch)
treed2ea40e72028a56303f93c686f1294691c75fd91 /lib
parent291c22bb4b7824dd9e4d9528b53172f913a8084a (diff)
downloadenigma2-1995abf236d34dd3264435a35f2c9c128cf3afaa.tar.gz
enigma2-1995abf236d34dd3264435a35f2c9c128cf3afaa.zip
invent proper signalPowerdB enums and use them
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/frontend.cpp12
-rw-r--r--lib/dvb/frontend.h2
-rw-r--r--lib/dvb/idvb.h2
-rw-r--r--lib/python/Components/Converter/FrontendInfo.py4
-rw-r--r--lib/python/Components/Sources/FrontendStatus.py3
-rw-r--r--lib/service/iservice.h3
6 files changed, 16 insertions, 10 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index f9ca6c70..d2730a26 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -623,8 +623,13 @@ int eDVBFrontend::readFrontendData(int type)
uint16_t snr=0;
if (ioctl(m_fd, FE_READ_SNR, &snr) < 0 && errno != ERANGE)
eDebug("FE_READ_SNR failed (%m)");
-
-#if defined(DM8000)
+ return snr;
+ }
+ case signalPowerdB: /* this will move into the driver */
+ {
+ uint16_t snr=0;
+ if (ioctl(m_fd, FE_READ_SNR, &snr) < 0 && errno != ERANGE)
+ eDebug("FE_READ_SNR failed (%m)");
unsigned int SDS_SNRE = snr << 16;
static float SNR_COEFF[6] = {
@@ -655,8 +660,6 @@ int eDVBFrontend::readFrontendData(int type)
snr_in_db = fval1;
return (int)(snr_in_db * 100.0);
-#endif
- return snr;
}
case signalQuality:
{
@@ -1034,6 +1037,7 @@ void eDVBFrontend::getFrontendStatus(ePyObject dest)
PutToDict(dest, "tuner_synced", readFrontendData(synced));
PutToDict(dest, "tuner_bit_error_rate", readFrontendData(bitErrorRate));
PutToDict(dest, "tuner_signal_power", readFrontendData(signalPower));
+ PutToDict(dest, "tuner_signal_power_db", readFrontendData(signalPowerdB));
PutToDict(dest, "tuner_signal_quality", readFrontendData(signalQuality));
}
}
diff --git a/lib/dvb/frontend.h b/lib/dvb/frontend.h
index cfe25d1a..eb91eb72 100644
--- a/lib/dvb/frontend.h
+++ b/lib/dvb/frontend.h
@@ -109,7 +109,7 @@ public:
RESULT getData(int num, int &data);
RESULT setData(int num, int val);
- int readFrontendData(int type); // bitErrorRate, signalPower, signalQuality, locked, synced
+ int readFrontendData(int type); // bitErrorRate, signalPower, signalPowerdB, signalQuality, locked, synced
void getFrontendStatus(ePyObject dest);
void getTransponderData(ePyObject dest, bool original);
void getFrontendData(ePyObject dest);
diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h
index 0fa10bc8..9c210502 100644
--- a/lib/dvb/idvb.h
+++ b/lib/dvb/idvb.h
@@ -443,7 +443,7 @@ public:
enum { stateIdle, stateTuning, stateFailed, stateLock, stateLostLock };
enum { toneOff, toneOn };
enum { voltageOff, voltage13, voltage18, voltage13_5, voltage18_5 };
- enum { bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber };
+ enum { bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber, signalPowerdB };
};
SWIG_IGNORE(iDVBFrontend);
diff --git a/lib/python/Components/Converter/FrontendInfo.py b/lib/python/Components/Converter/FrontendInfo.py
index bcef9311..34d55be4 100644
--- a/lib/python/Components/Converter/FrontendInfo.py
+++ b/lib/python/Components/Converter/FrontendInfo.py
@@ -35,9 +35,9 @@ class FrontendInfo(Converter, object):
elif self.type == self.SNR:
percent = self.source.snr
elif self.type == self.SNRdB:
- if self.source.snr is None:
+ if self.source.snr_db is None:
return "N/A"
- return "%3.02f dB" % (self.source.snr / 100.0)
+ return "%3.02f dB" % (self.source.snr_db / 100.0)
if percent is None:
return "N/A"
diff --git a/lib/python/Components/Sources/FrontendStatus.py b/lib/python/Components/Sources/FrontendStatus.py
index 60b70102..1af03f95 100644
--- a/lib/python/Components/Sources/FrontendStatus.py
+++ b/lib/python/Components/Sources/FrontendStatus.py
@@ -13,7 +13,7 @@ class FrontendStatus(Source):
self.poll_timer.start(1000)
def invalidate(self):
- self.snr = self.agc = self.ber = self.lock = None
+ self.snr = self.agc = self.ber = self.lock = self.snr_db = None
def updateFrontendStatus(self):
status = self.getFrontendStatus()
@@ -21,6 +21,7 @@ class FrontendStatus(Source):
self.invalidate()
else:
self.snr = status.get("tuner_signal_power")
+ self.snr_db = status.get("tuner_signal_power_db")
self.agc = status.get("tuner_signal_quality")
self.ber = status.get("tuner_bit_error_rate")
self.lock = status.get("tuner_locked")
diff --git a/lib/service/iservice.h b/lib/service/iservice.h
index b0042735..2e88f235 100644
--- a/lib/service/iservice.h
+++ b/lib/service/iservice.h
@@ -354,7 +354,8 @@ public:
signalQuality,
lockState,
syncState,
- frontendNumber
+ frontendNumber,
+ signalPowerdB,
};
};