diff options
Diffstat (limited to 'apps/plugins/cube.c')
| -rw-r--r-- | apps/plugins/cube.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index 4279a04..57003a0 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -477,6 +477,17 @@ static void cube_draw(void) } } +void cleanup(void *parameter) +{ + (void)parameter; + +#ifdef USE_GSLIB + gray_release(); +#elif defined HAVE_LCD_CHARCELLS + pgfx_release(); +#endif +} + enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { char buffer[30]; @@ -753,27 +764,20 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) break; default: - if (rb->default_event_handler(button) == SYS_USB_CONNECTED) - { -#ifdef HAVE_LCD_CHARCELLS - pgfx_release(); -#elif defined(USE_GSLIB) - gray_release(); -#endif + if (rb->default_event_handler_ex(button, cleanup, NULL) + == SYS_USB_CONNECTED) return PLUGIN_USB_CONNECTED; - } break; } if (button != BUTTON_NONE) lastbutton = button; } - -#ifdef HAVE_LCD_CHARCELLS - pgfx_release(); -#elif defined(USE_GSLIB) + +#ifdef USE_GSLIB gray_release(); +#elif defined(HAVE_LCD_CHARCELLS) + pgfx_release(); #endif - return PLUGIN_OK; } |