diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2022-11-30 14:28:31 +0000 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2022-12-17 13:36:38 +0000 |
commit | 767ddef550ec193c087064291b78d0e1db5e8fb0 (patch) | |
tree | f22cb97f56d5045baecc8caa40fe0e53a22ca8b7 /apps/gui | |
parent | c85a4f1fa4062e69f8ad8d9f4a8d70fe8c32bb82 (diff) | |
download | rockbox-767ddef550ec193c087064291b78d0e1db5e8fb0.tar.gz rockbox-767ddef550ec193c087064291b78d0e1db5e8fb0.zip |
quickscreen: Settings ID to pointer conversion
Saves a good deal of code...
Change-Id: Ibaf4138ddffd5d8f7cca560cc52645dbce44149c
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/quickscreen.c | 47 | ||||
-rw-r--r-- | apps/gui/quickscreen.h | 3 |
2 files changed, 14 insertions, 36 deletions
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c index 4eebe09fd3..356f74b283 100644 --- a/apps/gui/quickscreen.c +++ b/apps/gui/quickscreen.c @@ -417,15 +417,6 @@ static int gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter return ret; } -static const struct settings_list *get_setting(int gs_value, - const struct settings_list *defaultval) -{ - if (gs_value != -1 && gs_value < nb_settings && - is_setting_quickscreenable(&settings[gs_value])) - return &settings[gs_value]; - return defaultval; -} - int quick_screen_quick(int button_enter) { struct gui_quickscreen qs; @@ -436,16 +427,13 @@ int quick_screen_quick(int button_enter) #endif bool usb = false; - qs.items[QUICKSCREEN_TOP] = - get_setting(global_settings.qs_items[QUICKSCREEN_TOP], NULL); - qs.items[QUICKSCREEN_LEFT] = - get_setting(global_settings.qs_items[QUICKSCREEN_LEFT], - find_setting(&global_settings.playlist_shuffle, NULL)); - qs.items[QUICKSCREEN_RIGHT] = - get_setting(global_settings.qs_items[QUICKSCREEN_RIGHT], - find_setting(&global_settings.repeat_mode, NULL)); - qs.items[QUICKSCREEN_BOTTOM] = - get_setting(global_settings.qs_items[QUICKSCREEN_BOTTOM], NULL); + for (int i = 0; i < 4; ++i) + { + qs.items[i] = global_settings.qs_items[i]; + + if (!is_setting_quickscreenable(qs.items[i])) + qs.items[i] = NULL; + } qs.callback = NULL; int ret = gui_syncquickscreen_run(&qs, button_enter, &usb); @@ -481,10 +469,14 @@ int quick_screen_quick(int button_enter) /* stuff to make the quickscreen configurable */ bool is_setting_quickscreenable(const struct settings_list *setting) { + if (!setting) + return true; + /* to keep things simple, only settings which have a lang_id set are ok */ - if (setting->lang_id < 0 || (setting->flags&F_BANFROMQS)) + if (setting->lang_id < 0 || (setting->flags & F_BANFROMQS)) return false; - switch (setting->flags&F_T_MASK) + + switch (setting->flags & F_T_MASK) { case F_T_BOOL: return true; @@ -495,16 +487,3 @@ bool is_setting_quickscreenable(const struct settings_list *setting) return false; } } - -void set_as_qs_item(const struct settings_list *setting, - enum quickscreen_item item) -{ - int i; - for (i = 0; i < nb_settings; i++) - { - if (&settings[i] == setting) - break; - } - - global_settings.qs_items[item] = i; -} diff --git a/apps/gui/quickscreen.h b/apps/gui/quickscreen.h index 6082b5a883..bd8008bd34 100644 --- a/apps/gui/quickscreen.h +++ b/apps/gui/quickscreen.h @@ -53,7 +53,6 @@ struct gui_quickscreen extern int quick_screen_quick(int button_enter); int quickscreen_set_option(void *data); bool is_setting_quickscreenable(const struct settings_list *setting); -void set_as_qs_item(const struct settings_list *setting, - enum quickscreen_item item); + #endif /*_GUI_QUICK_SCREEN_H_*/ #endif /* HAVE_QUICKSCREEN */ |