diff options
author | Thomas Martitz <kugel@rockbox.org> | 2010-08-23 17:12:26 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2010-08-23 17:12:26 +0000 |
commit | 93cb949372630d807615f53a8a6379937ed6819f (patch) | |
tree | 2dcb5001a9247447a1c64fd0129e64b9d8aba4e6 /apps/plugins/cube.c | |
parent | abdc5935beb7dc3fa63bffeec584921ad2a4c8bd (diff) | |
download | rockbox-93cb949372630d807615f53a8a6379937ed6819f.tar.gz rockbox-93cb949372630d807615f53a8a6379937ed6819f.tar.bz2 rockbox-93cb949372630d807615f53a8a6379937ed6819f.zip |
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
Diffstat (limited to 'apps/plugins/cube.c')
-rw-r--r-- | apps/plugins/cube.c | 24 |
1 files changed, 16 insertions, 8 deletions
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; } |