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 | |
| 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')
| -rw-r--r-- | lib/service/iservice.h | 2 | ||||
| -rw-r--r-- | lib/service/servicedvb.cpp | 31 | ||||
| -rw-r--r-- | lib/service/servicedvb.h | 2 |
3 files changed, 30 insertions, 5 deletions
diff --git a/lib/service/iservice.h b/lib/service/iservice.h index f3183187..354f90a2 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -276,7 +276,7 @@ public: SyncState }; virtual int getFrontendInfo(int w)=0; - virtual PyObject *getFrontendTransponderData()=0; + virtual PyObject *getFrontendData(bool original=false)=0; }; TEMPLATE_TYPEDEF(ePtr<iFrontendStatusInformation>, iFrontendStatusInformationPtr); 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; diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h index 437a454b..39318b22 100644 --- a/lib/service/servicedvb.h +++ b/lib/service/servicedvb.h @@ -105,7 +105,7 @@ public: // iFrontendStatusInformation int getFrontendInfo(int w); - PyObject *getFrontendTransponderData(); + PyObject *getFrontendData(bool); // iSubserviceList int getNumberOfSubservices(); |
