X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fconf.c;h=9d1f8828d8d28d59dab74bbc71cf8bed4fe54801;hb=549fcb39eb7d3d229550af78b03b53cfcad299b8;hp=478d468c4823f3d82692ccffdba60e9c12e15595;hpb=632ac9003e48fdbe66018a26bf9c39149e3e227c;p=ncmpc.git diff --git a/src/conf.c b/src/conf.c index 478d468..9d1f882 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1,21 +1,21 @@ /* ncmpc (Ncurses MPD Client) - * (c) 2004-2009 The Music Player Daemon Project + * (c) 2004-2010 The Music Player Daemon Project * Project homepage: http://musicpd.org - + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ + */ #include "conf.h" #include "config.h" @@ -41,6 +41,7 @@ /* configuration field names */ #define CONF_ENABLE_COLORS "enable-colors" +#define CONF_SCROLL_OFFSET "scroll-offset" #define CONF_AUTO_CENTER "auto-center" #define CONF_WIDE_CURSOR "wide-cursor" #define CONF_KEY_DEFINITION "key" @@ -68,12 +69,16 @@ #define CONF_PORT "port" #define CONF_PASSWORD "password" #define CONF_LYRICS_TIMEOUT "lyrics-timeout" -#define CONF_SHOW_SPLASH "show-splash" #define CONF_SCROLL "scroll" #define CONF_SCROLL_SEP "scroll-sep" #define CONF_VISIBLE_BITRATE "visible-bitrate" #define CONF_WELCOME_SCREEN_LIST "welcome-screen-list" #define CONF_DISPLAY_TIME "display-time" +#define CONF_JUMP_PREFIX_ONLY "jump-prefix-only" +#define CONF_LYRICS_AUTOSAVE "lyrics-autosave" +#define CONF_LYRICS_SHOW_PLUGIN "lyrics-show-plugin" +#define CONF_TEXT_EDITOR "text-editor" +#define CONF_SECOND_COLUMN "second-column" static bool str2bool(char *str) @@ -166,18 +171,20 @@ parse_key_definition(char *str) return assign_keys(cmd, keys); } -static const char * +static bool parse_timedisplay_type(const char *str) { - if (!strcmp(str,"elapsed") || !strcmp(str,"remaining")) - return str; + if (strcmp(str, "elapsed") == 0) + return false; + else if (strcmp(str, "remaining") == 0) + return true; else { /* translators: ncmpc supports displaying the "elapsed" or "remaining" time of a song being played; in this case, the configuration file contained an invalid setting */ print_error(_("Bad time display type"), str); - return DEFAULT_TIMEDISPLAY_TYPE; + return false; } } @@ -296,10 +303,8 @@ check_screen_list(char *value) { char **tmp = g_strsplit_set(value, " \t,", 100); char **screen = NULL; - int i,j; + int i = 0, j = 0; - i=0; - j=0; while( tmp && tmp[i] ) { char *name = g_ascii_strdown(tmp[i], -1); if (*name != '\0') { @@ -367,17 +372,14 @@ get_search_mode(char *value) static bool parse_line(char *line) { - size_t len = strlen(line), i = 0, j; + size_t len = strlen(line), i = 0, j = 0; char name[MAX_LINE_LENGTH]; char value[MAX_LINE_LENGTH]; bool match_found; /* get the name part */ - j = 0; - while (i < len && line[i] != '=' && - !g_ascii_isspace(line[i])) { + while (i < len && line[i] != '=' && !g_ascii_isspace(line[i])) name[j++] = line[i++]; - } name[j] = '\0'; @@ -403,6 +405,8 @@ parse_line(char *line) #else {} #endif + else if (!strcasecmp(CONF_SCROLL_OFFSET, name)) + options.scroll_offset = atoi(value); /* auto center */ else if (!strcasecmp(CONF_AUTO_CENTER, name)) options.auto_center = str2bool(value); @@ -416,6 +420,8 @@ parse_line(char *line) /* wide cursor */ else if (!strcasecmp(CONF_WIDE_CURSOR, name)) options.wide_cursor = str2bool(value); + else if (strcasecmp(name, "hardware-cursor") == 0) + options.hardware_cursor = str2bool(value); /* welcome screen list */ else if (!strcasecmp(CONF_WELCOME_SCREEN_LIST, name)) options.welcome_screen_list = str2bool(value); @@ -423,11 +429,10 @@ parse_line(char *line) else if (!strcasecmp(CONF_VISIBLE_BITRATE, name)) options.visible_bitrate = str2bool(value); /* timer display type */ - else if (!strcasecmp(CONF_TIMEDISPLAY_TYPE, name)) { - g_free(options.timedisplay_type); - options.timedisplay_type=g_strdup(parse_timedisplay_type(value)); + else if (!strcasecmp(CONF_TIMEDISPLAY_TYPE, name)) + options.display_remaining_time = parse_timedisplay_type(value); /* color definition */ - } else if (!strcasecmp(CONF_COLOR_DEFINITION, name)) + else if (!strcasecmp(CONF_COLOR_DEFINITION, name)) #ifdef ENABLE_COLORS parse_color_definition(value); #else @@ -478,8 +483,6 @@ parse_line(char *line) else if (!strcasecmp(CONF_SCREEN_LIST, name)) { g_strfreev(options.screen_list); options.screen_list = check_screen_list(value); - } else if (!strcasecmp(CONF_SHOW_SPLASH, name)) { - /* the splash screen was removed */ } else if (!strcasecmp(CONF_HOST, name)) options.host = get_format(value); else if (!strcasecmp(CONF_PORT, name)) @@ -502,13 +505,45 @@ parse_line(char *line) {} #else options.display_time = str2bool(value); +#endif + else if (!strcasecmp(CONF_JUMP_PREFIX_ONLY, name)) +#ifdef NCMPC_MINI + {} +#else + options.jump_prefix_only = str2bool(value); +#endif + else if (!strcasecmp(CONF_LYRICS_AUTOSAVE, name)) +#ifdef ENABLE_LYRICS_SCREEN + options.lyrics_autosave = str2bool(value); +#else + {} +#endif + else if (!strcasecmp(CONF_LYRICS_SHOW_PLUGIN, name)) +#ifdef ENABLE_LYRICS_SCREEN + options.lyrics_show_plugin = str2bool(value); +#else + {} +#endif + else if (!strcasecmp(name, CONF_TEXT_EDITOR)) +#ifdef ENABLE_LYRICS_SCREEN + { + g_free(options.text_editor); + options.text_editor = get_format(value); + } +#else + {} +#endif + else if (!strcasecmp(CONF_SECOND_COLUMN, name)) +#ifdef NCMPC_MINI + {} +#else + options.second_column = str2bool(value); #endif else match_found = false; if (!match_found) - print_error(_("Unknown configuration parameter"), - name); + print_error(_("Unknown configuration parameter"), name); return match_found; } @@ -550,7 +585,11 @@ check_user_conf_dir(void) return 0; } +#ifndef WIN32 retval = mkdir(directory, 0755); +#else + retval = mkdir(directory); +#endif g_free(directory); return retval; }