add initial transponders from python
authorFelix Domke <tmbinc@elitedvb.net>
Tue, 15 Nov 2005 21:50:06 +0000 (21:50 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Tue, 15 Nov 2005 21:50:06 +0000 (21:50 +0000)
lib/components/scan.cpp
lib/components/scan.h
lib/dvb/frontendparms.h [new file with mode: 0644]
lib/dvb/idvb.h
lib/python/Components/ServiceScan.py

index cfbff6d..fc2470f 100644 (file)
@@ -50,8 +50,38 @@ eComponentScan::~eComponentScan()
 {
 }
 
+void eComponentScan::clear()
+{
+       m_initial.clear();
+}
+
+void eComponentScan::addInitial(const eDVBFrontendParametersSatellite &p)
+{
+       ePtr<eDVBFrontendParameters> parm = new eDVBFrontendParameters();
+       parm->setDVBS(p);
+       m_initial.push_back(parm);
+}
+
+void eComponentScan::addInitial(const eDVBFrontendParametersCable &p)
+{
+       ePtr<eDVBFrontendParameters> parm = new eDVBFrontendParameters();
+       parm->setDVBC(p);
+       m_initial.push_back(parm);
+}
+
+void eComponentScan::addInitial(const eDVBFrontendParametersTerrestrial &p)
+{
+       ePtr<eDVBFrontendParameters> parm = new eDVBFrontendParameters();
+       parm->setDVBT(p);
+       m_initial.push_back(parm);
+}
+
+
 int eComponentScan::start()
 {
+       if (m_initial.empty())
+               return -2;
+
        if (m_done != -1)
                return -1;
        
@@ -60,7 +90,8 @@ int eComponentScan::start()
        
        eDVBResourceManager::getInstance(mgr);
 
-       eDVBFrontendParameters *fe = new eDVBFrontendParameters();
+#if 0 
+       ePtr<eDVBFrontendParameters> fe = new eDVBFrontendParameters();
 #if 1
        eDVBFrontendParametersSatellite fesat;
                
@@ -86,6 +117,8 @@ int eComponentScan::start()
        fet.hierarchy = eDVBFrontendParametersTerrestrial::Hierarchy::HNone;
        fe->setDVBT(fet);
 #endif
+#endif
+
        eUsePtr<iDVBChannel> channel;
 
        if (mgr->allocateRawChannel(channel))
@@ -96,11 +129,9 @@ int eComponentScan::start()
 
        std::list<ePtr<iDVBFrontendParameters> > list;
                
-       list.push_back(fe);
-       
        m_scan = new eDVBScan(channel);
        m_scan->connectEvent(slot(*this, &eComponentScan::scanEvent), m_scan_event_connection);
-       m_scan->start(list);
+       m_scan->start(m_initial);
        
        return 0;
 }
index 6245613..d90331c 100644 (file)
@@ -2,6 +2,7 @@
 #define __lib_components_scan_h
 
 #include <lib/base/object.h>
+#include <lib/dvb/idvb.h>
 
 class eDVBScan;
 
@@ -9,11 +10,14 @@ 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();
@@ -31,6 +35,10 @@ public:
        
        int getError();
        
+       void clear();
+       void addInitial(const eDVBFrontendParametersSatellite &p);
+       void addInitial(const eDVBFrontendParametersCable &p);
+       void addInitial(const eDVBFrontendParametersTerrestrial &p);
        int start();
 };
 
diff --git a/lib/dvb/frontendparms.h b/lib/dvb/frontendparms.h
new file mode 100644 (file)
index 0000000..46d8d77
--- /dev/null
@@ -0,0 +1,102 @@
+#ifndef __lib_dvb_frontendparms_h
+#define __lib_dvb_frontendparms_h
+
+class SatelliteDeliverySystemDescriptor;
+class CableDeliverySystemDescriptor;
+class TerrestrialDeliverySystemDescriptor;
+
+struct eDVBFrontendParametersSatellite
+{
+       struct Polarisation
+       {
+               enum {
+                       Horizontal, Vertical, CircularLeft, CircularRight
+               };
+       };
+       struct Inversion
+       {
+               enum {
+                       On, Off, Unknown
+               };
+       };
+       struct FEC
+       {
+               enum {
+                       fNone, f1_2, f2_3, f3_4, f5_6, f7_8, fAuto
+               };
+       };
+       unsigned int frequency, symbol_rate;
+       int polarisation, fec, inversion, orbital_position;
+#ifndef SWIG   
+       void set(const SatelliteDeliverySystemDescriptor  &);
+#endif
+};
+
+struct eDVBFrontendParametersCable
+{
+       unsigned int frequency, symbol_rate;
+       int modulation, inversion, fec_inner;
+#ifndef SWIG
+       void set(const CableDeliverySystemDescriptor  &);
+#endif
+};
+
+struct eDVBFrontendParametersTerrestrial
+{
+       unsigned int frequency;
+       struct Bandwidth {
+               enum { Bw8MHz, Bw7MHz, Bw6MHz, BwAuto };
+       };
+       
+       struct FEC
+       {
+               enum {
+                       fNone, f1_2, f2_3, f3_4, f5_6, f7_8, fAuto
+               };
+       };
+       
+       struct TransmissionMode {
+               enum {
+                       TM2k, TM8k, TMAuto
+               };
+       };
+       
+       struct GuardInterval {
+               enum {
+                       GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_Auto
+               };
+       };
+       
+       struct Hierarchy {
+               enum {
+                       HNone, H1, H2, H4, HAuto
+               };
+       };
+       
+       struct Modulation {
+               enum {
+                       QPSK, QAM16, Auto
+               };
+       };
+
+       struct Inversion
+       {
+               enum {
+                       On, Off, Unknown
+               };
+       };
+       
+       int bandwidth;
+       int code_rate_HP, code_rate_LP;
+       int modulation;
+       int transmission_mode;
+       int guard_interval;
+       int hierarchy;
+       int inversion;
+
+#ifndef SWIG   
+       void set(const TerrestrialDeliverySystemDescriptor  &);
+#endif
+};
+
+#endif
index b68c014..ea5e256 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/dvb/frontend.h>
 #define FRONTENDPARAMETERS struct dvb_frontend_parameters
 #endif
