X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d6e0b1fd881d459036f5b7ace9fa7a61f6bcce8f..064515cf022f9ec6197c355b259960f5cb5d731e:/lib/components/scan.cpp?ds=sidebyside diff --git a/lib/components/scan.cpp b/lib/components/scan.cpp index fc2470f7..c21e8f4b 100644 --- a/lib/components/scan.cpp +++ b/lib/components/scan.cpp @@ -28,10 +28,17 @@ void eComponentScan::scanEvent(int evt) } else { m_scan->insertInto(db); + db->flush(); eDebug("scan done!"); } } + if (evt == eDVBScan::evtNewService) + { + newService(); + return; + } + if (evt == eDVBScan::evtFail) { eDebug("scan failed."); @@ -77,7 +84,7 @@ void eComponentScan::addInitial(const eDVBFrontendParametersTerrestrial &p) } -int eComponentScan::start() +int eComponentScan::start(int feid, int flags) { if (m_initial.empty()) return -2; @@ -90,40 +97,11 @@ int eComponentScan::start() eDVBResourceManager::getInstance(mgr); -#if 0 - ePtr fe = new eDVBFrontendParameters(); -#if 1 - eDVBFrontendParametersSatellite fesat; - - fesat.frequency = 11817000; // 12070000; - fesat.symbol_rate = 27500000; - fesat.polarisation = eDVBFrontendParametersSatellite::Polarisation::Vertical; - fesat.fec = eDVBFrontendParametersSatellite::FEC::f3_4; - fesat.inversion = eDVBFrontendParametersSatellite::Inversion::Off; - fesat.orbital_position = 192; - - - fe->setDVBS(fesat); - -#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)) + if (mgr->allocateRawChannel(channel, feid)) { - eDebug("scan: allocating raw channel failed!"); + eDebug("scan: allocating raw channel (on frontend %d) failed!", feid); return -1; } @@ -131,7 +109,7 @@ int eComponentScan::start() m_scan = new eDVBScan(channel); m_scan->connectEvent(slot(*this, &eComponentScan::scanEvent), m_scan_event_connection); - m_scan->start(m_initial); + m_scan->start(m_initial, flags); return 0; } @@ -165,3 +143,10 @@ int eComponentScan::getError() { return m_failed; } + +void eComponentScan::getLastServiceName(std::string &string) +{ + if (!m_scan) + return; + m_scan->getLastServiceName(string); +}