Merge branch 'master' of git.opendreambox.org:/git/enigma2
[enigma2.git] / lib / dvb / db.h
index bf39df18c2b755af8e140e77145b783c61a447aa..098ee03ea3a9176af9ce394fe01b53b65cd973ac 100644 (file)
@@ -2,22 +2,21 @@
 #define __db_h
 
 #ifndef SWIG
-#include <lib/base/eptrlist.h>
 #include <lib/dvb/idvb.h>
+#include <lib/base/eptrlist.h>
 #include <set>
 class ServiceDescriptionSection;
 #endif
 
 class eDVBDB: public iDVBChannelList
 {
+       DECLARE_REF(eDVBDB);
        static eDVBDB *instance;
-DECLARE_REF(eDVBDB);
        friend class eDVBDBQuery;
        friend class eDVBDBBouquetQuery;
        friend class eDVBDBSatellitesQuery;
        friend class eDVBDBProvidersQuery;
 
-
        struct channel
        {
                ePtr<iDVBFrontendParameters> m_frontendParameters;
@@ -33,36 +32,52 @@ DECLARE_REF(eDVBDB);
        ~eDVBDB();
 #endif
 public:
-#ifndef SWIG
 // iDVBChannelList
+       RESULT removeFlags(unsigned int flagmask, int dvb_namespace=-1, int tsid=-1, int onid=-1, unsigned int orb_pos=0xFFFFFFFF);
+       RESULT removeServices(int dvb_namespace=-1, int tsid=-1, int onid=-1, unsigned int orb_pos=0xFFFFFFFF);
+       RESULT removeService(const eServiceReference &service);
+       RESULT addFlag(const eServiceReference &service, unsigned int flagmask);
+       RESULT removeFlag(const eServiceReference &service, unsigned int flagmask);
+       PyObject *readSatellites(SWIG_PYOBJECT(ePyObject) sat_list, SWIG_PYOBJECT(ePyObject) sat_dict, SWIG_PYOBJECT(ePyObject) tp_dict);
+       PyObject *readTerrestrials(SWIG_PYOBJECT(ePyObject) ter_list, SWIG_PYOBJECT(ePyObject) tp_dict);
+       PyObject *readCables(SWIG_PYOBJECT(ePyObject) cab_list, SWIG_PYOBJECT(ePyObject) tp_dict);
+#ifndef SWIG
+       RESULT removeFlags(unsigned int flagmask, eDVBChannelID chid, unsigned int orb_pos);
+       RESULT removeServices(eDVBChannelID chid, unsigned int orb_pos);
+       RESULT removeServices(iDVBFrontendParameters *feparm);
+
        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 addService(const eServiceReferenceDVB &referenc, eDVBService *service);
        RESULT getService(const eServiceReferenceDVB &reference, ePtr<eDVBService> &service);
        RESULT flush();
 
-       RESULT startQuery(ePtr<iDVBChannelListQuery> &query, eDVBChannelQuery *query, const eServiceReference &source);
+       RESULT startQuery(ePtr<iDVBChannelListQuery> &query, eDVBChannelQuery *q, const eServiceReference &source);
 
        RESULT getBouquet(const eServiceReference &ref, eBouquet* &bouquet);
 //////
-       void saveServicelist();
        void loadBouquet(const char *path);
+       eServiceReference searchReference(int tsid, int onid, int sid);
        eDVBDB();
        virtual ~eDVBDB();
 #endif
+       void loadServicelist(const char *filename);
        static eDVBDB *getInstance() { return instance; }
        void reloadServicelist();
+       void saveServicelist();
+       void saveServicelist(const char *file);
        void reloadBouquets();
+       void parseServiceData(ePtr<eDVBService> s, std::string str);
 };
 
 #ifndef SWIG
        // we have to add a possibility to invalidate here.
 class eDVBDBQueryBase: public iDVBChannelListQuery
 {
-DECLARE_REF(eDVBDBQueryBase);
+       DECLARE_REF(eDVBDBQueryBase);
 protected:
        ePtr<eDVBDB> m_db;
        ePtr<eDVBChannelQuery> m_query;