X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d9ee52e4f0fbe9a1ae00d0e66f9e6f0a07fa319f..538edf5d148615f66a5f76fd64d6f19ded69d862:/lib/dvb/db.h diff --git a/lib/dvb/db.h b/lib/dvb/db.h index 55998ebf..084c877a 100644 --- a/lib/dvb/db.h +++ b/lib/dvb/db.h @@ -4,11 +4,17 @@ #include #include -class ServiceDescriptionTable; +class ServiceDescriptionSection; + +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,7 +25,11 @@ private: std::map m_channels; std::map > m_services; + + std::map m_bouquets; public: + void load(); + void save(); eDVBDB(); virtual ~eDVBDB(); @@ -30,20 +40,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); };