diff options
| author | Miika Pekkarinen <miipekk@ihme.org> | 2006-08-05 20:19:10 +0000 |
|---|---|---|
| committer | Miika Pekkarinen <miipekk@ihme.org> | 2006-08-05 20:19:10 +0000 |
| commit | 954b73265404075ec4d379ddea14e626113a8677 (patch) | |
| tree | 5c6ff0056ebd118aadb896856e7679a41c595cba /apps/main.c | |
| parent | 85ba65d2a3fa3d10799efadbe3a33f026bf354df (diff) | |
| download | rockbox-954b73265404075ec4d379ddea14e626113a8677.zip rockbox-954b73265404075ec4d379ddea14e626113a8677.tar.gz rockbox-954b73265404075ec4d379ddea14e626113a8677.tar.bz2 rockbox-954b73265404075ec4d379ddea14e626113a8677.tar.xz | |
Initial support and use for EEPROM memory on H120 & H140 players when
Rockbox firmware has been flashed over original firmware (not yet
possible to do). Dircache & tagcache serialization for fast bootup
without the need to scan disk when Rockbox is in flash.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10464 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/main.c')
| -rw-r--r-- | apps/main.c | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/apps/main.c b/apps/main.c index b725d02..907e112 100644 --- a/apps/main.c +++ b/apps/main.c @@ -65,6 +65,7 @@ #include "lang.h" #include "string.h" #include "splash.h" +#include "eeprom_settings.h" #if (CONFIG_CODEC == SWCODEC) #include "playback.h" @@ -108,35 +109,30 @@ void app_main(void) browse_root(); } -#ifdef HAVE_DIRCACHE -void init_dircache(void) +int init_dircache(void) { - int result; - bool clear = false; +#ifdef HAVE_DIRCACHE + int result = 0; dircache_init(); if (global_settings.dircache) { - if (global_settings.dircache_size == 0) +# ifdef HAVE_EEPROM + if (firmware_settings.initialized && firmware_settings.disk_clean) { - gui_syncsplash(0, true, str(LANG_DIRCACHE_BUILDING)); - clear = true; + if (dircache_load(DIRCACHE_FILE) == 0) + return 0; } +# endif result = dircache_build(global_settings.dircache_size); - if (result < 0) - gui_syncsplash(0, true, "Failed! Result: %d", result); - - if (clear) - { - backlight_on(); - show_logo(); - } } -} + + return result; #else -# define init_dircache(...) + return 0; #endif +} void init_tagcache(void) { @@ -376,6 +372,10 @@ void init(void) } } +#ifdef HAVE_EEPROM + eeprom_settings_init(); +#endif + settings_calc_config_sector(); #if defined(SETTINGS_RESET) || (CONFIG_KEYPAD == IPOD_4G_PAD) @@ -395,11 +395,21 @@ void init(void) settings_load(SETTINGS_ALL); + init_dircache(); + gui_sync_wps_init(); settings_apply(); - init_dircache(); + //init_dircache(); init_tagcache(); +#ifdef HAVE_EEPROM + if (firmware_settings.initialized) + { + /* In case we crash. */ + firmware_settings.disk_clean = false; + eeprom_settings_store(); + } +#endif status_init(); playlist_init(); tree_init(); |