aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-03-03 13:59:56 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-03-03 13:59:56 +0000
commitaf6a8a3a102ff0230fcc6d90ad213e2e7d706fa8 (patch)
tree1c2d6a115cacfe99292fb8599a03e2c9a20f0a4f /lib/service/servicedvb.cpp
parent88a6749020acfb921ae70f714e995af74e72c47c (diff)
downloadenigma2-af6a8a3a102ff0230fcc6d90ad213e2e7d706fa8.tar.gz
enigma2-af6a8a3a102ff0230fcc6d90ad213e2e7d706fa8.zip
implement readFrontendData method to get a python dictionary containing data
about current used transponder/frontend (frontend state, frontend type, lock state, sync state, frequency, symbolrate, fec_innter...) when it is called with True as param it returns the original transponder data (written to tuner) otherwise it reads the current data out of the frontend (corrected tuner data)
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp31
1 files changed, 28 insertions, 3 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index c3bd1e69..0fdeb743 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1152,7 +1152,7 @@ int eDVBServicePlay::getFrontendInfo(int w)
return fe->readFrontendData(w);
}
-PyObject *eDVBServicePlay::getFrontendTransponderData()
+PyObject *eDVBServicePlay::getFrontendData(bool original)
{
PyObject *ret=0;
@@ -1161,9 +1161,34 @@ PyObject *eDVBServicePlay::getFrontendTransponderData()
{
ePtr<iDVBFrontend> fe;
if(!channel->getFrontend(fe))
- ret = fe->readTransponderData();
+ {
+ ret = fe->readTransponderData(original);
+ if (ret)
+ {
+ ePtr<iDVBFrontendParameters> feparm;
+ channel->getCurrentFrontendParameters(feparm);
+ if (feparm)
+ {
+ eDVBFrontendParametersSatellite osat;
+ if (!feparm->getDVBS(osat))
+ {
+ void PutToDict(PyObject *dict, const char*key, long value);
+ PutToDict(ret, "orbital_position", osat.orbital_position);
+ const char *tmp = "unknown";
+ switch(osat.polarisation)
+ {
+ case eDVBFrontendParametersSatellite::Polarisation::Horizontal: tmp="horizontal"; break;
+ case eDVBFrontendParametersSatellite::Polarisation::Vertical: tmp="vertical"; break;
+ case eDVBFrontendParametersSatellite::Polarisation::CircularLeft: tmp="circular_left"; break;
+ case eDVBFrontendParametersSatellite::Polarisation::CircularRight: tmp="circular_right"; break;
+ default:break;
+ }
+ PutToDict(ret, "polarization", osat.polarisation);
+ }
+ }
+ }
+ }
}
-
if (!ret)
{
ret = Py_None;