diff options
-rw-r--r-- | apps/settings_list.c | 65 |
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, |