summaryrefslogtreecommitdiff
path: root/apps/settings_list.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings_list.c')
-rw-r--r--apps/settings_list.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 99a4601..7bdf4f4 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -409,6 +409,45 @@ static int32_t jumpscroll_getlang(int value, int unit)
}
#endif /* HAVE_LCD_CHARCELLS */
+#ifdef HAVE_QUICKSCREEN
+int find_setting_by_name(char*name)
+{
+ int i = 0;
+ const struct settings_list *setting;
+ while (i<nb_settings)
+ {
+ setting = &settings[i];
+ if (setting->cfg_name && !strcmp(setting->cfg_name, name))
+ {
+ return i;
+ }
+ i++;
+ }
+ return -1;
+}
+void qs_load_from_cfg(void* var, char*value)
+{
+ *(int*)var = find_setting_by_name(value);
+}
+char* qs_write_to_cfg(void* setting, char*buf, int buf_len)
+{
+ const struct settings_list *var = &settings[*(int*)setting];
+ strncpy(buf, var->cfg_name, buf_len);
+ return buf;
+}
+bool qs_is_changed(void* setting, void* defaultval)
+{
+ int i = *(int*)setting;
+ if (i < 0 || i >= nb_settings)
+ return false;
+ const struct settings_list *var = &settings[i];
+ return var != find_setting(defaultval, NULL);
+}
+void qs_set_default(void* setting, void* defaultval)
+{
+ find_setting(defaultval, (int*)setting);
+}
+#endif
const struct settings_list settings[] = {
/* sound settings */
SOUND_SETTING(F_NO_WRAP,volume, LANG_VOLUME, "volume", SOUND_VOLUME),
@@ -1372,6 +1411,20 @@ const struct settings_list settings[] = {
"touchpad sensitivity", "normal,high", touchpad_set_sensitivity, 2,
ID2P(LANG_NORMAL), ID2P(LANG_HIGH)),
#endif
+#ifdef HAVE_QUICKSCREEN
+ CUSTOM_SETTING(0, qs_item_left, LANG_LEFT,
+ &global_settings.playlist_shuffle, "qs left",
+ qs_load_from_cfg, qs_write_to_cfg,
+ qs_is_changed, qs_set_default),
+ CUSTOM_SETTING(0, qs_item_right, LANG_RIGHT,
+ &global_settings.repeat_mode, "qs right",
+ qs_load_from_cfg, qs_write_to_cfg,
+ qs_is_changed, qs_set_default),
+ CUSTOM_SETTING(0, qs_item_bottom, LANG_BOTTOM,
+ &global_settings.dirfilter, "qs bottom",
+ qs_load_from_cfg, qs_write_to_cfg,
+ qs_is_changed, qs_set_default),
+#endif
};
const int nb_settings = sizeof(settings)/sizeof(*settings);