summaryrefslogtreecommitdiff
path: root/apps/plugins/plasma.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-08-23 17:12:26 +0000
committerThomas Martitz <kugel@rockbox.org>2010-08-23 17:12:26 +0000
commit93cb949372630d807615f53a8a6379937ed6819f (patch)
tree2dcb5001a9247447a1c64fd0129e64b9d8aba4e6 /apps/plugins/plasma.c
parentabdc5935beb7dc3fa63bffeec584921ad2a4c8bd (diff)
downloadrockbox-93cb949372630d807615f53a8a6379937ed6819f.zip
rockbox-93cb949372630d807615f53a8a6379937ed6819f.tar.gz
rockbox-93cb949372630d807615f53a8a6379937ed6819f.tar.bz2
rockbox-93cb949372630d807615f53a8a6379937ed6819f.tar.xz
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/plasma.c')
-rw-r--r--apps/plugins/plasma.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index 35bc03b..637d948 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -27,7 +27,6 @@
#include "plugin.h"
#include "lib/helper.h"
#include "lib/pluginlib_actions.h"
-#include "lib/pluginlib_exit.h"
#ifdef HAVE_LCD_BITMAP
@@ -36,6 +35,7 @@
#endif
#include "lib/fixedpoint.h"
+PLUGIN_HEADER
/******************************* Globals ***********************************/
@@ -131,8 +131,10 @@ static void shades_generate(void)
}
#endif
-void cleanup(void)
+void cleanup(void *parameter)
{
+ (void)parameter;
+
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
if (boosted)
rb->cpu_boost(false);
@@ -142,9 +144,6 @@ void cleanup(void)
#endif
/* Turn on backlight timeout (revert to settings) */
backlight_use_settings(); /* backlight control in lib/helper.c */
-#if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256)
- rb->lcd_set_mode(LCD_MODE_RGB565);
-#endif
}
/*
@@ -181,15 +180,10 @@ int main(void)
/* get the remainder of the plugin buffer */
gbuf = (unsigned char *) rb->plugin_get_buffer(&gbuf_size);
- if (!grey_init(gbuf, gbuf_size, GREY_ON_COP, LCD_WIDTH, LCD_HEIGHT, NULL))
- {
- rb->splash(HZ, "Couldn't init greyscale display");
- return PLUGIN_ERROR;
- }
+ grey_init(gbuf, gbuf_size, GREY_ON_COP, LCD_WIDTH, LCD_HEIGHT, NULL);
/* switch on greyscale overlay */
grey_show(true);
#endif
- atexit(cleanup);
sp1 = 4;
sp2 = 2;
sp3 = 4;
@@ -267,6 +261,7 @@ int main(void)
{
case PLA_EXIT:
case PLA_CANCEL:
+ cleanup(NULL);
return PLUGIN_OK;
break;
@@ -304,7 +299,9 @@ int main(void)
#endif
default:
- exit_on_usb(action);
+ if (rb->default_event_handler_ex(action, cleanup, NULL)
+ == SYS_USB_CONNECTED)
+ return PLUGIN_USB_CONNECTED;
break;
}
}
@@ -314,6 +311,8 @@ int main(void)
enum plugin_status plugin_start(const void* parameter)
{
+ int ret;
+
(void)parameter;
#if LCD_DEPTH > 1
rb->lcd_set_backdrop(NULL);
@@ -324,7 +323,14 @@ enum plugin_status plugin_start(const void* parameter)
#if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256)
rb->lcd_set_mode(LCD_MODE_PAL256);
#endif
- return main();
+
+ ret = main();
+
+#if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256)
+ rb->lcd_set_mode(LCD_MODE_RGB565);
+#endif
+
+ return ret;
}
#endif /* HAVE_LCD_BITMAP */