From: Felix Domke Date: Tue, 15 Nov 2005 21:50:06 +0000 (+0000) Subject: add initial transponders from python X-Git-Tag: 2.6.0~5169 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/d6e0b1fd881d459036f5b7ace9fa7a61f6bcce8f add initial transponders from python --- diff --git a/lib/components/scan.cpp b/lib/components/scan.cpp index cfbff6d8..fc2470f7 100644 --- a/lib/components/scan.cpp +++ b/lib/components/scan.cpp @@ -50,8 +50,38 @@ eComponentScan::~eComponentScan() { } +void eComponentScan::clear() +{ + m_initial.clear(); +} + +void eComponentScan::addInitial(const eDVBFrontendParametersSatellite &p) +{ + ePtr parm = new eDVBFrontendParameters(); + parm->setDVBS(p); + m_initial.push_back(parm); +} + +void eComponentScan::addInitial(const eDVBFrontendParametersCable &p) +{ + ePtr parm = new eDVBFrontendParameters(); + parm->setDVBC(p); + m_initial.push_back(parm); +} + +void eComponentScan::addInitial(const eDVBFrontendParametersTerrestrial &p) +{ + ePtr 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 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 channel; if (mgr->allocateRawChannel(channel)) @@ -96,11 +129,9 @@ int eComponentScan::start() std::list > 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; } diff --git a/lib/components/scan.h b/lib/components/scan.h index 62456138..d90331cd 100644 --- a/lib/components/scan.h +++ b/lib/components/scan.h @@ -2,6 +2,7 @@ #define __lib_components_scan_h #include +#include class eDVBScan; @@ -9,11 +10,14 @@ class eComponentScan: public Object, public iObject { DECLARE_REF(eComponentScan); private: +#ifndef SWIG void scanEvent(int event); ePtr m_scan_event_connection; ePtr m_scan; int m_done, m_failed; + eSmartPtrList 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 index 00000000..46d8d77b --- /dev/null +++ b/lib/dvb/frontendparms.h @@ -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 diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index b68c014b..ea5e2568 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -9,6 +9,7 @@ #include #define FRONTENDPARAMETERS struct dvb_frontend_parameters #endif +#include #include #include #include @@ -273,99 +274,6 @@ public: virtual RESULT startQuery(ePtr &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: diff --git a/lib/python/Components/ServiceScan.py b/lib/python/Components/ServiceScan.py index d59b3049..9aec9829 100644 --- a/lib/python/Components/ServiceScan.py +++ b/lib/python/Components/ServiceScan.py @@ -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