1
0
Fork 0
forked from len0rd/rockbox

Extended default_event_handler() that calls a callback function prior to actually handling the event.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5263 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2004-10-12 22:45:01 +00:00
parent a7aa17ac1b
commit 0dc52d5c36
4 changed files with 21 additions and 8 deletions

View file

@ -230,20 +230,30 @@ bool clean_shutdown(void)
return false;
}
int default_event_handler(int event)
int default_event_handler_ex(int event, void (*callback)(void *), void *parameter)
{
switch(event)
{
case SYS_USB_CONNECTED:
if (callback != NULL)
callback(parameter);
#ifdef HAVE_MMC
if (!mmc_detect() || (mmc_remove_request() == SYS_MMC_EXTRACTED))
#endif
usb_screen();
return SYS_USB_CONNECTED;
case SYS_POWEROFF:
if (callback != NULL)
callback(parameter);
if (!clean_shutdown())
return SYS_POWEROFF;
break;
}
return 0;
}
int default_event_handler(int event)
{
return default_event_handler_ex(event, NULL, NULL);
}

View file

@ -40,6 +40,7 @@ void screen_dump(void);
bool settings_parseline(char* line, char** name, char** value);
bool clean_shutdown(void);
int default_event_handler_ex(int event, void (*callback)(void *), void *parameter);
int default_event_handler(int event);
#endif

View file

@ -262,6 +262,7 @@ static const struct plugin_api rockbox_api = {
#ifndef SIMULATOR
system_memory_guard,
#endif
default_event_handler_ex,
};
int plugin_load(const char* plugin, void* parameter)

View file

@ -60,7 +60,7 @@
#endif
/* increase this every time the api struct changes */
#define PLUGIN_API_VERSION 27
#define PLUGIN_API_VERSION 28
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
@ -289,15 +289,16 @@ struct plugin_api {
void (*lcd_puts_scroll_style)(int x, int y, const unsigned char* string,
int style);
#endif
void (*mpeg_flush_and_reload_tracks)(void);
int (*strncasecmp)(const char *s1, const char *s2, size_t n);
int (*mpeg_get_file_pos)(void);
unsigned long (*find_next_frame)(int fd, int *offset,
void (*mpeg_flush_and_reload_tracks)(void);
int (*strncasecmp)(const char *s1, const char *s2, size_t n);
int (*mpeg_get_file_pos)(void);
unsigned long (*find_next_frame)(int fd, int *offset,
int max_offset, unsigned long last_header);
unsigned long (*mpeg_get_last_header)(void);
unsigned long (*mpeg_get_last_header)(void);
#ifndef SIMULATOR
int (*system_memory_guard)(int newmode);
int (*system_memory_guard)(int newmode);
#endif
int (*default_event_handler_ex)(int event, void (*callback)(void *), void *parameter);
};
/* defined by the plugin loader (plugin.c) */