From ba75e6038f3f9af54bdeaf9feb1f4bd90c042f19 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Tue, 29 Jan 2008 06:57:54 +0000 Subject: Move the playlist catalog config into the standard config files. 1 less disk spinup when the playlist cataloge is used the first time. The manual doesnt currently mention this setting (or ever did). use "playlist catalog directory:/path/to/Playlists" in the .cfg git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16181 a1c6a512-1295-4272-9138-f99709370657 --- apps/playlist_catalog.c | 31 ++++++------------------------- apps/settings.h | 2 ++ apps/settings_list.c | 2 ++ 3 files changed, 10 insertions(+), 25 deletions(-) (limited to 'apps') diff --git a/apps/playlist_catalog.c b/apps/playlist_catalog.c index f5c5bcb35b..c68371af49 100644 --- a/apps/playlist_catalog.c +++ b/apps/playlist_catalog.c @@ -40,8 +40,6 @@ #include "filetypes.h" #include "debug.h" -#define PLAYLIST_CATALOG_CFG ROCKBOX_DIR "/playlist_catalog.config" -#define PLAYLIST_CATALOG_DEFAULT_DIR "/Playlists" #define MAX_PLAYLISTS 400 #define PLAYLIST_DISPLAY_COUNT 10 @@ -54,8 +52,7 @@ struct add_track_context { /* keep track of most recently used playlist */ static char most_recent_playlist[MAX_PATH]; -/* directory where our playlists our stored (configured in - PLAYLIST_CATALOG_CFG) */ +/* directory where our playlists our stored */ static char playlist_dir[MAX_PATH]; static int playlist_dir_length; static bool playlist_dir_exists = false; @@ -67,31 +64,15 @@ static int initialize_catalog(void) if (!initialized) { - int f; DIR* dir; bool default_dir = true; - f = open(PLAYLIST_CATALOG_CFG, O_RDONLY); - if (f >= 0) + + /* directory config is of the format: "dir: /path/to/dir" */ + if (global_settings.playlist_catalog_dir[0]) { - char buf[MAX_PATH+5]; - - while (read_line(f, buf, sizeof(buf))) - { - char* name; - char* value; - - /* directory config is of the format: "dir: /path/to/dir" */ - if (settings_parseline(buf, &name, &value) && - !strncasecmp(name, "dir:", strlen(name)) && - strlen(value) > 0) - { - strncpy(playlist_dir, value, strlen(value)); - default_dir = false; - } - } - - close(f); + strcpy(playlist_dir, global_settings.playlist_catalog_dir); + default_dir = false; } /* fall back to default directory if no or invalid config */ diff --git a/apps/settings.h b/apps/settings.h index 179a3390d7..bdbe8d922e 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -74,6 +74,7 @@ struct opt_items { #define CODECS_DIR ROCKBOX_DIR "/codecs" #define RECPRESETS_DIR ROCKBOX_DIR "/recpresets" #define FMPRESET_PATH ROCKBOX_DIR "/fmpresets" +#define PLAYLIST_CATALOG_DEFAULT_DIR "/Playlists" #define VIEWERS_CONFIG ROCKBOX_DIR "/viewers.config" #define CONFIGFILE ROCKBOX_DIR "/config.cfg" @@ -723,6 +724,7 @@ struct user_settings int keyclick; /* keyclick volume */ int keyclick_repeats; /* keyclick on repeats */ #endif + unsigned char playlist_catalog_dir[MAX_FILENAME+1]; }; /** global variables **/ diff --git a/apps/settings_list.c b/apps/settings_list.c index b52044c933..ae998f85ed 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -1187,6 +1187,8 @@ const struct settings_list settings[] = { ID2P(LANG_OFF), ID2P(LANG_WEAK), ID2P(LANG_MODERATE), ID2P(LANG_STRONG)), OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false, "keyclick repeats", NULL), #endif /* CONFIG_CODEC == SWCODEC */ + FILENAME_SETTING(0, playlist_catalog_dir, "playlist catalog directory", + PLAYLIST_CATALOG_DEFAULT_DIR, "", "", MAX_FILENAME+1), }; const int nb_settings = sizeof(settings)/sizeof(*settings); -- cgit v1.2.3