aboutsummaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2003-10-17 15:35:43 +0000
committerFelix Domke <tmbinc@elitedvb.net>2003-10-17 15:35:43 +0000
commitfc2f5b2cd655f1391f2abda1b39e37cdec98a951 (patch)
tree312efcea86a319de407a7c314fb981fb1c71019a /main
downloadenigma2-fc2f5b2cd655f1391f2abda1b39e37cdec98a951.tar.gz
enigma2-fc2f5b2cd655f1391f2abda1b39e37cdec98a951.zip
Initial revision
Diffstat (limited to 'main')
-rw-r--r--main/Makefile.am31
-rw-r--r--main/Makefile.in354
-rw-r--r--main/enigma-dvbtest.cpp125
-rw-r--r--main/enigma-scan.cpp94
-rw-r--r--main/enigma.cpp90
5 files changed, 694 insertions, 0 deletions
diff --git a/main/Makefile.am b/main/Makefile.am
new file mode 100644
index 00000000..2f63dff1
--- /dev/null
+++ b/main/Makefile.am
@@ -0,0 +1,31 @@
+INCLUDES = \
+ -I$(top_srcdir)/include
+
+bin_PROGRAMS = enigma2
+
+enigma2_SOURCES = \
+ enigma.cpp
+
+enigma2_LDADD_WHOLE = \
+ $(top_builddir)/lib/base/libenigma_base.a \
+ $(top_builddir)/lib/driver/libenigma_driver.a \
+ $(top_builddir)/lib/dvb/libenigma_dvb.a \
+ $(top_builddir)/lib/dvb_si/libenigma_dvb_si.a \
+ $(top_builddir)/lib/gui/libenigma_gui.a \
+ $(top_builddir)/lib/gdi/libenigma_gdi.a \
+ $(top_builddir)/lib/network/libenigma_network.a \
+ $(top_builddir)/lib/service/libenigma_service.a
+
+enigma2_LDADD = \
+ @FREETYPE_LIBS@ \
+ @ID3TAG_LIBS@ \
+ @MAD_LIBS@ \
+ @MD5SUM_LIBS@ \
+ @PNG_LIBS@ \
+ @SIGC_LIBS@ \
+ @XMLTREE_LIBS@ \
+ -ldl -lpthread -lcrypt -lresolv
+
+enigma2$(EXEEXT): $(enigma2_OBJECTS) $(enigma2_DEPENDENCIES) $(enigma2_LDADD_WHOLE)
+ @rm -f enigma2$(EXEEXT)
+ $(CXXLINK) $(enigma2_LDFLAGS) $(enigma2_OBJECTS) -Wl,--export-dynamic -Wl,--whole-archive $(enigma2_LDADD_WHOLE) -Wl,--no-whole-archive $(enigma2_LDADD) $(LIBS)
diff --git a/main/Makefile.in b/main/Makefile.in
new file mode 100644
index 00000000..62532b21
--- /dev/null
+++ b/main/Makefile.in
@@ -0,0 +1,354 @@
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AMTAR = @AMTAR@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CC = @CC@
+CONFIGDIR = @CONFIGDIR@
+CXX = @CXX@
+DATADIR = @DATADIR@
+DEPDIR = @DEPDIR@
+DRIVER = @DRIVER@
+DUMMYPOFILES = @DUMMYPOFILES@
+EXEEXT = @EXEEXT@
+FONTDIR = @FONTDIR@
+GAMESDIR = @GAMESDIR@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBDIR = @LIBDIR@
+MAINT = @MAINT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGINDIR = @PLUGINDIR@
+POFILES = @POFILES@
+RANLIB = @RANLIB@
+UCODEDIR = @UCODEDIR@
+UPDATEPOFILES = @UPDATEPOFILES@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+_LIBDIR = @_LIBDIR@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+targetdatadir = @targetdatadir@
+targetlocalstatedir = @targetlocalstatedir@
+targetprefix = @targetprefix@
+targetsysconfdir = @targetsysconfdir@
+
+INCLUDES = \
+ -I$(top_srcdir)/include
+
+
+bin_PROGRAMS = enigma2
+
+enigma2_SOURCES = \
+ enigma.cpp
+
+
+enigma2_LDADD_WHOLE = \
+ $(top_builddir)/lib/base/libenigma_base.a \
+ $(top_builddir)/lib/driver/libenigma_driver.a \
+ $(top_builddir)/lib/dvb/libenigma_dvb.a \
+ $(top_builddir)/lib/dvb_si/libenigma_dvb_si.a \
+ $(top_builddir)/lib/gui/libenigma_gui.a \
+ $(top_builddir)/lib/gdi/libenigma_gdi.a \
+ $(top_builddir)/lib/network/libenigma_network.a \
+ $(top_builddir)/lib/service/libenigma_service.a
+
+
+enigma2_LDADD = \
+ @FREETYPE_LIBS@ \
+ @ID3TAG_LIBS@ \
+ @MAD_LIBS@ \
+ @MD5SUM_LIBS@ \
+ @PNG_LIBS@ \
+ @SIGC_LIBS@ \
+ @XMLTREE_LIBS@ \
+ -ldl -lpthread -lcrypt -lresolv
+
+subdir = main
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = enigma2$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_enigma2_OBJECTS = enigma.$(OBJEXT)
+enigma2_OBJECTS = $(am_enigma2_OBJECTS)
+enigma2_DEPENDENCIES =
+enigma2_LDFLAGS =
+
+DEFS = @DEFS@
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/enigma.Po
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+CXXFLAGS = @CXXFLAGS@
+DIST_SOURCES = $(enigma2_SOURCES)
+DIST_COMMON = Makefile.am Makefile.in
+SOURCES = $(enigma2_SOURCES)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu main/Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ ; then \
+ f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+ rm -f $(DESTDIR)$(bindir)/$$f; \
+ done
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/enigma.Po@am__quote@
+
+distclean-depend:
+ -rm -rf $(DEPDIR)
+
+.cpp.o:
+@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CXXCOMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
+
+.cpp.obj:
+@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CXXCOMPILE) -c -o $@ `cygpath -w $<`
+CXXDEPMODE = @CXXDEPMODE@
+uninstall-info-am:
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
+
+GTAGS:
+ here=`CDPATH=: && cd $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ $(mkinstalldirs) "$(distdir)/$$dir"; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+ distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic distclean distclean-compile distclean-depend \
+ distclean-generic distclean-tags distdir dvi dvi-am info \
+ info-am install install-am install-binPROGRAMS install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic tags uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-info-am
+
+
+enigma2$(EXEEXT): $(enigma2_OBJECTS) $(enigma2_DEPENDENCIES) $(enigma2_LDADD_WHOLE)
+ @rm -f enigma2$(EXEEXT)
+ $(CXXLINK) $(enigma2_LDFLAGS) $(enigma2_OBJECTS) -Wl,--export-dynamic -Wl,--whole-archive $(enigma2_LDADD_WHOLE) -Wl,--no-whole-archive $(enigma2_LDADD) $(LIBS)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/main/enigma-dvbtest.cpp b/main/enigma-dvbtest.cpp
new file mode 100644
index 00000000..4fdb6984
--- /dev/null
+++ b/main/enigma-dvbtest.cpp
@@ -0,0 +1,125 @@
+#include <stdio.h>
+#include <libsig_comp.h>
+#include <lib/base/ebase.h>
+#include <lib/base/eerror.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/specs.h>
+#include <unistd.h>
+
+class eMain: public eApplication, public Object
+{
+ ePtr<eDVBResourceManager> m_mgr;
+ ePtr<iDVBChannel> m_channel;
+ ePtr<iDVBDemux> m_demux;
+ eAUTable<eTable<ProgramMapTable> > m_table;
+
+ ePtr<eDVBDB> m_dvbdb;
+
+ ePtr<eConnection> m_state_change_connection;
+ int m_last_channel_state;
+public:
+ eMain()
+ {
+ eDebug("mich gibts nu!");
+
+ m_mgr = new eDVBResourceManager();
+
+ m_dvbdb = new eDVBDB();
+ m_mgr->setChannelList(m_dvbdb);
+
+ eDVBChannelID chid(1,2,3);
+
+ eDVBFrontendParametersSatellite fesat;
+
+ fesat.frequency = 12070000;
+ fesat.symbol_rate = 27500000;
+ fesat.polarisation = eDVBFrontendParametersSatellite::Polarisation::Horizontal;
+ fesat.fec = eDVBFrontendParametersSatellite::FEC::f3_4;
+ fesat.inversion = eDVBFrontendParametersSatellite::Inversion::Off;
+ fesat.orbital_position = 192;
+
+ eDVBFrontendParameters *fe = new eDVBFrontendParameters();
+
+ fe->setDVBS(fesat);
+
+ m_dvbdb->addChannelToList(chid, fe);
+
+ if (m_mgr->allocateChannel(chid, m_channel))
+ eDebug("shit it failed!");
+
+ if (m_channel)
+ {
+ m_channel->connectStateChange(slot(*this, &eMain::channelStateChanged), m_state_change_connection);
+ channelStateChanged(m_channel);
+ }
+ }
+
+ void channelStateChanged(iDVBChannel *channel)
+ {
+ int state;
+ channel->getState(state);
+ eDebug("channel state is now %d", state);
+
+ if ((m_last_channel_state != iDVBChannel::state_ok)
+ && (state == iDVBChannel::state_ok) && (!m_demux))
+ {
+ eDebug("we'll start tuning!");
+ if (m_channel)
+ if (m_channel->getDemux(m_demux))
+ eDebug("shit it failed.. again.");
+
+ if (m_demux)
+ {
+ CONNECT(m_table.tableReady, eMain::tableReady);
+ m_table.begin(this, eDVBPMTSpec(0x20, 0x33f6), m_demux);
+ }
+ }
+
+ m_last_channel_state = state;
+ }
+
+ void tableReady(int)
+ {
+ ePtr<eTable<ProgramMapTable> > ptr;
+ if (!m_table.getCurrent(ptr))
+ {
+ ProgramMapTableConstIterator i;
+ for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i)
+ {
+ const ProgramMapTable &pmt = **i;
+ eDebug("pcr pid: %x", pmt.getPcrPid());
+ }
+ eDebug("program map ...");
+ quit(0);
+ }
+ eDebug("table ready.");
+ }
+
+ ~eMain()
+ {
+ 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();
+}
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();
+}
diff --git a/main/enigma.cpp b/main/enigma.cpp
new file mode 100644
index 00000000..7543e451
--- /dev/null
+++ b/main/enigma.cpp
@@ -0,0 +1,90 @@
+#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>
+
+#include <lib/service/iservice.h>
+
+class eMain: public eApplication, public Object
+{
+ eInit init;
+
+ ePtr<eDVBResourceManager> m_mgr;
+ ePtr<iDVBChannel> m_channel;
+ ePtr<eDVBDB> m_dvbdb;
+
+ ePtr<iPlayableService> m_playservice;
+public:
+ eMain()
+ {
+ init.setRunlevel(eAutoInitNumbers::main);
+ m_dvbdb = new eDVBDB();
+ m_mgr = new eDVBResourceManager();
+ m_mgr->setChannelList(m_dvbdb);
+
+ ePtr<eServiceCenter> service_center;
+ eServiceCenter::getInstance(service_center);
+
+ if (service_center)
+ {
+ eServiceReference ref("2:0:1:0:0:0:0:0:0:0:/");
+ ePtr<iListableService> lst;
+ if (service_center->list(ref, lst))
+ eDebug("no list available!");
+ else
+ {
+ std::list<eServiceReference> list;
+ if (lst->getContent(list))
+ eDebug("list itself SUCKED AROUND!!!");
+ else
+ for (std::list<eServiceReference>::const_iterator i(list.begin());
+ i != list.end(); ++i)
+ eDebug("%s", i->toString().c_str());
+ }
+ }
+
+ eServiceReference ref("1:0:1:6de2:44d:1:c00000:0:0:0:");
+
+ if (service_center)
+ {
+ if (service_center->play(ref, m_playservice))
+ eDebug("play sucked around!");
+ else
+ eDebug("play r00lz!");
+ } else
+ eDebug("no service center: no play.");
+ }
+
+ ~eMain()
+ {
+
+ }
+};
+
+#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();
+}