2 #include <lib/dvb/sec.h>
3 #if HAVE_DVB_API_VERSION < 3
4 #include <ost/frontend.h>
6 #include <linux/dvb/frontend.h>
8 #include <lib/base/eerror.h>
10 DEFINE_REF(eDVBSatelliteEquipmentControl);
12 eDVBSatelliteEquipmentControl::eDVBSatelliteEquipmentControl()
16 #if HAVE_DVB_API_VERSION < 3
17 RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FrontendParameters &parm, eDVBFrontendParametersSatellite &sat)
19 RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, struct dvb_frontend_parameters &parm, eDVBFrontendParametersSatellite &sat)
23 eDebug("(very) ugly and hardcoded eDVBSatelliteEquipmentControl");
25 if (sat.frequency > 11700000)
31 #if HAVE_DVB_API_VERSION < 3
32 parm.Frequency = sat.frequency - 10600000;
34 parm.frequency = sat.frequency - 10600000;
37 #if HAVE_DVB_API_VERSION < 3
38 parm.Frequency = sat.frequency - 9750000;
40 parm.frequency = sat.frequency - 9750000;
43 // frontend.sentDiseqc(...);
45 #if HAVE_DVB_API_VERSION < 3
46 parm.Inversion = (!sat.inversion) ? INVERSION_ON : INVERSION_OFF;
48 parm.inversion = (!sat.inversion) ? INVERSION_ON : INVERSION_OFF;
56 #if HAVE_DVB_API_VERSION < 3
57 parm.u.qpsk.FEC_inner = FEC_AUTO;
59 parm.u.qpsk.fec_inner = FEC_AUTO;
63 #if HAVE_DVB_API_VERSION < 3
64 parm.u.qpsk.SymbolRate = sat.symbol_rate;
66 parm.u.qpsk.symbol_rate = sat.symbol_rate;
69 frontend.setVoltage((sat.polarisation == eDVBFrontendParametersSatellite::Polarisation::Vertical) ? iDVBFrontend::voltage13 : iDVBFrontend::voltage18);
71 eDVBDiseqcCommand diseqc;
74 diseqc.data[0] = 0xe0;
75 diseqc.data[1] = 0x10;
76 diseqc.data[2] = 0x38;
77 diseqc.data[3] = 0xF0;
82 if (sat.polarisation == eDVBFrontendParametersSatellite::Polarisation::Horizontal)
85 frontend.sendDiseqc(diseqc);
86 frontend.setTone(hi ? iDVBFrontend::toneOn : iDVBFrontend::toneOff);