diff options
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(); |
