From 93cb949372630d807615f53a8a6379937ed6819f Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Mon, 23 Aug 2010 17:12:26 +0000 Subject: Revert "Introduce plugin_crt0.c that every plugin links." Too much errors and no time to fix them now. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27863 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/cube.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'apps/plugins/cube.c') diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index 7dec822d56..2b1e00d690 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -22,7 +22,6 @@ ***************************************************************************/ #include "plugin.h" #include "lib/playergfx.h" -#include "lib/pluginlib_exit.h" #if LCD_DEPTH > 1 #include "lib/mylcd.h" /* MYLCD_CFG_RB_XLCD or MYLCD_CFG_PGFX */ #include "lib/grey.h" @@ -33,6 +32,8 @@ #include "lib/xlcd.h" #include "lib/fixedpoint.h" +PLUGIN_HEADER + /* Loops that the values are displayed */ #define DISP_TIME 30 @@ -610,8 +611,10 @@ static void cube_draw(void) } } -void cleanup(void) +void cleanup(void *parameter) { + (void)parameter; + #ifdef USEGSLIB grey_release(); #elif defined HAVE_LCD_CHARCELLS @@ -635,7 +638,7 @@ enum plugin_status plugin_start(const void* parameter) bool highspeed = false; bool paused = false; bool redraw = true; - bool quit = false; + bool exit = false; (void)(parameter); @@ -648,7 +651,6 @@ enum plugin_status plugin_start(const void* parameter) rb->splash(HZ, "Couldn't init greyscale display"); return PLUGIN_ERROR; } - /* init lcd_ function pointers */ lcdfuncs.update = rb->lcd_update; lcdfuncs.clear_display = rb->lcd_clear_display; @@ -671,8 +673,7 @@ enum plugin_status plugin_start(const void* parameter) pgfx_display(0, 0); #endif - atexit(cleanup); - while(!quit) + while(!exit) { if (redraw) { @@ -829,17 +830,24 @@ enum plugin_status plugin_start(const void* parameter) case CUBE_RC_QUIT: #endif case CUBE_QUIT: - exit(EXIT_SUCCESS); + exit = true; break; default: - exit_on_usb(button); + if (rb->default_event_handler_ex(button, cleanup, NULL) + == SYS_USB_CONNECTED) + return PLUGIN_USB_CONNECTED; break; } if (button != BUTTON_NONE) lastbutton = button; } +#ifdef USEGSLIB + grey_release(); +#elif defined(HAVE_LCD_CHARCELLS) + pgfx_release(); +#endif return PLUGIN_OK; } -- cgit v1.2.3