diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-03-03 13:59:56 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-03-03 13:59:56 +0000 |
| commit | af6a8a3a102ff0230fcc6d90ad213e2e7d706fa8 (patch) | |
| tree | 1c2d6a115cacfe99292fb8599a03e2c9a20f0a4f /lib/service/servicedvb.cpp | |
| parent | 88a6749020acfb921ae70f714e995af74e72c47c (diff) | |
| download | enigma2-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.cpp | 31 |
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; |
