diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2003-10-17 15:36:42 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2003-10-17 15:36:42 +0000 |
| commit | d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5 (patch) | |
| tree | 84d0cacfd0b6c1241c236c7860f7cbd7f26901bb /main/enigma-scan.cpp | |
| download | enigma2-d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5.tar.gz enigma2-d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5.zip | |
import of enigma2
Diffstat (limited to 'main/enigma-scan.cpp')
| -rw-r--r-- | main/enigma-scan.cpp | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/main/enigma-scan.cpp b/main/enigma-scan.cpp new file mode 100644 index 00000000..af50548e --- /dev/null +++ b/main/enigma-scan.cpp @@ -0,0 +1,94 @@ +#include <stdio.h> +#include <libsig_comp.h> +#include <lib/base/ebase.h> +#include <lib/base/eerror.h> +#include <lib/base/init.h> +#include <lib/base/init_num.h> + +#include <lib/dvb/dvb.h> +#include <lib/dvb/db.h> +#include <lib/dvb/isection.h> +#include <lib/dvb/esection.h> +#include <lib/dvb_si/pmt.h> +#include <lib/dvb/scan.h> +#include <unistd.h> + +class eMain: public eApplication, public Object +{ + eInit init; + + eDVBScan *m_scan; + + ePtr<eDVBResourceManager> m_mgr; + ePtr<iDVBChannel> m_channel; + ePtr<eDVBDB> m_dvbdb; + + void scanEvent(int evt) + { + eDebug("scan event %d!", evt); + if (evt == eDVBScan::evtFinish) + { + m_scan->insertInto(m_dvbdb); + quit(0); + } + } + ePtr<eConnection> m_scan_event_connection; +public: + eMain() + { + m_dvbdb = new eDVBDB(); + m_mgr = new eDVBResourceManager(); + + 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; + + eDVBFrontendParameters *fe = new eDVBFrontendParameters(); + + fe->setDVBS(fesat); + + if (m_mgr->allocateRawChannel(m_channel)) + eDebug("shit it failed!"); + +// init.setRunlevel(eAutoInitNumbers::main); + eDebug("starting scan..."); + + std::list<ePtr<iDVBFrontendParameters> > list; + + list.push_back(fe); + + m_scan = new eDVBScan(m_channel); + m_scan->start(list); + + m_scan->connectEvent(slot(*this, &eMain::scanEvent), m_scan_event_connection); + } + + ~eMain() + { + delete m_scan; + eDebug("... nicht mehr."); + } +}; + +#ifdef OBJECT_DEBUG +int object_total_remaining; + +void object_dump() +{ + printf("%d items left\n", object_total_remaining); +} +#endif + +int main() +{ +#ifdef OBJECT_DEBUG + atexit(object_dump); +#endif + eMain app; + return app.exec(); +} |
