diff options
Diffstat (limited to 'apps/plugins/plasma.c')
| -rw-r--r-- | apps/plugins/plasma.c | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c index 637d948..35bc03b 100644 --- a/apps/plugins/plasma.c +++ b/apps/plugins/plasma.c @@ -27,6 +27,7 @@ #include "plugin.h" #include "lib/helper.h" #include "lib/pluginlib_actions.h" +#include "lib/pluginlib_exit.h" #ifdef HAVE_LCD_BITMAP @@ -35,7 +36,6 @@ #endif #include "lib/fixedpoint.h" -PLUGIN_HEADER /******************************* Globals ***********************************/ @@ -131,10 +131,8 @@ static void shades_generate(void) } #endif -void cleanup(void *parameter) +void cleanup(void) { - (void)parameter; - #ifdef HAVE_ADJUSTABLE_CPU_FREQ if (boosted) rb->cpu_boost(false); @@ -144,6 +142,9 @@ void cleanup(void *parameter) #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 } /* @@ -180,10 +181,15 @@ int main(void) /* get the remainder of the plugin buffer */ gbuf = (unsigned char *) rb->plugin_get_buffer(&gbuf_size); - grey_init(gbuf, gbuf_size, GREY_ON_COP, LCD_WIDTH, LCD_HEIGHT, NULL); + 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; + } /* switch on greyscale overlay */ grey_show(true); #endif + atexit(cleanup); sp1 = 4; sp2 = 2; sp3 = 4; @@ -261,7 +267,6 @@ int main(void) { case PLA_EXIT: case PLA_CANCEL: - cleanup(NULL); return PLUGIN_OK; break; @@ -299,9 +304,7 @@ int main(void) #endif default: - if (rb->default_event_handler_ex(action, cleanup, NULL) - == SYS_USB_CONNECTED) - return PLUGIN_USB_CONNECTED; + exit_on_usb(action); break; } } @@ -311,8 +314,6 @@ int main(void) enum plugin_status plugin_start(const void* parameter) { - int ret; - (void)parameter; #if LCD_DEPTH > 1 rb->lcd_set_backdrop(NULL); @@ -323,14 +324,7 @@ 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 - - ret = main(); - -#if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256) - rb->lcd_set_mode(LCD_MODE_RGB565); -#endif - - return ret; + return main(); } #endif /* HAVE_LCD_BITMAP */ |