X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3af66122574386a2856e83ba9c5d73d27a6f3710..e635b7a6b5ba34a299c952833bff5158d6c09fad:/lib/dvb/db.cpp diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 4e0332ba..067b0032 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -30,6 +30,12 @@ eDVBService &eDVBService::operator=(const eDVBService &s) RESULT eDVBService::getName(const eServiceReference &ref, std::string &name) { name = m_service_name; + return 0; +} + +int eDVBService::getLength(const eServiceReference &ref) +{ + return -1; } int eDVBService::checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query) @@ -73,6 +79,19 @@ int eDVBService::checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQ return res; } +int eDVBService::getCachePID(cacheID id) +{ + std::map::iterator it = m_cache.find(id); + if ( it != m_cache.end() ) + return it->second; + return -1; +} + +void eDVBService::setCachePID(cacheID id, int pid) +{ + m_cache[id] = pid; +} + DEFINE_REF(eDVBDB); eDVBDB::eDVBDB() @@ -330,14 +349,15 @@ RESULT eDVBDB::getService(const eServiceReferenceDVB &reference, ePtr &query, eDVBChannelQuery *q) { - query = new eDVBDBQuery(this, q); + query = new eDVBDBQuery(this, eServiceReference(), q); return 0; } DEFINE_REF(eDVBDBQuery); -eDVBDBQuery::eDVBDBQuery(eDVBDB *db, eDVBChannelQuery *query): m_db(db), m_query(query) +eDVBDBQuery::eDVBDBQuery(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query): m_db(db), m_query(query) { + // TODO: use SOURCE ... m_cursor = m_db->m_services.begin(); } @@ -486,12 +506,10 @@ RESULT parseExpression(ePtr &res, std::list::cons return 0; } -RESULT eDVBChannelQuery::compile(ePtr &res, const eServiceReferenceDVB &source, std::string query) +RESULT eDVBChannelQuery::compile(ePtr &res, std::string query) { std::list tokens; - m_source = source; - std::string current_token; // eDebug("splitting %s....", query.c_str());