summaryrefslogtreecommitdiff
path: root/apps/plugins/starfield.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-08-24 14:30:46 +0000
committerThomas Martitz <kugel@rockbox.org>2010-08-24 14:30:46 +0000
commitcae4ae2c71ae10ff67d39a78a705136e740dc07e (patch)
treeb5bb5e1879493f67d7c7ad977fba90eb49b743d7 /apps/plugins/starfield.c
parent3478bc5d6dc0a081c3aeb4f501c8b4cb4f53a78d (diff)
downloadrockbox-cae4ae2c71ae10ff67d39a78a705136e740dc07e.tar.gz
rockbox-cae4ae2c71ae10ff67d39a78a705136e740dc07e.zip
Second try: Introduce plugin_crt0.c that every plugin links.
It handles exit() properly, calling the handler also when the plugin returns normally (also make exit() more standard compliant while at it). It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore. To work better together with callbacks passed to rb->default_event_handler_ex() introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it. In most cases rb->default_event_handler_ex() was passed a callback which was manually called at all other return points. This can now be done via atexit(). In future plugin_crt0.c could also handle clearing bss, initializing iram and more. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27873 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/starfield.c')
-rw-r--r--apps/plugins/starfield.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 1ae0f289ff..09f58da1f6 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -19,10 +19,11 @@
19 19
20#include "plugin.h" 20#include "plugin.h"
21#include "lib/helper.h" 21#include "lib/helper.h"
22#include "lib/pluginlib_exit.h"
22 23
23#ifdef HAVE_LCD_BITMAP /* and also not for the Player */ 24#ifdef HAVE_LCD_BITMAP /* and also not for the Player */
24 25
25PLUGIN_HEADER 26
26 27
27/******************************* Globals ***********************************/ 28/******************************* Globals ***********************************/
28 29
@@ -497,9 +498,11 @@ int plugin_main(void)
497 case STARFIELD_RC_QUIT: 498 case STARFIELD_RC_QUIT:
498#endif 499#endif
499 case(STARFIELD_QUIT): 500 case(STARFIELD_QUIT):
500 case(SYS_USB_CONNECTED):
501 return PLUGIN_OK; 501 return PLUGIN_OK;
502 break; 502 break;
503 default:
504 exit_on_usb(button);
505 break;
503 } 506 }
504 } 507 }
505} 508}