-#ifdef WITH_SDL
-#define SDLDC
-#endif
-
-#include <stdio.h>
#include <unistd.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
#include <libsig_comp.h>
#include <lib/actions/action.h>
#include <lib/gdi/sdl.h>
#endif
#include <lib/gdi/epng.h>
-#include <lib/gdi/font.h>
+#include <lib/gdi/font.h>
#include <lib/gui/ebutton.h>
#include <lib/gui/elabel.h>
#include <lib/gui/elistboxcontent.h>
#include <lib/python/connections.h>
#include <lib/python/python.h>
-#include "bsod.h"
+#include "bsod.h"
#ifdef HAVE_GSTREAMER
#include <gst/gst.h>
class eMain: public eApplication, public Object
{
eInit init;
-
- ePtr<eDVBResourceManager> m_mgr;
+
ePtr<eDVBDB> m_dvbdb;
+ ePtr<eDVBResourceManager> m_mgr;
ePtr<eDVBLocalTimeHandler> m_locale_time_handler;
- ePtr<eComponentScan> m_scan;
ePtr<eEPGCache> m_epgcache;
public:
eMain()
{
init.setRunlevel(eAutoInitNumbers::main);
-
- /* TODO: put into init */
+ /* TODO: put into init */
m_dvbdb = new eDVBDB();
m_mgr = new eDVBResourceManager();
m_locale_time_handler = new eDVBLocalTimeHandler();
~eMain()
{
m_dvbdb->saveServicelist();
- m_scan = 0;
+ m_mgr->releaseCachedChannel();
}
};
ePython python;
eMain main;
-
+
#if 1
-#ifdef SDLDC
+#ifdef WITH_SDL
ePtr<gSDLDC> my_dc;
gSDLDC::getInstance(my_dc);
#else
dsk_lcd.setDC(my_lcd_dc);
ePtr<gPixmap> m_pm;
- loadPNG(m_pm, DATADIR "/enigma2/pal.png");
+ loadPNG(m_pm, DATADIR "/enigma2/skin_default/pal.png");
if (!m_pm)
{
eFatal("pal.png not found!");
ePtr<gPixmap> wait[MAX_SPINNER];
for (i=0; i<MAX_SPINNER; ++i)
{
- char filename[strlen(DATADIR) + 20];
- sprintf(filename, DATADIR "/enigma2/wait%d.png", i + 1);
+ char filename[strlen(DATADIR) + 41];
+ sprintf(filename, DATADIR "/enigma2/skin_default/spinner/wait%d.png", i + 1);
loadPNG(wait[i], filename);
if (!wait[i])
setIoPrio(IOPRIO_CLASS_BE, 3);
- python.execute("mytest", "__main__");
-
+// python.execute("mytest", "__main__");
+ python.execFile("/usr/lib/enigma2/python/mytest.py");
+
+ extern void setFullsize(); // definend in lib/gui/evideo.cpp
+ setFullsize();
+
if (exit_code == 5) /* python crash */
- bsodFatal();
+ {
+ eDebug("(exit code 5)");
+ bsodFatal(0);
+ }
dsk.paint();
dsk_lcd.paint();
gPainter p(my_lcd_dc);
p.resetClip(eRect(0, 0, 132, 64));
p.clear();
- p.flush();
}
return exit_code;
void quitMainloop(int exitCode)
{
+ FILE *f = fopen("/proc/stb/fp/was_timer_wakeup", "w");
+ if (f)
+ {
+ fprintf(f, "%d", 0);
+ fclose(f);
+ }
+ else
+ {
+ int fd = open("/dev/dbox/fp0", O_WRONLY);
+ if (fd >= 0)
+ {
+ if (ioctl(fd, 10 /*FP_CLEAR_WAKEUP_TIMER*/) < 0)
+ eDebug("FP_CLEAR_WAKEUP_TIMER failed (%m)");
+ close(fd);
+ }
+ else
+ eDebug("open /dev/dbox/fp0 for wakeup timer clear failed!(%m)");
+ }
exit_code = exitCode;
eApp->quit(0);
}
+
+#include "version.h"
+
+const char *getEnigmaVersionString()
+{
+ std::string date =
+#ifdef ENIGMA2_LAST_CHANGE_DATE
+ ENIGMA2_LAST_CHANGE_DATE;
+#else
+ __DATE__;
+#endif
+ std::string branch =
+#ifdef ENIGMA2_BRANCH
+ ENIGMA2_BRANCH;
+#else
+ "HEAD";
+#endif
+ return std::string(date + '-' + branch).c_str();
+}
+
+#include <malloc.h>
+
+void dump_malloc_stats(void)
+{
+ struct mallinfo mi = mallinfo();
+ eDebug("MALLOC: %d total", mi.uordblks);
+}