summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2008-10-23 00:29:17 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2008-10-23 00:29:17 +0000
commit106b68e3a7de2c8e5502b1ebe291bc2da840c4a0 (patch)
tree92aea5980dea478a880f4057daeebf2295e20668
parenta42602b350e3e2d83267371f9fe425ea1583fa6a (diff)
downloadrockbox-106b68e3a7de2c8e5502b1ebe291bc2da840c4a0.tar.gz
rockbox-106b68e3a7de2c8e5502b1ebe291bc2da840c4a0.zip
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
-rw-r--r--apps/settings_list.c65
1 files changed, 35 insertions, 30 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 4c265077ad..51d9895eb4 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -100,14 +100,19 @@
100 {flags|F_T_INT, &global_status.var,-1, INT(default), \ 100 {flags|F_T_INT, &global_status.var,-1, INT(default), \
101 NULL, NULL, UNUSED} 101 NULL, NULL, UNUSED}
102 102
103/* setting which stores as a filename in the .cfgvals 103/* setting which stores as a filename (or another string) in the .cfgvals
104 The string must be a char array (which all of our string settings are),
105 not just a char pointer.
104 prefix: The absolute path to not save in the variable, ex /.rockbox/wps_file 106 prefix: The absolute path to not save in the variable, ex /.rockbox/wps_file
105 suffx: The file extention (usually...) e.g .wps_file */ 107 suffix: The file extention (usually...) e.g .wps_file
106#define FILENAME_SETTING(flags,var,name,default,prefix,suffix,len) \ 108 If the prefix is set (not NULL), the the suffix must be set as well.
109 */
110#define TEXT_SETTING(flags,var,name,default,prefix,suffix) \
107 {flags|F_T_UCHARPTR, &global_settings.var,-1, \ 111 {flags|F_T_UCHARPTR, &global_settings.var,-1, \
108 CHARPTR(default),name,NULL, \ 112 CHARPTR(default),name,NULL, \
109 {.filename_setting= \ 113 {.filename_setting= \
110 (struct filename_setting[]){{prefix,suffix,len}}} } 114 (struct filename_setting[]){ \
115 {prefix,suffix,sizeof(global_settings.var)}}} }
111 116
112/* Used for settings which use the set_option() setting screen. 117/* Used for settings which use the set_option() setting screen.
113 The ... arg is a list of pointers to strings to display in the setting 118 The ... arg is a list of pointers to strings to display in the setting
@@ -887,8 +892,8 @@ const struct settings_list settings[] = {
887 "prerecording time", UNIT_SEC, 0, 30, 1, 892 "prerecording time", UNIT_SEC, 0, 30, 1,
888 formatter_unit_0_is_off, getlang_unit_0_is_off, NULL), 893 formatter_unit_0_is_off, getlang_unit_0_is_off, NULL),
889 894
890 FILENAME_SETTING(F_RECSETTING, rec_directory, "rec path", 895 TEXT_SETTING(F_RECSETTING, rec_directory, "rec path",
891 REC_BASE_DIR, NULL, NULL, MAX_FILENAME+1), 896 REC_BASE_DIR, NULL, NULL),
892#ifdef HAVE_BACKLIGHT 897#ifdef HAVE_BACKLIGHT
893 CHOICE_SETTING(F_RECSETTING, cliplight, LANG_CLIP_LIGHT, 0, 898 CHOICE_SETTING(F_RECSETTING, cliplight, LANG_CLIP_LIGHT, 0,
894 "cliplight", "off,main,both,remote", NULL, 899 "cliplight", "off,main,both,remote", NULL,
@@ -1231,26 +1236,26 @@ const struct settings_list settings[] = {
1231 OFFON_SETTING(0, audioscrobbler, LANG_AUDIOSCROBBLER, false, 1236 OFFON_SETTING(0, audioscrobbler, LANG_AUDIOSCROBBLER, false,
1232 "Last.fm Logging", NULL), 1237 "Last.fm Logging", NULL),
1233#if CONFIG_TUNER 1238#if CONFIG_TUNER
1234 FILENAME_SETTING(0, fmr_file, "fmr", "", 1239 TEXT_SETTING(0, fmr_file, "fmr", "",
1235 FMPRESET_PATH "/", ".fmr", MAX_FILENAME+1), 1240 FMPRESET_PATH "/", ".fmr"),
1236#endif 1241#endif
1237#ifdef HAVE_LCD_BITMAP 1242#ifdef HAVE_LCD_BITMAP
1238 FILENAME_SETTING(F_THEMESETTING, font_file, "font", 1243 TEXT_SETTING(F_THEMESETTING, font_file, "font",
1239 DEFAULT_FONTNAME, FONT_DIR "/", ".fnt", MAX_FILENAME+1), 1244 DEFAULT_FONTNAME, FONT_DIR "/", ".fnt"),
1240#endif 1245#endif
1241 FILENAME_SETTING(F_THEMESETTING,wps_file, "wps", 1246 TEXT_SETTING(F_THEMESETTING,wps_file, "wps",
1242 DEFAULT_WPSNAME, WPS_DIR "/", ".wps", MAX_FILENAME+1), 1247 DEFAULT_WPSNAME, WPS_DIR "/", ".wps"),
1243 FILENAME_SETTING(0,lang_file,"lang","",LANG_DIR "/",".lng",MAX_FILENAME+1), 1248 TEXT_SETTING(0,lang_file,"lang","",LANG_DIR "/",".lng"),
1244#ifdef HAVE_REMOTE_LCD 1249#ifdef HAVE_REMOTE_LCD
1245 FILENAME_SETTING(F_THEMESETTING,rwps_file,"rwps", 1250 TEXT_SETTING(F_THEMESETTING,rwps_file,"rwps",
1246 DEFAULT_WPSNAME, WPS_DIR "/", ".rwps", MAX_FILENAME+1), 1251 DEFAULT_WPSNAME, WPS_DIR "/", ".rwps"),
1247#endif 1252#endif
1248#if LCD_DEPTH > 1 1253#if LCD_DEPTH > 1
1249 FILENAME_SETTING(F_THEMESETTING,backdrop_file,"backdrop", 1254 TEXT_SETTING(F_THEMESETTING,backdrop_file,"backdrop",
1250 DEFAULT_BACKDROP, BACKDROP_DIR "/", ".bmp",MAX_FILENAME+1), 1255 DEFAULT_BACKDROP, BACKDROP_DIR "/", ".bmp"),
1251#endif 1256#endif
1252#ifdef HAVE_LCD_BITMAP 1257#ifdef HAVE_LCD_BITMAP
1253 FILENAME_SETTING(0,kbd_file,"kbd","",ROCKBOX_DIR "/",".kbd",MAX_FILENAME+1), 1258 TEXT_SETTING(0,kbd_file,"kbd","",ROCKBOX_DIR "/",".kbd"),
1254#endif 1259#endif
1255#ifdef HAVE_USB_POWER 1260#ifdef HAVE_USB_POWER
1256#if CONFIG_CHARGING 1261#if CONFIG_CHARGING
@@ -1301,22 +1306,22 @@ const struct settings_list settings[] = {
1301 1306
1302 /* Customizable icons */ 1307 /* Customizable icons */
1303#ifdef HAVE_LCD_BITMAP 1308#ifdef HAVE_LCD_BITMAP
1304 FILENAME_SETTING(F_THEMESETTING, icon_file, "iconset", DEFAULT_ICONSET, 1309 TEXT_SETTING(F_THEMESETTING, icon_file, "iconset", DEFAULT_ICONSET,
1305 ICON_DIR "/", ".bmp", MAX_FILENAME+1), 1310 ICON_DIR "/", ".bmp"),
1306 FILENAME_SETTING(F_THEMESETTING, viewers_icon_file, "viewers iconset", 1311 TEXT_SETTING(F_THEMESETTING, viewers_icon_file, "viewers iconset",
1307 DEFAULT_VIEWERS_ICONSET, 1312 DEFAULT_VIEWERS_ICONSET,
1308 ICON_DIR "/", ".bmp", MAX_FILENAME+1), 1313 ICON_DIR "/", ".bmp"),
1309#endif 1314#endif
1310#ifdef HAVE_REMOTE_LCD 1315#ifdef HAVE_REMOTE_LCD
1311 FILENAME_SETTING(F_THEMESETTING, remote_icon_file, "remote iconset", "", 1316 TEXT_SETTING(F_THEMESETTING, remote_icon_file, "remote iconset", "",
1312 ICON_DIR "/", ".bmp", MAX_FILENAME+1), 1317 ICON_DIR "/", ".bmp"),
1313 FILENAME_SETTING(F_THEMESETTING, remote_viewers_icon_file, 1318 TEXT_SETTING(F_THEMESETTING, remote_viewers_icon_file,
1314 "remote viewers iconset", "", 1319 "remote viewers iconset", "",
1315 ICON_DIR "/", ".bmp", MAX_FILENAME+1), 1320 ICON_DIR "/", ".bmp"),
1316#endif /* HAVE_REMOTE_LCD */ 1321#endif /* HAVE_REMOTE_LCD */
1317#ifdef HAVE_LCD_COLOR 1322#ifdef HAVE_LCD_COLOR
1318 FILENAME_SETTING(F_THEMESETTING, colors_file, "filetype colours", "-", 1323 TEXT_SETTING(F_THEMESETTING, colors_file, "filetype colours", "-",
1319 THEME_DIR "/", ".colours", MAX_FILENAME+1), 1324 THEME_DIR "/", ".colours"),
1320#endif 1325#endif
1321#ifdef HAVE_BUTTON_LIGHT 1326#ifdef HAVE_BUTTON_LIGHT
1322 TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, buttonlight_timeout, 1327 TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, buttonlight_timeout,
@@ -1352,8 +1357,8 @@ const struct settings_list settings[] = {
1352 OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false, 1357 OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false,
1353 "keyclick repeats", NULL), 1358 "keyclick repeats", NULL),
1354#endif /* CONFIG_CODEC == SWCODEC */ 1359#endif /* CONFIG_CODEC == SWCODEC */
1355 FILENAME_SETTING(0, playlist_catalog_dir, "playlist catalog directory", 1360 TEXT_SETTING(0, playlist_catalog_dir, "playlist catalog directory",
1356 PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL, MAX_FILENAME+1), 1361 PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL),
1357#ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING 1362#ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING
1358 CHOICE_SETTING(0, touchpad_sensitivity, LANG_TOUCHPAD_SENSITIVITY, 0, 1363 CHOICE_SETTING(0, touchpad_sensitivity, LANG_TOUCHPAD_SENSITIVITY, 0,
1359 "touchpad sensitivity", "normal,high", touchpad_set_sensitivity, 2, 1364 "touchpad sensitivity", "normal,high", touchpad_set_sensitivity, 2,