terrestrial.code_rate_HP != eDVBFrontendParametersTerrestrial::FEC_Auto)
diff = 1 << 30;
else
- diff = abs(terrestrial.frequency - oterrestrial.frequency);
+ diff = abs(terrestrial.frequency - oterrestrial.frequency) / 1000;
return 0;
default:
return -1;
return 0;
case iDVBFrontend::feTerrestrial:
hash = 0xEEEE0000;
- hash |= (terrestrial.frequency/1000)&0xFFFF;
+ hash |= (terrestrial.frequency/1000000)&0xFFFF;
return 0;
default:
return -1;
eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok, bool simulate)
:m_simulate(simulate), m_enabled(false), m_type(-1), m_dvbid(fe), m_slotid(fe)
,m_fd(-1), m_need_rotor_workaround(false), m_can_handle_dvbs2(false)
- , m_timeout(0), m_tuneTimer(0)
+ ,m_state(stateClosed), m_timeout(0), m_tuneTimer(0)
#if HAVE_DVB_API_VERSION < 3
,m_secfd(-1)
#endif
int eDVBFrontend::openFrontend()
{
- if (m_sn)
+ if (m_state != stateClosed)
return -1; // already opened
m_state=stateIdle;
if (snr != 0)
ret = 10 * (int)(-100 * (log10(snr) - log10(255)));
}
+ else if (!strcmp(m_description, "BCM4506"))
+ ret = (snr * 100) >> 8;
if (type == signalQuality)
{
state = sec_fe->m_state;
}
// sec_fe is closed... we must reopen it here..
- if (state == eDVBFrontend::stateClosed)
+ if (state == stateClosed)
{
regFE = prev;
prev->inc_use();