#include <lib/base/eerror.h>
#include <lib/base/init.h>
#include <lib/base/init_num.h>
-#include <lib/gdi/gfbdc.h>
+#include <lib/gdi/gmaindc.h>
#include <lib/gdi/glcddc.h>
#include <lib/gdi/grc.h>
-#ifdef WITH_SDL
-#include <lib/gdi/sdl.h>
-#endif
#include <lib/gdi/epng.h>
#include <lib/gdi/font.h>
#include <lib/gui/ebutton.h>
#include <lib/python/python.h>
#include "bsod.h"
+#include "version_info.h"
#include <gst/gst.h>
int 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);
+}
+
+static void sigterm_handler(int num)
+{
+ quitMainloop(128 + num);
+}
+
+void setSigTermHandler()
+{
+ struct sigaction act;
+
+ act.sa_handler = sigterm_handler;
+ act.sa_flags = SA_RESTART;
+
+ if (sigemptyset(&act.sa_mask) == -1)
+ perror("sigemptyset");
+ if (sigaction(SIGTERM, &act, 0) == -1)
+ perror("SIGTERM");
+}
+
int main(int argc, char **argv)
{
#ifdef MEMLEAK_CHECK
eMain main;
#if 1
-#ifdef WITH_SDL
- ePtr<gSDLDC> my_dc;
- gSDLDC::getInstance(my_dc);
-#else
- ePtr<gFBDC> my_dc;
- gFBDC::getInstance(my_dc);
+ ePtr<gMainDC> my_dc;
+ gMainDC::getInstance(my_dc);
- int double_buffer = my_dc->haveDoubleBuffering();
-#endif
+ //int double_buffer = my_dc->haveDoubleBuffering();
ePtr<gLCDDC> my_lcd_dc;
gLCDDC::getInstance(my_lcd_dc);
bsodCatchSignals();
+ setSigTermHandler();
+
setIoPrio(IOPRIO_CLASS_BE, 3);
// python.execute("mytest", "__main__");
{
gPainter p(my_lcd_dc);
- p.resetClip(eRect(0, 0, 132, 64));
+ p.resetClip(eRect(ePoint(0, 0), my_lcd_dc->size()));
p.clear();
+ p.flush();
}
return exit_code;
void runMainloop()
{
+ setSigTermHandler();
eApp->runLoop();
}
-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
+ std::string date = enigma2_date;
+ std::string branch = enigma2_branch;
return std::string(date + '-' + branch).c_str();
}
struct mallinfo mi = mallinfo();
eDebug("MALLOC: %d total", mi.uordblks);
}
+
+#ifdef USE_LIBVUGLES2
+#include <vuplus_gles.h>
+
+void setAnimation_current(int a)
+{
+ gles_set_animation_func(a);
+}
+
+void setAnimation_speed(int speed)
+{
+ gles_set_animation_speed(speed);
+}
+
+void setAnimation_current_listbox(int a)
+{
+ gles_set_animation_listbox_func(a);
+}
+#else
+void setAnimation_current(int a) {}
+void setAnimation_speed(int speed) {}
+void setAnimation_current_listbox(int a) {}
+#endif