some service scan improovements
[enigma2.git] / lib / dvb / db.h
index bf39df18c2b755af8e140e77145b783c61a447aa..55e008fb0a7826c850f5d2eaedfe11f7861a5fe4 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,8 +32,20 @@ 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);
 
@@ -48,13 +59,16 @@ public:
 
        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();
 };
 
@@ -62,7 +76,7 @@ public:
        // 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;