{
}
+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;
eDVBResourceManager::getInstance(mgr);
- eDVBFrontendParameters *fe = new eDVBFrontendParameters();
+#if 0
+ ePtr<eDVBFrontendParameters> fe = new eDVBFrontendParameters();
#if 1
eDVBFrontendParametersSatellite fesat;
fet.hierarchy = eDVBFrontendParametersTerrestrial::Hierarchy::HNone;
fe->setDVBT(fet);
#endif
+#endif
+
eUsePtr<iDVBChannel> channel;
if (mgr->allocateRawChannel(channel))
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;
}
#define __lib_components_scan_h
#include <lib/base/object.h>
+#include <lib/dvb/idvb.h>
class eDVBScan;
{
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();
int getError();
+ void clear();
+ void addInitial(const eDVBFrontendParametersSatellite &p);
+ void addInitial(const eDVBFrontendParametersCable &p);
+ void addInitial(const eDVBFrontendParametersTerrestrial &p);
int start();
};
--- /dev/null
+#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
#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>
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:
-from enigma import eComponentScan
+from enigma import eComponentScan, eDVBFrontendParametersSatellite, eDVBFrontendParametersCable, eDVBFrontendParametersTerrestrial
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