aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2005-11-22 03:01:15 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2005-11-22 03:01:15 +0000
commit00ae28e6c92cdac5687c82bc9aa3d2ca999b354f (patch)
treee76360cd06350e5bd34c896e233b10f1f12192a6 /lib
parentb40d4a06572c83f30f75454a6569cf9566f96aed (diff)
downloadenigma2-00ae28e6c92cdac5687c82bc9aa3d2ca999b354f.tar.gz
enigma2-00ae28e6c92cdac5687c82bc9aa3d2ca999b354f.zip
add cable support to e2
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/frontend.cpp91
-rw-r--r--lib/dvb/frontendparms.h18
-rw-r--r--lib/python/Screens/ScanSetup.py6
3 files changed, 111 insertions, 4 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index f2c3401d..75824f03 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -648,7 +648,96 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where)
eDVBFrontendParametersCable feparm;
if (where.getDVBC(feparm))
return -EINVAL;
- eFatal("cable tuning nyi");
+#if HAVE_DVB_API_VERSION < 3
+ parm.Frequency = feparm.frequency;
+#else
+ parm.frequency = feparm.frequency;
+#endif
+
+ parm.u.qam.symbol_rate = feparm.symbol_rate;
+
+ switch (feparm.modulation)
+ {
+ case eDVBFrontendParametersCable::Modulation::QAM16:
+ parm.u.qam.modulation = QAM_16;
+ break;
+ case eDVBFrontendParametersCable::Modulation::QAM32:
+ parm.u.qam.modulation = QAM_32;
+ break;
+ case eDVBFrontendParametersCable::Modulation::QAM64:
+ parm.u.qam.modulation = QAM_64;
+ break;
+ case eDVBFrontendParametersCable::Modulation::QAM128:
+ parm.u.qam.modulation = QAM_128;
+ break;
+ case eDVBFrontendParametersCable::Modulation::QAM256:
+ parm.u.qam.modulation = QAM_256;
+ break;
+ case eDVBFrontendParametersCable::Modulation::Auto:
+ parm.u.qam.modulation = QAM_AUTO;
+ break;
+ }
+ switch (feparm.modulation)
+ {
+ case eDVBFrontendParametersCable::Inversion::On:
+ #if HAVE_DVB_API_VERSION < 3
+ parm.Inversion =
+ #else
+ parm.inversion =
+ #endif
+ INVERSION_ON;
+ break;
+ case eDVBFrontendParametersCable::Inversion::Off:
+ #if HAVE_DVB_API_VERSION < 3
+ parm.Inversion =
+ #else
+ parm.inversion =
+ #endif
+ INVERSION_OFF;
+ break;
+ case eDVBFrontendParametersCable::Inversion::Unknown:
+ #if HAVE_DVB_API_VERSION < 3
+ parm.Inversion =
+ #else
+ parm.inversion =
+ #endif
+ INVERSION_AUTO;
+ break;
+ }
+ switch (feparm.fec_inner)
+ {
+ case eDVBFrontendParametersCable::FEC::fNone:
+ parm.u.qam.fec_inner = FEC_NONE;
+ break;
+ case eDVBFrontendParametersCable::FEC::f1_2:
+ parm.u.qam.fec_inner = FEC_1_2;
+ break;
+ case eDVBFrontendParametersCable::FEC::f2_3:
+ parm.u.qam.fec_inner = FEC_2_3;
+ break;
+ case eDVBFrontendParametersCable::FEC::f3_4:
+ parm.u.qam.fec_inner = FEC_3_4;
+ break;
+ case eDVBFrontendParametersCable::FEC::f4_5:
+ parm.u.qam.fec_inner = FEC_4_5;
+ break;
+ case eDVBFrontendParametersCable::FEC::f5_6:
+ parm.u.qam.fec_inner = FEC_5_6;
+ break;
+ case eDVBFrontendParametersCable::FEC::f6_7:
+ parm.u.qam.fec_inner = FEC_6_7;
+ break;
+ case eDVBFrontendParametersCable::FEC::f7_8:
+ parm.u.qam.fec_inner = FEC_7_8;
+ break;
+ case eDVBFrontendParametersCable::FEC::f8_9:
+ parm.u.qam.fec_inner = FEC_8_9;
+ break;
+ case eDVBFrontendParametersCable::FEC::fAuto:
+ parm.u.qam.fec_inner = FEC_AUTO;
+ break;
+ }
+ break;
}
case feTerrestrial:
{
diff --git a/lib/dvb/frontendparms.h b/lib/dvb/frontendparms.h
index 46d8d77b..466ae346 100644
--- a/lib/dvb/frontendparms.h
+++ b/lib/dvb/frontendparms.h
@@ -34,6 +34,24 @@ struct eDVBFrontendParametersSatellite
struct eDVBFrontendParametersCable
{
+ struct Inversion
+ {
+ enum {
+ On, Off, Unknown
+ };
+ };
+ struct FEC
+ {
+ enum {
+ fNone, f1_2, f2_3, f3_4, f4_5, f5_6, f6_7, f7_8, f8_9, fAuto
+ };
+ };
+ struct Modulation {
+ enum {
+ QAM16, QAM32, QAM64, QAM128, QAM256, Auto
+ };
+ };
+
unsigned int frequency, symbol_rate;
int modulation, inversion, fec_inner;
#ifndef SWIG
diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py
index 8f68b90e..57ff33f9 100644
--- a/lib/python/Screens/ScanSetup.py
+++ b/lib/python/Screens/ScanSetup.py
@@ -175,9 +175,9 @@ class ScanSetup(Screen):
# cable
config.scan.cab.frequency = configElement_nonSave("config.scan.cab.frequency", configSequence, [466], configsequencearg.get("INTEGER", (10000, 14000)))
- config.scan.cab.inversion = configElement_nonSave("config.scan.cab.inversion", configSelection, 0, ("auto", "off", "on"))
- config.scan.cab.modulation = configElement_nonSave("config.scan.cab.modulation", configSelection, 0, ("Auto", "16-QAM", "32-QAM", "64-QAM", "128-QAM", "256-QAM"))
- config.scan.cab.fec = configElement_nonSave("config.scan.cab.fec", configSelection, 0, ("Auto", "1/2", "2/3", "3/4", "4/5", "5/6", "7/8", "8/9"))
+ config.scan.cab.inversion = configElement_nonSave("config.scan.cab.inversion", configSelection, 0, ("off", "on", "Auto"))
+ config.scan.cab.modulation = configElement_nonSave("config.scan.cab.modulation", configSelection, 0, ("16-QAM", "32-QAM", "64-QAM", "128-QAM", "256-QAM", "Auto"))
+ config.scan.cab.fec = configElement_nonSave("config.scan.cab.fec", configSelection, 0, ("None", "1/2", "2/3", "3/4", "4/5", "5/6", "6/7", "7/8", "8/9", "Auto"))
config.scan.cab.symbolrate = configElement_nonSave("config.scan.cab.symbolrate", configSequence, [6900], configsequencearg.get("INTEGER", (1, 30000)))
# terrestial