diff options
Diffstat (limited to 'lib/dvb/db.h')
| -rw-r--r-- | lib/dvb/db.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/dvb/db.h b/lib/dvb/db.h new file mode 100644 index 00000000..763df7eb --- /dev/null +++ b/lib/dvb/db.h @@ -0,0 +1,48 @@ +#ifndef __db_h +#define __db_h + +#include <lib/dvb/idvb.h> +#include <set> + +class eDVBService: public iObject +{ + DECLARE_REF; +public: + eDVBService(); + eString m_service_name; + eString m_provider_name; + + int m_flags; + std::set<int> m_ca; + std::map<int,int> m_cache; + virtual ~eDVBService(); +}; + +class ServiceDescriptionTable; + +class eDVBDB: public virtual iDVBChannelList +{ +DECLARE_REF; +private: + struct channel + { + ePtr<iDVBFrontendParameters> m_frontendParameters; + }; + + std::map<eDVBChannelID, channel> m_channels; + + std::map<eServiceReferenceDVB, ePtr<eDVBService> > m_services; +public: + eDVBDB(); + virtual ~eDVBDB(); + + RESULT addChannelToList(const eDVBChannelID &id, iDVBFrontendParameters *feparm); + RESULT removeChannel(const eDVBChannelID &id); + + RESULT getChannelFrontendData(const eDVBChannelID &id, ePtr<iDVBFrontendParameters> &parm); + + RESULT addService(const eServiceReferenceDVB &service, eDVBService *service); + RESULT getService(const eServiceReferenceDVB &reference, ePtr<eDVBService> &service); +}; + +#endif |
