From 7e14b935dfdcd808cfb0703d19a43efd11eeef16 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Tue, 30 Aug 2011 21:07:46 +0000 Subject: Dircache: Allow dircache to be enabled without reboot. Also add two dircache function, one of which does what dircache_disable() did previously as this now also frees the dircache buffer. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30393 a1c6a512-1295-4272-9138-f99709370657 --- apps/menus/settings_menu.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'apps/menus/settings_menu.c') diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index b3003bf..82c91aa 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -189,16 +189,14 @@ static int dircache_callback(int action,const struct menu_item_ex *this_item) switch (action) { case ACTION_EXIT_MENUITEM: /* on exit */ - switch (global_settings.dircache) + if (global_settings.dircache && !dircache_is_enabled()) { - case true: - if (!dircache_is_enabled()) - splash(HZ*2, ID2P(LANG_PLEASE_REBOOT)); - break; - case false: - if (dircache_is_enabled()) - dircache_disable(); - break; + if (dircache_build(0) < 0) + splash(HZ*2, ID2P(LANG_PLEASE_REBOOT)); + } + else if (!global_settings.dircache && dircache_is_enabled()) + { + dircache_disable(); } break; } -- cgit v1.1