1
0
Fork 0
forked from len0rd/rockbox

Accept FS#9504 - make the FILENAME_SETTING() macro more user-proof, also rename it to TEXT_SETTING

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18864 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2008-10-23 00:29:17 +00:00
parent a42602b350
commit 106b68e3a7

View file

@ -100,14 +100,19 @@
{flags|F_T_INT, &global_status.var,-1, INT(default), \ {flags|F_T_INT, &global_status.var,-1, INT(default), \
NULL, NULL, UNUSED} NULL, NULL, UNUSED}
/* setting which stores as a filename in the .cfgvals /* setting which stores as a filename (or another string) in the .cfgvals
The string must be a char array (which all of our string settings are),
not just a char pointer.
prefix: The absolute path to not save in the variable, ex /.rockbox/wps_file prefix: The absolute path to not save in the variable, ex /.rockbox/wps_file
suffx: The file extention (usually...) e.g .wps_file */ suffix: The file extention (usually...) e.g .wps_file
#define FILENAME_SETTING(flags,var,name,default,prefix,suffix,len) \ If the prefix is set (not NULL), the the suffix must be set as well.
*/
#define TEXT_SETTING(flags,var,name,default,prefix,suffix) \
{flags|F_T_UCHARPTR, &global_settings.var,-1, \ {flags|F_T_UCHARPTR, &global_settings.var,-1, \
CHARPTR(default),name,NULL, \ CHARPTR(default),name,NULL, \
{.filename_setting= \ {.filename_setting= \
(struct filename_setting[]){{prefix,suffix,len}}} } (struct filename_setting[]){ \
{prefix,suffix,sizeof(global_settings.var)}}} }
/* Used for settings which use the set_option() setting screen. /* Used for settings which use the set_option() setting screen.
The ... arg is a list of pointers to strings to display in the setting The ... arg is a list of pointers to strings to display in the setting
@ -887,8 +892,8 @@ const struct settings_list settings[] = {
"prerecording time", UNIT_SEC, 0, 30, 1, "prerecording time", UNIT_SEC, 0, 30, 1,
formatter_unit_0_is_off, getlang_unit_0_is_off, NULL), formatter_unit_0_is_off, getlang_unit_0_is_off, NULL),
FILENAME_SETTING(F_RECSETTING, rec_directory, "rec path", TEXT_SETTING(F_RECSETTING, rec_directory, "rec path",
REC_BASE_DIR, NULL, NULL, MAX_FILENAME+1), REC_BASE_DIR, NULL, NULL),
#ifdef HAVE_BACKLIGHT #ifdef HAVE_BACKLIGHT
CHOICE_SETTING(F_RECSETTING, cliplight, LANG_CLIP_LIGHT, 0, CHOICE_SETTING(F_RECSETTING, cliplight, LANG_CLIP_LIGHT, 0,
"cliplight", "off,main,both,remote", NULL, "cliplight", "off,main,both,remote", NULL,
@ -1231,26 +1236,26 @@ const struct settings_list settings[] = {
OFFON_SETTING(0, audioscrobbler, LANG_AUDIOSCROBBLER, false, OFFON_SETTING(0, audioscrobbler, LANG_AUDIOSCROBBLER, false,
"Last.fm Logging", NULL), "Last.fm Logging", NULL),
#if CONFIG_TUNER #if CONFIG_TUNER
FILENAME_SETTING(0, fmr_file, "fmr", "", TEXT_SETTING(0, fmr_file, "fmr", "",
FMPRESET_PATH "/", ".fmr", MAX_FILENAME+1), FMPRESET_PATH "/", ".fmr"),
#endif #endif
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
FILENAME_SETTING(F_THEMESETTING, font_file, "font", TEXT_SETTING(F_THEMESETTING, font_file, "font",
DEFAULT_FONTNAME, FONT_DIR "/", ".fnt", MAX_FILENAME+1), DEFAULT_FONTNAME, FONT_DIR "/", ".fnt"),
#endif #endif
FILENAME_SETTING(F_THEMESETTING,wps_file, "wps", TEXT_SETTING(F_THEMESETTING,wps_file, "wps",
DEFAULT_WPSNAME, WPS_DIR "/", ".wps", MAX_FILENAME+1), DEFAULT_WPSNAME, WPS_DIR "/", ".wps"),
FILENAME_SETTING(0,lang_file,"lang","",LANG_DIR "/",".lng",MAX_FILENAME+1), TEXT_SETTING(0,lang_file,"lang","",LANG_DIR "/",".lng"),
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
FILENAME_SETTING(F_THEMESETTING,rwps_file,"rwps", TEXT_SETTING(F_THEMESETTING,rwps_file,"rwps",
DEFAULT_WPSNAME, WPS_DIR "/", ".rwps", MAX_FILENAME+1), DEFAULT_WPSNAME, WPS_DIR "/", ".rwps"),
#endif #endif
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
FILENAME_SETTING(F_THEMESETTING,backdrop_file,"backdrop", TEXT_SETTING(F_THEMESETTING,backdrop_file,"backdrop",
DEFAULT_BACKDROP, BACKDROP_DIR "/", ".bmp",MAX_FILENAME+1), DEFAULT_BACKDROP, BACKDROP_DIR "/", ".bmp"),
#endif #endif
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
FILENAME_SETTING(0,kbd_file,"kbd","",ROCKBOX_DIR "/",".kbd",MAX_FILENAME+1), TEXT_SETTING(0,kbd_file,"kbd","",ROCKBOX_DIR "/",".kbd"),
#endif #endif
#ifdef HAVE_USB_POWER #ifdef HAVE_USB_POWER
#if CONFIG_CHARGING #if CONFIG_CHARGING
@ -1301,22 +1306,22 @@ const struct settings_list settings[] = {
/* Customizable icons */ /* Customizable icons */
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
FILENAME_SETTING(F_THEMESETTING, icon_file, "iconset", DEFAULT_ICONSET, TEXT_SETTING(F_THEMESETTING, icon_file, "iconset", DEFAULT_ICONSET,
ICON_DIR "/", ".bmp", MAX_FILENAME+1), ICON_DIR "/", ".bmp"),
FILENAME_SETTING(F_THEMESETTING, viewers_icon_file, "viewers iconset", TEXT_SETTING(F_THEMESETTING, viewers_icon_file, "viewers iconset",
DEFAULT_VIEWERS_ICONSET, DEFAULT_VIEWERS_ICONSET,
ICON_DIR "/", ".bmp", MAX_FILENAME+1), ICON_DIR "/", ".bmp"),
#endif #endif
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
FILENAME_SETTING(F_THEMESETTING, remote_icon_file, "remote iconset", "", TEXT_SETTING(F_THEMESETTING, remote_icon_file, "remote iconset", "",
ICON_DIR "/", ".bmp", MAX_FILENAME+1), ICON_DIR "/", ".bmp"),
FILENAME_SETTING(F_THEMESETTING, remote_viewers_icon_file, TEXT_SETTING(F_THEMESETTING, remote_viewers_icon_file,
"remote viewers iconset", "", "remote viewers iconset", "",
ICON_DIR "/", ".bmp", MAX_FILENAME+1), ICON_DIR "/", ".bmp"),
#endif /* HAVE_REMOTE_LCD */ #endif /* HAVE_REMOTE_LCD */
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
FILENAME_SETTING(F_THEMESETTING, colors_file, "filetype colours", "-", TEXT_SETTING(F_THEMESETTING, colors_file, "filetype colours", "-",
THEME_DIR "/", ".colours", MAX_FILENAME+1), THEME_DIR "/", ".colours"),
#endif #endif
#ifdef HAVE_BUTTON_LIGHT #ifdef HAVE_BUTTON_LIGHT
TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, buttonlight_timeout, TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, buttonlight_timeout,
@ -1352,8 +1357,8 @@ const struct settings_list settings[] = {
OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false, OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false,
"keyclick repeats", NULL), "keyclick repeats", NULL),
#endif /* CONFIG_CODEC == SWCODEC */ #endif /* CONFIG_CODEC == SWCODEC */
FILENAME_SETTING(0, playlist_catalog_dir, "playlist catalog directory", TEXT_SETTING(0, playlist_catalog_dir, "playlist catalog directory",
PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL, MAX_FILENAME+1), PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL),
#ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING #ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING
CHOICE_SETTING(0, touchpad_sensitivity, LANG_TOUCHPAD_SENSITIVITY, 0, CHOICE_SETTING(0, touchpad_sensitivity, LANG_TOUCHPAD_SENSITIVITY, 0,
"touchpad sensitivity", "normal,high", touchpad_set_sensitivity, 2, "touchpad sensitivity", "normal,high", touchpad_set_sensitivity, 2,