X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1cdf6cb021fcaa6548b90ba7b6765cf1e8b8b37b..e2e40a2d105f7a4caac0a96dfdbd1282f7922e2b:/lib/components/scan.cpp diff --git a/lib/components/scan.cpp b/lib/components/scan.cpp index 8fb60b58..fc2470f7 100644 --- a/lib/components/scan.cpp +++ b/lib/components/scan.cpp @@ -50,8 +50,38 @@ eComponentScan::~eComponentScan() { } +void eComponentScan::clear() +{ + m_initial.clear(); +} + +void eComponentScan::addInitial(const eDVBFrontendParametersSatellite &p) +{ + ePtr parm = new eDVBFrontendParameters(); + parm->setDVBS(p); + m_initial.push_back(parm); +} + +void eComponentScan::addInitial(const eDVBFrontendParametersCable &p) +{ + ePtr parm = new eDVBFrontendParameters(); + parm->setDVBC(p); + m_initial.push_back(parm); +} + +void eComponentScan::addInitial(const eDVBFrontendParametersTerrestrial &p) +{ + ePtr parm = new eDVBFrontendParameters(); + parm->setDVBT(p); + m_initial.push_back(parm); +} + + int eComponentScan::start() { + if (m_initial.empty()) + return -2; + if (m_done != -1) return -1; @@ -59,7 +89,10 @@ int eComponentScan::start() ePtr mgr; eDVBResourceManager::getInstance(mgr); - + +#if 0 + ePtr fe = new eDVBFrontendParameters(); +#if 1 eDVBFrontendParametersSatellite fesat; fesat.frequency = 11817000; // 12070000; @@ -69,23 +102,37 @@ int eComponentScan::start() fesat.inversion = eDVBFrontendParametersSatellite::Inversion::Off; fesat.orbital_position = 192; - eDVBFrontendParameters *fe = new eDVBFrontendParameters(); fe->setDVBS(fesat); - - ePtr channel; + +#else + eDVBFrontendParametersTerrestrial fet; + fet.frequency = 626000000; + fet.inversion = eDVBFrontendParametersTerrestrial::Inversion::Unknown; + fet.bandwidth = eDVBFrontendParametersTerrestrial::Bandwidth::Bw8MHz; + fet.code_rate_HP = fet.code_rate_LP = eDVBFrontendParametersTerrestrial::FEC::fAuto; + fet.modulation = eDVBFrontendParametersTerrestrial::Modulation::QAM16; + fet.transmission_mode = eDVBFrontendParametersTerrestrial::TransmissionMode::TM8k; + fet.guard_interval = eDVBFrontendParametersTerrestrial::GuardInterval::GI_1_32; + fet.hierarchy = eDVBFrontendParametersTerrestrial::Hierarchy::HNone; + fe->setDVBT(fet); +#endif +#endif + + eUsePtr channel; if (mgr->allocateRawChannel(channel)) + { eDebug("scan: allocating raw channel failed!"); + return -1; + } std::list > list; - list.push_back(fe); - m_scan = new eDVBScan(channel); m_scan->connectEvent(slot(*this, &eComponentScan::scanEvent), m_scan_event_connection); - m_scan->start(list); - + m_scan->start(m_initial); + return 0; } @@ -113,3 +160,8 @@ int eComponentScan::isDone() { return m_done; } + +int eComponentScan::getError() +{ + return m_failed; +}