return;
/* otherwise, add it to the todo list. */
- m_ch_toScan.push_back(feparm);
+ m_ch_toScan.push_front(feparm); // better.. then the rotor not turning wild from east to west :)
}
int eDVBScan::sameChannel(iDVBFrontendParameters *ch1, iDVBFrontendParameters *ch2) const
m_ch_unavailable.clear();
m_new_channels.clear();
m_new_services.clear();
- m_ch_toScan.insert(m_ch_toScan.end(), known_transponders.begin(), known_transponders.end());
+
+ for (eSmartPtrList<iDVBFrontendParameters>::const_iterator i(known_transponders.begin()); i != known_transponders.end(); ++i)
+ {
+ bool exist=false;
+ for (std::list<ePtr<iDVBFrontendParameters> >::const_iterator ii(m_ch_toScan.begin()); ii != m_ch_toScan.end(); ++ii)
+ {
+ if (sameChannel(*i, *ii))
+ {
+ exist=true;
+ break;
+ }
+ }
+ if (!exist)
+ m_ch_toScan.push_back(*i);
+ }
+
nextChannel();
}