fix removing last entry in bouquet
[enigma2.git] / lib / components / scan.h
index 6245613832ba666dc09534ccf65faaa58a780372..5a3ce4929aaa30ab3ebedb313cb0ab377675bb7a 100644 (file)
@@ -2,6 +2,7 @@
 #define __lib_components_scan_h
 
 #include <lib/base/object.h>
+#include <lib/dvb/idvb.h>
 
 class eDVBScan;
 
@@ -9,16 +10,20 @@ class eComponentScan: public Object, public iObject
 {
 DECLARE_REF(eComponentScan);
 private:
+#ifndef SWIG
        void scanEvent(int event);
        ePtr<eConnection> m_scan_event_connection;
        ePtr<eDVBScan> m_scan;
        
        int m_done, m_failed;
+       eSmartPtrList<iDVBFrontendParameters> m_initial;
+#endif
 public:
        eComponentScan();
        ~eComponentScan();
        
        PSignal0<void> statusChanged;
+       PSignal0<void> newService;
        
                /* progress between 0 and 100 */
        int getProgress();
@@ -29,9 +34,19 @@ public:
                /* true when done or error */
        int isDone();
        
+               /* get last added service */
+       void getLastServiceName(std::string &SWIG_OUTPUT);
+       
        int getError();
        
-       int start();
+       void clear();
+       void addInitial(const eDVBFrontendParametersSatellite &p);
+       void addInitial(const eDVBFrontendParametersCable &p);
+       void addInitial(const eDVBFrontendParametersTerrestrial &p);
+       
+               /* please keep the flags in sync with lib/dvb/scan.h ! */
+       enum { scanNetworkSearch=1, scanRemoveServices=4, scanDontRemoveFeeds=8 };
+       int start(int feid, int flags=0);
 };
 
 #endif