diff options
Diffstat (limited to 'apps/settings_list.c')
-rw-r--r-- | apps/settings_list.c | 58 |
1 files changed, 20 insertions, 38 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c index ab02683d94..2ff4258c54 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -593,52 +593,34 @@ static void eq_set_default(void* setting, void* defaultval) | |||
593 | } | 593 | } |
594 | 594 | ||
595 | #ifdef HAVE_QUICKSCREEN | 595 | #ifdef HAVE_QUICKSCREEN |
596 | static int find_setting_by_name(char*name) | 596 | static void qs_load_from_cfg(void *var, char *value) |
597 | { | 597 | { |
598 | int i = 0; | 598 | const struct settings_list **item = var; |
599 | const struct settings_list *setting; | 599 | |
600 | if (!strcmp(name, "-")) | 600 | if (*value == '-') |
601 | return -1; | 601 | *item = NULL; |
602 | while (i<nb_settings) | 602 | else |
603 | { | 603 | *item = find_setting_by_cfgname(value, NULL); |
604 | setting = &settings[i]; | ||
605 | if (setting->cfg_name && !strcmp(setting->cfg_name, name)) | ||
606 | { | ||
607 | return i; | ||
608 | } | ||
609 | i++; | ||
610 | } | ||
611 | return -1; | ||
612 | } | ||
613 | static void qs_load_from_cfg(void* var, char*value) | ||
614 | { | ||
615 | *(int*)var = find_setting_by_name(value); | ||
616 | } | 604 | } |
617 | static char* qs_write_to_cfg(void* setting, char*buf, int buf_len) | 605 | |
606 | static char* qs_write_to_cfg(void *var, char *buf, int buf_len) | ||
618 | { | 607 | { |
619 | int index = *(int*)setting; | 608 | const struct settings_list *setting = *(const struct settings_list **)var; |
620 | if (index < 0 || index >= nb_settings) | 609 | |
621 | { | 610 | strmemccpy(buf, setting ? setting->cfg_name : "-", buf_len); |
622 | strmemccpy(buf, "-", buf_len); | ||
623 | return buf; | ||
624 | } | ||
625 | const struct settings_list *var = &settings[index]; | ||
626 | strmemccpy(buf, var->cfg_name, buf_len); | ||
627 | return buf; | 611 | return buf; |
628 | } | 612 | } |
629 | static bool qs_is_changed(void* setting, void* defaultval) | 613 | |
614 | static bool qs_is_changed(void* var, void* defaultval) | ||
630 | { | 615 | { |
631 | int i = *(int*)setting; | 616 | const struct settings_list *defaultsetting = find_setting(defaultval, NULL); |
632 | if (i < 0 || i >= nb_settings) | 617 | |
633 | return false; | 618 | return var != defaultsetting; |
634 | const struct settings_list *var = &settings[i]; | ||
635 | return var != find_setting(defaultval, NULL); | ||
636 | } | 619 | } |
637 | static void qs_set_default(void* setting, void* defaultval) | 620 | |
621 | static void qs_set_default(void* var, void* defaultval) | ||
638 | { | 622 | { |
639 | if (defaultval == NULL) | 623 | *(const struct settings_list **)var = find_setting(defaultval, NULL); |
640 | *(int*)setting = -1; | ||
641 | find_setting(defaultval, (int*)setting); | ||
642 | } | 624 | } |
643 | #endif | 625 | #endif |
644 | #ifdef HAVE_TOUCHSCREEN | 626 | #ifdef HAVE_TOUCHSCREEN |