X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3af66122574386a2856e83ba9c5d73d27a6f3710..cf3e9383de633c9305a950ba5896376b14e43e12:/lib/dvb/db.cpp diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 4e0332ba..6e3207e0 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -29,7 +30,13 @@ eDVBService &eDVBService::operator=(const eDVBService &s) RESULT eDVBService::getName(const eServiceReference &ref, std::string &name) { - name = m_service_name; + name = convertDVBUTF8(m_service_name); + return 0; +} + +int eDVBService::getLength(const eServiceReference &ref) +{ + return -1; } int eDVBService::checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query) @@ -73,6 +80,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 +350,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 +507,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());