diff options
| author | Thomas Martitz <kugel@rockbox.org> | 2011-08-30 21:07:46 +0000 |
|---|---|---|
| committer | Thomas Martitz <kugel@rockbox.org> | 2011-08-30 21:07:46 +0000 |
| commit | 7e14b935dfdcd808cfb0703d19a43efd11eeef16 (patch) | |
| tree | 57834f71db1bbaaabf7872d8609f8254371377cf /apps/menus | |
| parent | c1ae789108942f3270fb90bd5a088adfee126333 (diff) | |
| download | rockbox-7e14b935dfdcd808cfb0703d19a43efd11eeef16.zip rockbox-7e14b935dfdcd808cfb0703d19a43efd11eeef16.tar.gz rockbox-7e14b935dfdcd808cfb0703d19a43efd11eeef16.tar.bz2 rockbox-7e14b935dfdcd808cfb0703d19a43efd11eeef16.tar.xz | |
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
Diffstat (limited to 'apps/menus')
| -rw-r--r-- | apps/menus/settings_menu.c | 16 |
1 files changed, 7 insertions, 9 deletions
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; } |