aboutsummaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2003-10-17 15:36:42 +0000
committerFelix Domke <tmbinc@elitedvb.net>2003-10-17 15:36:42 +0000
commitd63d2c3c6cbbd574dda4f8b00ebe6c661735edd5 (patch)
tree84d0cacfd0b6c1241c236c7860f7cbd7f26901bb /main
downloadenigma2-d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5.tar.gz
enigma2-d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5.zip
import of enigma2
Diffstat (limited to 'main')
-rw-r--r--main/Makefile.am31
-rw-r--r--main/Makefile.in0
-rw-r--r--main/enigma-dvbtest.cpp125
-rw-r--r--main/enigma-scan.cpp94
-rw-r--r--main/enigma.cpp90
5 files changed, 340 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..e69de29b
--- /dev/null
+++ b/main/Makefile.in
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();
+}