? ata.patch ? changes ? h300 ? h300-boot ? h300-sim ? ondio ? play ? rec ? v2 ? tools/codepages ? tools/mkboot ? tools/rdf2binary ? tools/uclpack Index: apps/misc.c =================================================================== RCS file: /cvsroot/rockbox/apps/misc.c,v retrieving revision 1.75 diff -u -r1.75 misc.c --- apps/misc.c 15 Nov 2006 20:26:33 -0000 1.75 +++ apps/misc.c 25 Nov 2006 12:21:59 -0000 @@ -555,7 +555,7 @@ static void system_flush(void) { - call_ata_idle_notifys(false); /*doesnt work on usb and shutdown from ata thread */ + call_ata_idle_notifys(false,true); /*doesnt work on usb and shutdown from ata thread */ tree_flush(); } @@ -569,7 +569,7 @@ #ifdef SIMULATOR (void)callback; (void)parameter; - call_ata_idle_notifys(false); + call_ata_idle_notifys(false,true); exit(0); #else int i; Index: apps/gui/gwps.c =================================================================== RCS file: /cvsroot/rockbox/apps/gui/gwps.c,v retrieving revision 1.54 diff -u -r1.54 gwps.c --- apps/gui/gwps.c 13 Nov 2006 00:45:21 -0000 1.54 +++ apps/gui/gwps.c 25 Nov 2006 12:22:01 -0000 @@ -141,7 +141,7 @@ if (wps_state.paused) { settings_save(); #if !defined(HAVE_RTC_RAM) && !defined(HAVE_SW_POWEROFF) - call_ata_idle_notifys(false); + call_ata_idle_notifys(false,true); #endif } } @@ -255,7 +255,7 @@ audio_pause(); settings_save(); #if !defined(HAVE_RTC_RAM) && !defined(HAVE_SW_POWEROFF) - call_ata_idle_notifys(false); /* make sure resume info is saved */ + call_ata_idle_notifys(false,true); /* make sure resume info is saved */ #endif } break; Index: firmware/ata_idle_notify.c =================================================================== RCS file: /cvsroot/rockbox/firmware/ata_idle_notify.c,v retrieving revision 1.2 diff -u -r1.2 ata_idle_notify.c --- firmware/ata_idle_notify.c 8 Nov 2006 01:55:25 -0000 1.2 +++ firmware/ata_idle_notify.c 25 Nov 2006 12:22:02 -0000 @@ -28,10 +28,13 @@ static int ata_callback_count = 0; #endif + bool register_ata_idle_func(ata_idle_notify function) { #if USING_ATA_CALLBACK int i; + if (ata_callback_count >= MAX_ATA_CALLBACKS) + return false; for (i=0; i