+#include <lib/dvb/frontendparms.h>
 #include <lib/base/object.h>
 #include <lib/base/ebase.h>
 #include <lib/service/service.h>
@@ -273,99 +274,6 @@ public:
        virtual RESULT startQuery(ePtr<iDVBChannelListQuery> &query, eDVBChannelQuery *query, const eServiceReference &source)=0;
 };
 
-class SatelliteDeliverySystemDescriptor;
-class CableDeliverySystemDescriptor;
-class TerrestrialDeliverySystemDescriptor;
-
-struct eDVBFrontendParametersSatellite
-{
-       struct Polarisation
-       {
-               enum {
-                       Horizontal, Vertical, CircularLeft, CircularRight
-               };
-       };
-       struct Inversion
-       {
-               enum {
-                       On, Off, Unknown
-               };
-       };
-       struct FEC
-       {
-               enum {
-                       fNone, f1_2, f2_3, f3_4, f5_6, f7_8, fAuto
-               };
-       };
-       unsigned int frequency, symbol_rate;
-       int polarisation, fec, inversion, orbital_position;
-       
-       void set(const SatelliteDeliverySystemDescriptor  &);
-};
-
-struct eDVBFrontendParametersCable
-{
-       unsigned int frequency, symbol_rate;
-       int modulation, inversion, fec_inner;
-       void set(const CableDeliverySystemDescriptor  &);
-};
-
-struct eDVBFrontendParametersTerrestrial
-{
-       unsigned int frequency;
-       struct Bandwidth {
-               enum { Bw8MHz, Bw7MHz, Bw6MHz, BwAuto };
-       };
-       
-       struct FEC
-       {
-               enum {
-                       fNone, f1_2, f2_3, f3_4, f5_6, f7_8, fAuto
-               };
-       };
-       
-       struct TransmissionMode {
-               enum {
-                       TM2k, TM8k, TMAuto
-               };
-       };
-       
-       struct GuardInterval {
-               enum {
-                       GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_Auto
-               };
-       };
-       
-       struct Hierarchy {
-               enum {
-                       HNone, H1, H2, H4, HAuto
-               };
-       };
-       
-       struct Modulation {
-               enum {
-                       QPSK, QAM16, Auto
-               };
-       };
-
-       struct Inversion
-       {
-               enum {
-                       On, Off, Unknown
-               };
-       };
-       
-       int bandwidth;
-       int code_rate_HP, code_rate_LP;
-       int modulation;
-       int transmission_mode;
-       int guard_interval;
-       int hierarchy;
-       int inversion;
-       
-       void set(const TerrestrialDeliverySystemDescriptor  &);
-};
-
 class iDVBFrontendParameters: public iObject
 {
 public:
index d59b304..9aec982 100644 (file)
@@ -1,4 +1,4 @@
-from enigma import eComponentScan
+from enigma import eComponentScan, eDVBFrontendParametersSatellite, eDVBFrontendParametersCable, eDVBFrontendParametersTerrestrial
 
 class ServiceScan:
        
@@ -41,6 +41,30 @@ class ServiceScan:
                self.state = self.Idle
                self.scanStatusChanged()
                
+               
+               if 1:
+                       parm = eDVBFrontendParametersSatellite()
+
+                       parm.frequency = 11817000
+                       parm.symbol_rate = 27500000
+                       parm.polarisation = 1 # eDVBFrontendParametersSatellite.Polarisation.Vertical
+                       parm.fec = 3 # eDVBFrontendParametersSatellite.FEC.f3_4;
+                       parm.inversion = 1 #eDVBFrontendParametersSatellite.Inversion.Off;
+                       parm.orbital_position = 192
+               else:
+                       parm = eDVBFrontendParametersTerrestrial()
+                       
+                       parm.frequency = 626000000;
+                       parm.inversion = 2  # eDVBFrontendParametersTerrestrial.Inversion.Unknown;
+                       parm.bandwidth = 0  #eDVBFrontendParametersTerrestrial.Bandwidth.Bw8MHz;
+                       parm.code_rate_HP = parm.code_rate_LP = 6 #eDVBFrontendParametersTerrestrial.FEC.fAuto;
+                       parm.modulation = 1 #eDVBFrontendParametersTerrestrial.Modulation.QAM16;
+                       parm.transmission_mode = 1 # eDVBFrontendParametersTerrestrial.TransmissionMode.TM8k;
+                       parm.guard_interval = 0 # eDVBFrontendParametersTerrestrial.GuardInterval.GI_1_32;
+                       parm.hierarchy = 0 #eDVBFrontendParametersTerrestrial.Hierarchy.HNone;
+               
+               self.scan.addInitial(parm)
+               
        def execBegin(self):
                self.scan.statusChanged.get().append(self.scanStatusChanged)
                self.state = self.Running