X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/77899dbcdd418844bb0749eeb2538b87eed4c83f..af5dfb0ec911f152f909530cf29c9e2ba74e2c1f:/lib/service/servicedvb.cpp diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 8ff07250..94c31b4f 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -185,6 +186,8 @@ int eStaticServiceDVBPVRInformation::getInfo(const eServiceReference &ref, int w { case iServiceInformation::sDescription: return iServiceInformation::resIsString; + case iServiceInformation::sServiceref: + return iServiceInformation::resIsString; case iServiceInformation::sTimeCreate: if (m_parser.m_time_create) return m_parser.m_time_create; @@ -201,6 +204,8 @@ std::string eStaticServiceDVBPVRInformation::getInfoString(const eServiceReferen { case iServiceInformation::sDescription: return m_parser.m_description; + case iServiceInformation::sServiceref: + return m_parser.m_ref.toString(); default: return ""; } @@ -233,11 +238,18 @@ RESULT eDVBPVRServiceOfflineOperations::deleteFromDisk(int simulate) if (getListOfFilenames(res)) return -1; + eBackgroundFileEraser *eraser = eBackgroundFileEraser::getInstance(); + if (!eraser) + eDebug("FATAL !! can't get background file eraser"); + /* TODO: deferred removing.. */ for (std::list::iterator i(res.begin()); i != res.end(); ++i) { eDebug("Removing %s...", i->c_str()); - ::unlink(i->c_str()); + if (eraser) + eraser->erase(i->c_str()); + else + ::unlink(i->c_str()); } return 0; @@ -248,10 +260,25 @@ RESULT eDVBPVRServiceOfflineOperations::getListOfFilenames(std::listreadFrontendData(w); } +PyObject *eDVBServicePlay::getFrontendData(bool original) +{ + PyObject *ret=0; + + eUsePtr channel; + if(!m_service_handler.getChannel(channel)) + { + ePtr fe; + if(!channel->getFrontend(fe)) + { + ret = fe->readTransponderData(original); + if (ret) + { + ePtr feparm; + channel->getCurrentFrontendParameters(feparm); + if (feparm) + { + eDVBFrontendParametersSatellite osat; + if (!feparm->getDVBS(osat)) + { + void PutToDict(PyObject *, const char*, long); + void PutToDict(PyObject *, const char*, const char*); + 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", tmp); + } + } + } + } + } + if (!ret) + { + ret = Py_None; + Py_INCREF(ret); + } + return ret; +} + int eDVBServicePlay::getNumberOfSubservices() { ePtr evt; @@ -1390,6 +1466,7 @@ void eDVBServicePlay::switchToTimeshift() r.path = m_timeshift_file; m_service_handler_timeshift.tune(r, 1, m_cue); /* use the decoder demux for everything */ + updateDecoder(); /* mainly to switch off PCR */ } void eDVBServicePlay::updateDecoder()