4 #include <lib/dvb/idvb.h>
7 class ServiceDescriptionSection;
11 std::vector<eServiceReferenceDVB> m_services;
12 int lookupService(eServiceReferenceDVB &ref);
15 class eDVBDB: public iDVBChannelList
18 friend class eDVBDBQuery;
22 ePtr<iDVBFrontendParameters> m_frontendParameters;
25 std::map<eDVBChannelID, channel> m_channels;
27 std::map<eServiceReferenceDVB, ePtr<eDVBService> > m_services;
29 std::map<eServiceReference, eDVBBouquet> m_bouquets;
36 RESULT addChannelToList(const eDVBChannelID &id, iDVBFrontendParameters *feparm);
37 RESULT removeChannel(const eDVBChannelID &id);
39 RESULT getChannelFrontendData(const eDVBChannelID &id, ePtr<iDVBFrontendParameters> &parm);
41 RESULT addService(const eServiceReferenceDVB &service, eDVBService *service);
42 RESULT getService(const eServiceReferenceDVB &reference, ePtr<eDVBService> &service);
44 RESULT startQuery(ePtr<iDVBChannelListQuery> &query, eDVBChannelQuery *query);
47 // we have to add a possibility to invalidate here.
48 class eDVBDBQuery: public iDVBChannelListQuery
50 DECLARE_REF(eDVBDBQuery);
52 std::map<eServiceReferenceDVB, ePtr<eDVBService> >::iterator m_cursor;
54 ePtr<eDVBChannelQuery> m_query;
55 eServiceReference m_source;
57 eDVBDBQuery(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query);
58 virtual RESULT getNextResult(eServiceReferenceDVB &ref);
60 int compareLessEqual(const eServiceReferenceDVB &a, const eServiceReferenceDVB &b);