X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/20fdb2a2af40da98427a702a03a79b1fbec3d7af..601c3a814195f87abb9bef859a1d1fc71e4ed850:/lib/dvb/db.cpp diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 38a062a2..33a422f8 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -148,10 +149,24 @@ RESULT eDVBService::getName(const eServiceReference &ref, std::string &name) return 0; } -RESULT eDVBService::getEvent(const eServiceReference &ref, ePtr &ptr) +RESULT eDVBService::getEvent(const eServiceReference &ref, ePtr &ptr, time_t start_time) { - time_t t=-1; - return eEPGCache::getInstance()->lookupEventTime(ref, t, ptr); + return eEPGCache::getInstance()->lookupEventTime(ref, start_time, ptr); +} + +bool eDVBService::isPlayable(const eServiceReference &ref, const eServiceReference &ignore) +{ + ePtr res_mgr; + if ( eDVBResourceManager::getInstance( res_mgr ) ) + eDebug("isPlayble... no res manager!!"); + else + { + eDVBChannelID chid, chid_ignore; + ((const eServiceReferenceDVB&)ref).getChannelID(chid); + ((const eServiceReferenceDVB&)ignore).getChannelID(chid_ignore); + return res_mgr->canAllocateChannel(chid, chid_ignore); + } + return false; } int eDVBService::checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query) @@ -839,15 +854,12 @@ eDVBDBSatellitesQuery::eDVBDBSatellitesQuery(eDVBDB *db, const eServiceReference { eServiceReferenceDVB ref; ref.setDVBNamespace(dvbnamespace); + ref.flags=eServiceReference::flagDirectory; char buf[64]; -// TODO get real satellite name.. -// but i dont like to parse the satellites.xml here.. and in the python part - snprintf(buf, 64, "Services - %d", dvbnamespace>>16); - ref.name=buf; snprintf(buf, 64, "(satellitePosition == %d) && ", dvbnamespace>>16); + ref.path=buf+source.path; unsigned int pos=ref.path.find("FROM"); - ref.flags=eServiceReference::flagDirectory; ref.path.erase(pos); ref.path+="ORDER BY name"; // eDebug("ref.path now %s", ref.path.c_str()); @@ -858,8 +870,6 @@ eDVBDBSatellitesQuery::eDVBDBSatellitesQuery(eDVBDB *db, const eServiceReference ref.path.erase(pos+5); ref.path+="PROVIDERS ORDER BY name"; // eDebug("ref.path now %s", ref.path.c_str()); - snprintf(buf, 64, "Providers - %d", dvbnamespace>>16); - ref.name=buf; m_list.push_back(ref); } }