summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2004-10-12 22:45:01 +0000
committerJens Arnold <amiconn@rockbox.org>2004-10-12 22:45:01 +0000
commit0dc52d5c362a6f416ca57f0afdbac49dc8824af2 (patch)
treeb34409540f7f5f30a5da6cc14d21d43dfa4f497a /apps/misc.c
parenta7aa17ac1b83d7855c896f6937887cc8fcaa959a (diff)
downloadrockbox-0dc52d5c362a6f416ca57f0afdbac49dc8824af2.tar.gz
rockbox-0dc52d5c362a6f416ca57f0afdbac49dc8824af2.zip
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
Diffstat (limited to 'apps/misc.c')
-rw-r--r--apps/misc.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/apps/misc.c b/apps/misc.c
index 5be6264fdc..f632ecc7eb 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -230,20 +230,30 @@ bool clean_shutdown(void)
230 return false; 230 return false;
231} 231}
232 232
233int default_event_handler(int event) 233int default_event_handler_ex(int event, void (*callback)(void *), void *parameter)
234{ 234{
235 switch(event) 235 switch(event)
236 { 236 {
237 case SYS_USB_CONNECTED: 237 case SYS_USB_CONNECTED:
238 if (callback != NULL)
239 callback(parameter);
238#ifdef HAVE_MMC 240#ifdef HAVE_MMC
239 if (!mmc_detect() || (mmc_remove_request() == SYS_MMC_EXTRACTED)) 241 if (!mmc_detect() || (mmc_remove_request() == SYS_MMC_EXTRACTED))
240#endif 242#endif
241 usb_screen(); 243 usb_screen();
242 return SYS_USB_CONNECTED; 244 return SYS_USB_CONNECTED;
243 case SYS_POWEROFF: 245 case SYS_POWEROFF:
246 if (callback != NULL)
247 callback(parameter);
244 if (!clean_shutdown()) 248 if (!clean_shutdown())
245 return SYS_POWEROFF; 249 return SYS_POWEROFF;
246 break; 250 break;
247 } 251 }
248 return 0; 252 return 0;
249} 253}
254
255int default_event_handler(int event)
256{
257 return default_event_handler_ex(event, NULL, NULL);
258}
259