diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-01-15 15:51:19 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-01-15 15:51:19 +0000 |
| commit | b9bda8a0d43be892f2e5d96ea45ba8d4b2fdae20 (patch) | |
| tree | 12b771f91ee8351764d8e0087cfd122b7ccfb263 /lib/service/servicedvb.cpp | |
| parent | c866e3ad3c089e189ff94d51cb125603b998f5c6 (diff) | |
| download | enigma2-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/servicedvb.cpp')
| -rw-r--r-- | lib/service/servicedvb.cpp | 72 |
1 files changed, 63 insertions, 9 deletions
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; |
