#if HAVE_DVB_API_VERSION < 3
#include <ost/frontend.h>
#include <ost/sec.h>
+#define QAM_AUTO (Modulation)6
+#define TRANSMISSION_MODE_AUTO (TransmitMode)2
+#define BANDWIDTH_AUTO (BandWidth)3
+#define GUARD_INTERVAL_AUTO (GuardInterval)4
+#define HIERARCHY_AUTO (Hierarchy)4
+#define constellation Constellation
+#define guard_interval guardInterval
+#define hierarchy_information HierarchyInformation
+#define code_rate_HP HP_CodeRate
+#define code_rate_LP LP_CodeRate
#else
#include <linux/dvb/frontend.h>
#endif
eDebug("no -T data");
return -EINVAL;
}
+#if HAVE_DVB_API_VERSION < 3
+ parm.Frequency = feparm.frequency;
+#else
parm.frequency = feparm.frequency;
-
+#endif
+
switch (feparm.bandwidth)
{
case eDVBFrontendParametersTerrestrial::Bandwidth::Bw8MHz:
- parm.u.ofdm.bandwidth = BANDWIDTH_8_MHZ;
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.ofdm.bandWidth =
+#else
+ parm.u.ofdm.bandwidth =
+#endif
+ BANDWIDTH_8_MHZ;
break;
case eDVBFrontendParametersTerrestrial::Bandwidth::Bw7MHz:
- parm.u.ofdm.bandwidth = BANDWIDTH_7_MHZ;
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.ofdm.bandWidth =
+#else
+ parm.u.ofdm.bandwidth =
+#endif
+ BANDWIDTH_7_MHZ;
break;
case eDVBFrontendParametersTerrestrial::Bandwidth::Bw6MHz:
- parm.u.ofdm.bandwidth = BANDWIDTH_6_MHZ;
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.ofdm.bandWidth =
+#else
+ parm.u.ofdm.bandwidth =
+#endif
+ BANDWIDTH_6_MHZ;
break;
case eDVBFrontendParametersTerrestrial::Bandwidth::BwAuto:
- parm.u.ofdm.bandwidth = BANDWIDTH_AUTO;
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.ofdm.bandWidth =
+#else
+ parm.u.ofdm.bandwidth =
+#endif
+ BANDWIDTH_AUTO;
break;
default:
eWarning("invalid OFDM bandwith");
switch (feparm.transmission_mode)
{
case eDVBFrontendParametersTerrestrial::TransmissionMode::TM2k:
- parm.u.ofdm.transmission_mode = TRANSMISSION_MODE_2K;
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.ofdm.TransmissionMode =
+#else
+ parm.u.ofdm.transmission_mode =
+#endif
+ TRANSMISSION_MODE_2K;
break;
case eDVBFrontendParametersTerrestrial::TransmissionMode::TM8k:
- parm.u.ofdm.transmission_mode = TRANSMISSION_MODE_8K;
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.ofdm.TransmissionMode =
+#else
+ parm.u.ofdm.transmission_mode =
+#endif
+ TRANSMISSION_MODE_8K;
break;
case eDVBFrontendParametersTerrestrial::TransmissionMode::TMAuto:
- parm.u.ofdm.transmission_mode = TRANSMISSION_MODE_AUTO;
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.ofdm.TransmissionMode =
+#else
+ parm.u.ofdm.transmission_mode =
+#endif
+ TRANSMISSION_MODE_AUTO;
break;
}
parm.u.ofdm.guard_interval = GUARD_INTERVAL_AUTO;
parm.u.ofdm.hierarchy_information = HIERARCHY_AUTO;
- parm.inversion = INVERSION_AUTO;
+#if HAVE_DVB_API_VERSION < 3
+ parm.Inversion =
+#else
+ parm.inversion =
+#endif
+ INVERSION_AUTO;
break;
}
}
secCmdSequence seq;
secCommand cmd;
- cmd.type = SEC_CMDTYPE_DISEQC_RAW;
- cmd.u.diseqc.cmdtype = diseqc.data[0];
- eDebug("cmdtype is %02x", diseqc.data[0]);
- cmd.u.diseqc.addr = diseqc.data[1];
- eDebug("cmdaddr is %02x", diseqc.data[1]);
- cmd.u.diseqc.cmd = diseqc.data[2];
- eDebug("cmd is %02x", diseqc.data[2]);
- cmd.u.diseqc.numParams = diseqc.len-3;
- eDebug("numparams %d", diseqc.len-3);
-
- memcpy(cmd.u.diseqc.params, diseqc.data+3, diseqc.len-3);
- for (int i=0; i < diseqc.len-3; ++i )
- eDebugNoNewLine("%02x ", diseqc.data[3+i]);
- eDebug("");
-
- seq.continuousTone = SEC_TONE_OFF;
- seq.voltage = SEC_VOLTAGE_13;
+ if ( len > 3 )
+ {
+ seq.numCommands=1;
+ cmd.type = SEC_CMDTYPE_DISEQC_RAW;
+ cmd.u.diseqc.cmdtype = diseqc.data[0];
+ eDebug("cmdtype is %02x", diseqc.data[0]);
+ cmd.u.diseqc.addr = diseqc.data[1];
+ eDebug("cmdaddr is %02x", diseqc.data[1]);
+ cmd.u.diseqc.cmd = diseqc.data[2];
+ eDebug("cmd is %02x", diseqc.data[2]);
+ cmd.u.diseqc.numParams = diseqc.len-3;
+ eDebug("numparams %d", diseqc.len-3);
+
+ memcpy(cmd.u.diseqc.params, diseqc.data+3, diseqc.len-3);
+ for (int i=0; i < diseqc.len-3; ++i )
+ eDebugNoNewLine("%02x ", diseqc.data[3+i]);
+ eDebug("");
+ }
+ else
+ seq.numCommands=0;
+
+ seq.continuousTone = diseqc.tone == toneOn ? SEC_TONE_ON : SEC_TONE_OFF;
+ switch ( diseqc.voltage )
+ {
+ case voltageOff:
+ seq.voltage = SEC_VOLTAGE_OFF;
+ break;
+ case voltage13:
+ seq.voltage = SEC_VOLTAGE_13;
+ break;
+ case voltage18:
+ seq.voltage = SEC_VOLTAGE_18;
+ break;
+ }
seq.miniCommand = SEC_MINI_NONE;
seq.commands=&cmd;
- seq.numCommands=1;
-
if ( ioctl(m_secfd, SEC_SEND_SEQUENCE, &seq) < 0 )
{
}
return 0;
#else
+ if ( !diseqc.len )
+ return 0;
struct dvb_diseqc_master_cmd cmd;
if (::ioctl(m_fd, FE_SET_TONE, SEC_TONE_OFF))
return -EINVAL;