aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/frontend.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-04-15 18:00:24 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-04-15 18:00:24 +0000
commit44433f650cd3e5f9f66253b74d194fcb01578595 (patch)
treec67ea0df64ff9bfdd500abd4a641a7aae7450a84 /lib/dvb/frontend.cpp
parent77c45c9d2cabd3c1dc028c41d26573ac62147a34 (diff)
downloadenigma2-44433f650cd3e5f9f66253b74d194fcb01578595.tar.gz
enigma2-44433f650cd3e5f9f66253b74d194fcb01578595.zip
- sdl is now default output
- added skinned window style - added background colors - some RGB color support (but still not how i like it) - some minor bugfixes
Diffstat (limited to 'lib/dvb/frontend.cpp')
-rw-r--r--lib/dvb/frontend.cpp64
1 files changed, 62 insertions, 2 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index 690824db..1322ea23 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -261,7 +261,7 @@ eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok): m_type(-1)
ok = 0;
return;
}
- eDebug("detected %s frontend", "satellite\0cable\0 terrestrial"+feSatellite*9);
+ eDebug("detected %s frontend", "satellite\0cable\0 terrestrial"+fe_info.type*9);
ok = 1;
m_sn = new eSocketNotifier(eApp, m_fd, eSocketNotifier::Read);
@@ -365,6 +365,8 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where)
feEvent(-1);
+ eDebug("eDVBFrontend::tune. type: %d", m_type);
+
switch (m_type)
{
case feSatellite:
@@ -403,11 +405,69 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where)
{
eDVBFrontendParametersTerrestrial feparm;
if (where.getDVBT(feparm))
+ {
+ eDebug("no -T data");
+ return -EINVAL;
+ }
+ parm.frequency = feparm.frequency;
+
+ switch (feparm.bandwidth)
+ {
+ case eDVBFrontendParametersTerrestrial::Bandwidth::Bw8MHz:
+ parm.u.ofdm.bandwidth = BANDWIDTH_8_MHZ;
+ break;
+ case eDVBFrontendParametersTerrestrial::Bandwidth::Bw7MHz:
+ parm.u.ofdm.bandwidth = BANDWIDTH_7_MHZ;
+ break;
+ case eDVBFrontendParametersTerrestrial::Bandwidth::Bw6MHz:
+ parm.u.ofdm.bandwidth = BANDWIDTH_6_MHZ;
+ break;
+ case eDVBFrontendParametersTerrestrial::Bandwidth::BwAuto:
+ parm.u.ofdm.bandwidth = BANDWIDTH_AUTO;
+ break;
+ default:
+ eWarning("invalid OFDM bandwith");
return -EINVAL;
- eFatal("terrestrial tuning nyi");
+ }
+
+ parm.u.ofdm.code_rate_HP = FEC_AUTO;
+ parm.u.ofdm.code_rate_LP = FEC_AUTO;
+
+ switch (feparm.modulation)
+ {
+ case eDVBFrontendParametersTerrestrial::Modulation::QPSK:
+ parm.u.ofdm.constellation = QPSK;
+ break;
+ case eDVBFrontendParametersTerrestrial::Modulation::QAM16:
+ parm.u.ofdm.constellation = QAM_16;
+ break;
+ case eDVBFrontendParametersTerrestrial::Modulation::Auto:
+ parm.u.ofdm.constellation = QAM_AUTO;
+ break;
+ }
+
+ switch (feparm.transmission_mode)
+ {
+ case eDVBFrontendParametersTerrestrial::TransmissionMode::TM2k:
+ parm.u.ofdm.transmission_mode = TRANSMISSION_MODE_2K;
+ break;
+ case eDVBFrontendParametersTerrestrial::TransmissionMode::TM8k:
+ parm.u.ofdm.transmission_mode = TRANSMISSION_MODE_8K;
+ break;
+ case eDVBFrontendParametersTerrestrial::TransmissionMode::TMAuto:
+ parm.u.ofdm.transmission_mode = TRANSMISSION_MODE_AUTO;
+ break;
+ }
+
+ parm.u.ofdm.guard_interval = GUARD_INTERVAL_AUTO;
+ parm.u.ofdm.hierarchy_information = HIERARCHY_AUTO;
+ parm.inversion = INVERSION_AUTO;
+ break;
}
}
+ eDebug("setting frontend..\n");
+
if (ioctl(m_fd, FE_SET_FRONTEND, &parm) == -1)
{
perror("FE_SET_FRONTEND failed");