aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/iservice.h2
-rw-r--r--lib/service/servicedvb.cpp31
-rw-r--r--lib/service/servicedvb.h2
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();