aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/db.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dvb/db.h')
-rw-r--r--lib/dvb/db.h48
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