X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d9ee52e4f0fbe9a1ae00d0e66f9e6f0a07fa319f..5102456e826ced403dcc2315e565db9a08bf72e2:/lib/dvb/db.h diff --git a/lib/dvb/db.h b/lib/dvb/db.h index 55998ebf..795d8702 100644 --- a/lib/dvb/db.h +++ b/lib/dvb/db.h @@ -6,9 +6,15 @@ class ServiceDescriptionTable; +struct eDVBBouquet +{ + std::vector m_services; + int lookupService(eServiceReferenceDVB &ref); +}; + class eDVBDB: public iDVBChannelList { -DECLARE_REF; +DECLARE_REF(eDVBDB); friend class eDVBDBQuery; private: struct channel @@ -19,6 +25,8 @@ private: std::map m_channels; std::map > m_services; + + std::map m_bouquets; public: eDVBDB(); virtual ~eDVBDB(); @@ -30,20 +38,21 @@ public: RESULT addService(const eServiceReferenceDVB &service, eDVBService *service); RESULT getService(const eServiceReferenceDVB &reference, ePtr &service); - + RESULT startQuery(ePtr &query, eDVBChannelQuery *query); }; // we have to add a possibility to invalidate here. class eDVBDBQuery: public iDVBChannelListQuery { -DECLARE_REF; +DECLARE_REF(eDVBDBQuery); private: std::map >::iterator m_cursor; ePtr m_db; ePtr m_query; + eServiceReference m_source; public: - eDVBDBQuery(eDVBDB *db, eDVBChannelQuery *query); + eDVBDBQuery(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query); virtual RESULT getNextResult(eServiceReferenceDVB &ref); };