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 637d948f3d..35bc03ba1f 100644 --- a/apps/plugins/plasma.c +++ b/apps/plugins/plasma.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include "plugin.h" | 27 | #include "plugin.h" |
28 | #include "lib/helper.h" | 28 | #include "lib/helper.h" |
29 | #include "lib/pluginlib_actions.h" | 29 | #include "lib/pluginlib_actions.h" |
30 | #include "lib/pluginlib_exit.h" | ||
30 | 31 | ||
31 | #ifdef HAVE_LCD_BITMAP | 32 | #ifdef HAVE_LCD_BITMAP |
32 | 33 | ||
@@ -35,7 +36,6 @@ | |||
35 | #endif | 36 | #endif |
36 | #include "lib/fixedpoint.h" | 37 | #include "lib/fixedpoint.h" |
37 | 38 | ||
38 | PLUGIN_HEADER | ||
39 | 39 | ||
40 | /******************************* Globals ***********************************/ | 40 | /******************************* Globals ***********************************/ |
41 | 41 | ||
@@ -131,10 +131,8 @@ static void shades_generate(void) | |||
131 | } | 131 | } |
132 | #endif | 132 | #endif |
133 | 133 | ||
134 | void cleanup(void *parameter) | 134 | void cleanup(void) |
135 | { | 135 | { |
136 | (void)parameter; | ||
137 | |||
138 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 136 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
139 | if (boosted) | 137 | if (boosted) |
140 | rb->cpu_boost(false); | 138 | rb->cpu_boost(false); |
@@ -144,6 +142,9 @@ void cleanup(void *parameter) | |||
144 | #endif | 142 | #endif |
145 | /* Turn on backlight timeout (revert to settings) */ | 143 | /* Turn on backlight timeout (revert to settings) */ |
146 | backlight_use_settings(); /* backlight control in lib/helper.c */ | 144 | backlight_use_settings(); /* backlight control in lib/helper.c */ |
145 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256) | ||
146 | rb->lcd_set_mode(LCD_MODE_RGB565); | ||
147 | #endif | ||
147 | } | 148 | } |
148 | 149 | ||
149 | /* | 150 | /* |
@@ -180,10 +181,15 @@ int main(void) | |||
180 | /* get the remainder of the plugin buffer */ | 181 | /* get the remainder of the plugin buffer */ |
181 | gbuf = (unsigned char *) rb->plugin_get_buffer(&gbuf_size); | 182 | gbuf = (unsigned char *) rb->plugin_get_buffer(&gbuf_size); |
182 | 183 | ||
183 | grey_init(gbuf, gbuf_size, GREY_ON_COP, LCD_WIDTH, LCD_HEIGHT, NULL); | 184 | if (!grey_init(gbuf, gbuf_size, GREY_ON_COP, LCD_WIDTH, LCD_HEIGHT, NULL)) |
185 | { | ||
186 | rb->splash(HZ, "Couldn't init greyscale display"); | ||
187 | return PLUGIN_ERROR; | ||
188 | } | ||
184 | /* switch on greyscale overlay */ | 189 | /* switch on greyscale overlay */ |
185 | grey_show(true); | 190 | grey_show(true); |
186 | #endif | 191 | #endif |
192 | atexit(cleanup); | ||
187 | sp1 = 4; | 193 | sp1 = 4; |
188 | sp2 = 2; | 194 | sp2 = 2; |
189 | sp3 = 4; | 195 | sp3 = 4; |
@@ -261,7 +267,6 @@ int main(void) | |||
261 | { | 267 | { |
262 | case PLA_EXIT: | 268 | case PLA_EXIT: |
263 | case PLA_CANCEL: | 269 | case PLA_CANCEL: |
264 | cleanup(NULL); | ||
265 | return PLUGIN_OK; | 270 | return PLUGIN_OK; |
266 | break; | 271 | break; |
267 | 272 | ||
@@ -299,9 +304,7 @@ int main(void) | |||
299 | #endif | 304 | #endif |
300 | 305 | ||
301 | default: | 306 | default: |
302 | if (rb->default_event_handler_ex(action, cleanup, NULL) | 307 | exit_on_usb(action); |
303 | == SYS_USB_CONNECTED) | ||
304 | return PLUGIN_USB_CONNECTED; | ||
305 | break; | 308 | break; |
306 | } | 309 | } |
307 | } | 310 | } |
@@ -311,8 +314,6 @@ int main(void) | |||
311 | 314 | ||
312 | enum plugin_status plugin_start(const void* parameter) | 315 | enum plugin_status plugin_start(const void* parameter) |
313 | { | 316 | { |
314 | int ret; | ||
315 | |||
316 | (void)parameter; | 317 | (void)parameter; |
317 | #if LCD_DEPTH > 1 | 318 | #if LCD_DEPTH > 1 |
318 | rb->lcd_set_backdrop(NULL); | 319 | rb->lcd_set_backdrop(NULL); |
@@ -323,14 +324,7 @@ enum plugin_status plugin_start(const void* parameter) | |||
323 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256) | 324 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256) |
324 | rb->lcd_set_mode(LCD_MODE_PAL256); | 325 | rb->lcd_set_mode(LCD_MODE_PAL256); |
325 | #endif | 326 | #endif |
326 | 327 | return main(); | |
327 | ret = main(); | ||
328 | |||
329 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256) | ||
330 | rb->lcd_set_mode(LCD_MODE_RGB565); | ||
331 | #endif | ||
332 | |||
333 | return ret; | ||
334 | } | 328 | } |
335 | 329 | ||
336 | #endif /* HAVE_LCD_BITMAP */ | 330 | #endif /* HAVE_LCD_BITMAP */ |