#include <errno.h>
#include <lib/dvb/db.h>
+#include <lib/dvb/dvb.h>
#include <lib/dvb/frontend.h>
#include <lib/dvb/epgcache.h>
#include <lib/base/eerror.h>
return 0;
}
-RESULT eDVBService::getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &ptr)
+RESULT eDVBService::getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &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<eDVBResourceManager> 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)
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);
+ int tpos = dvbnamespace>>16;
+ if (tpos > 1800) // west
+ snprintf(buf, 64, "Services (%3.1fW)", (0 - (tpos - 3600)) / 10.0);
+ else
+ snprintf(buf, 64, "Services (%3.1fE)", tpos / 10.0);
ref.name=buf;
snprintf(buf, 64, "(satellitePosition == %d) && ", dvbnamespace>>16);
ref.path=buf+source.path;
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);
+ if (tpos > 1800) // west
+ snprintf(buf, 64, "Providers (%3.1fW)", (0 - (tpos - 3600)) / 10.0);
+ else
+ snprintf(buf, 64, "Providers (%3.1fE)", tpos / 10.0);
ref.name=buf;
m_list.push_back(ref);
}