eDebug("no channel list");
else
{
- m_dvb_scan->insertInto(db, true);
- eDebug("sdt update done!");
+ eDVBChannelID chid;
+ m_reference.getChannelID(chid);
+ if (chid == m_dvb_scan->getCurrentChannelID())
+ {
+ m_dvb_scan->insertInto(db, true);
+ eDebug("sdt update done!");
+ }
+ else
+ eDebug("ignore sdt update data.... incorrect transponder tuned!!!");
}
break;
}
if (ref.path.empty())
{
- delete m_dvb_scan;
+ m_dvb_scan = 0;
m_dvb_scan = new eDVBScan(m_channel, true, false);
m_dvb_scan->connectEvent(slot(*this, &eDVBServicePMTHandler::SDTScanEvent), m_scan_event_connection);
}
void eDVBServicePMTHandler::free()
{
m_dvb_scan = 0;
- delete m_dvb_scan;
if (m_ca_servicePtr)
{
ePtr<eConnection> eDVBCAService::m_chanAddedConn;
eDVBCAService::eDVBCAService()
- : m_prev_build_hash(0), m_sendstate(0), m_retryTimer(eApp)
+ : m_prev_build_hash(0), m_sendstate(0), m_retryTimer(eTimer::create(eApp))
{
memset(m_used_demux, 0xFF, sizeof(m_used_demux));
- CONNECT(m_retryTimer.timeout, eDVBCAService::sendCAPMT);
+ CONNECT(m_retryTimer->timeout, eDVBCAService::sendCAPMT);
Connect();
}
{
case 0xFFFFFFFF:
++m_sendstate;
- m_retryTimer.start(0,true);
+ m_retryTimer->start(0,true);
// eDebug("[eDVBCAService] send failed .. immediate retry");
break;
default:
- m_retryTimer.start(5000,true);
+ m_retryTimer->start(5000,true);
// eDebug("[eDVBCAService] send failed .. retry in 5 sec");
break;
}