diff = 1<<29;
else if (sat.polarisation != osat.polarisation)
diff = 1<<28;
- else
+ else
+ {
diff = abs(sat.frequency - osat.frequency);
+ diff += abs(sat.symbol_rate - osat.symbol_rate);
+ }
return 0;
}
case iDVBFrontend::feCable:
for (int i=0; i<entries; ++i)
m_data[i] = -1;
+ m_idleInputpower[0]=m_idleInputpower[1]=0;
+
ok = !openFrontend();
closeFrontend();
}
return 0;
}
-void eDVBFrontend::closeFrontend()
+int eDVBFrontend::closeFrontend()
{
if (!m_fe && m_data[7] != -1)
{
{
eDebug("dont close frontend %d until the linked frontend %d is still in use",
m_fe, linked_fe->m_frontend->getID());
- return;
+ return -1;
}
}
eDebug("close frontend %d", m_fe);
setTone(iDVBFrontend::toneOff);
setVoltage(iDVBFrontend::voltageOff);
+ return 0;
}
eDVBFrontend::~eDVBFrontend()
cmd = SEC_MINI_B;
if (::ioctl(m_secfd, SEC_DISEQC_SEND_BURST, cmd))
return -EINVAL;
+#else
+ fe_sec_mini_cmd_t cmd = SEC_MINI_A;
+ if ( burst == eDVBSatelliteDiseqcParameters::A )
+ cmd = SEC_MINI_A;
+ else if ( burst == eDVBSatelliteDiseqcParameters::B )
+ cmd = SEC_MINI_B;
+ else
+ {
+ eDebug("unknown toneburst!");
+ return -EINVAL;
+ }
+ if (::ioctl(m_fd, FE_DISEQC_SEND_BURST, cmd))
+ return -EINVAL;
#endif
return 0;
}