aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/frontend.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-12-03 21:16:59 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-12-03 21:16:59 +0000
commit391f7559e77cf98ea3b5a1fba94a8fa6f4307da8 (patch)
treeca83b3a1d5735027688b0f477c8d46262145336e /lib/dvb/frontend.cpp
parent36940d42cf3cc58b40a5a6f5fe86bad50ff48ad7 (diff)
downloadenigma2-391f7559e77cf98ea3b5a1fba94a8fa6f4307da8.tar.gz
enigma2-391f7559e77cf98ea3b5a1fba94a8fa6f4307da8.zip
add support for read signal quality, power and biterror rate from python
Diffstat (limited to 'lib/dvb/frontend.cpp')
-rw-r--r--lib/dvb/frontend.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index 8d035bfa..a26f6bd8 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -376,6 +376,35 @@ void eDVBFrontend::timeout()
m_tuning = 0;
}
+int eDVBFrontend::readFrontendData(int type)
+{
+ switch(type)
+ {
+ case bitErrorRate:
+ {
+ uint32_t ber=0;
+ if (ioctl(m_fd, FE_READ_BER, &ber) < 0 && errno != ERANGE)
+ eDebug("FE_READ_BER failed (%m)");
+ return ber;
+ }
+ case signalPower:
+ {
+ uint16_t snr=0;
+ if (ioctl(m_fd, FE_READ_SNR, &snr) < 0 && errno != ERANGE)
+ eDebug("FE_READ_SNR failed (%m)");
+ return snr;
+ }
+ case signalQuality:
+ {
+ uint16_t strength=0;
+ if (ioctl(m_fd, FE_READ_SIGNAL_STRENGTH, &strength) < 0 && errno != ERANGE)
+ eDebug("FE_READ_SIGNAL_STRENGTH failed (%m)");
+ return strength;
+ }
+ }
+ return 0;
+}
+
#ifndef FP_IOCTL_GET_ID
#define FP_IOCTL_GET_ID 0
#endif