aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-01-15 15:51:19 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-01-15 15:51:19 +0000
commitb9bda8a0d43be892f2e5d96ea45ba8d4b2fdae20 (patch)
tree12b771f91ee8351764d8e0087cfd122b7ccfb263 /lib/service
parentc866e3ad3c089e189ff94d51cb125603b998f5c6 (diff)
downloadenigma2-b9bda8a0d43be892f2e5d96ea45ba8d4b2fdae20.tar.gz
enigma2-b9bda8a0d43be892f2e5d96ea45ba8d4b2fdae20.zip
change iFrontendInformation api
getFrontendData(bool) is now splitted in three seperate calls getFrontendData() returns the frontend number and frontend type in a dict getFrontendStatus() return signal quality, signal power, bit error rate, lock state, sync state, frontend state in a dict getTransponderData(bool) when the bool is true it returns a dict with the original tuned transponder data, when false the transponderdata read out from the frontend driver getAll(bool) is a sum of the three single calls and the direct replacement of the old getFrontendData call
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/iservice.h5
-rw-r--r--lib/service/servicedvb.cpp72
-rw-r--r--lib/service/servicedvb.h5
3 files changed, 71 insertions, 11 deletions
diff --git a/lib/service/iservice.h b/lib/service/iservice.h
index 015ef879..feaa771e 100644
--- a/lib/service/iservice.h
+++ b/lib/service/iservice.h
@@ -367,7 +367,10 @@ class iFrontendInformation: public iFrontendInformation_ENUMS, public iObject
#endif
public:
virtual int getFrontendInfo(int w)=0;
- virtual PyObject *getFrontendData(bool original=false)=0;
+ virtual PyObject *getFrontendData()=0;
+ virtual PyObject *getFrontendStatus()=0;
+ virtual PyObject *getTransponderData(bool original)=0;
+ virtual PyObject *getAll(bool original)=0; // a sum of getFrontendData/Status/TransponderData
};
SWIG_TEMPLATE_TYPEDEF(ePtr<iFrontendInformation>, iFrontendInformationPtr);
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 238f838f..9d9f2d1f 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1770,19 +1770,54 @@ int eDVBServiceBase::getFrontendInfo(int w)
return fe->readFrontendData(w);
}
-PyObject *eDVBServiceBase::getFrontendData(bool original)
+PyObject *eDVBServiceBase::getFrontendData()
{
- ePyObject ret;
+ ePyObject ret = PyDict_New();
+ if (ret)
+ {
+ eUsePtr<iDVBChannel> channel;
+ if(!m_service_handler.getChannel(channel))
+ {
+ ePtr<iDVBFrontend> fe;
+ if(!channel->getFrontend(fe))
+ fe->getFrontendData(ret);
+ }
+ }
+ else
+ Py_RETURN_NONE;
+ return ret;
+}
- eUsePtr<iDVBChannel> channel;
- if(!m_service_handler.getChannel(channel))
+PyObject *eDVBServiceBase::getFrontendStatus()
+{
+ ePyObject ret = PyDict_New();
+ if (ret)
+ {
+ eUsePtr<iDVBChannel> channel;
+ if(!m_service_handler.getChannel(channel))
+ {
+ ePtr<iDVBFrontend> fe;
+ if(!channel->getFrontend(fe))
+ fe->getFrontendStatus(ret);
+ }
+ }
+ else
+ Py_RETURN_NONE;
+ return ret;
+}
+
+PyObject *eDVBServiceBase::getTransponderData(bool original)
+{
+ ePyObject ret = PyDict_New();
+ if (ret)
{
- ePtr<iDVBFrontend> fe;
- if(!channel->getFrontend(fe))
+ eUsePtr<iDVBChannel> channel;
+ if(!m_service_handler.getChannel(channel))
{
- ret = fe->readTransponderData(original);
- if (ret)
+ ePtr<iDVBFrontend> fe;
+ if(!channel->getFrontend(fe))
{
+ fe->getTransponderData(ret, original);
ePtr<iDVBFrontendParameters> feparm;
channel->getCurrentFrontendParameters(feparm);
if (feparm)
@@ -1808,11 +1843,30 @@ PyObject *eDVBServiceBase::getFrontendData(bool original)
}
}
}
- if (!ret)
+ else
Py_RETURN_NONE;
return ret;
}
+PyObject *eDVBServiceBase::getAll(bool original)
+{
+ ePyObject ret = getTransponderData(original);
+ if (ret != Py_None)
+ {
+ eUsePtr<iDVBChannel> channel;
+ if(!m_service_handler.getChannel(channel))
+ {
+ ePtr<iDVBFrontend> fe;
+ if(!channel->getFrontend(fe))
+ {
+ fe->getFrontendData(ret);
+ fe->getFrontendStatus(ret);
+ }
+ }
+ }
+ return ret;
+}
+
int eDVBServicePlay::getNumberOfSubservices()
{
ePtr<eServiceEvent> evt;
diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h
index c765e0e3..34ed9720 100644
--- a/lib/service/servicedvb.h
+++ b/lib/service/servicedvb.h
@@ -75,7 +75,10 @@ protected:
public:
// iFrontendInformation
int getFrontendInfo(int w);
- PyObject *getFrontendData(bool);
+ PyObject *getFrontendData();
+ PyObject *getFrontendStatus();
+ PyObject *getTransponderData(bool);
+ PyObject *getAll(bool original); // a sum of getFrontendData/Status/TransponderData
};
class eSubtitleWidget;