summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2021-08-25 20:10:37 +0100
committerAidan MacDonald <amachronic@protonmail.com>2021-08-26 19:34:18 +0000
commit30e96a373210f47da7a25276d49d5f7672f893d5 (patch)
tree6d95a1033d9901dab901f1a536315089a5db700e /apps
parentb2386405b995ecb0b57addf743a128ee3c5b0a35 (diff)
downloadrockbox-30e96a373210f47da7a25276d49d5f7672f893d5.tar.gz
rockbox-30e96a373210f47da7a25276d49d5f7672f893d5.zip
quickscreen: fix EQ enable not working in quickscreen
The EQ enabled setting needs to call into the DSP core when it's changed but this was only hooked into the EQ menu. The quickscreen uses option_select_next_val() so those DSP hooks were not getting called because the setting did not have any callback defined. It seems this bug was introduced by 362f7a3220 removing the blanket call to settings_apply(). Other settings might be affected too. Change-Id: Idcce5809c525fa619e6bdf1be50c98a5df103fec
Diffstat (limited to 'apps')
-rw-r--r--apps/menus/eq_menu.c8
-rw-r--r--apps/menus/eq_menu.h3
-rw-r--r--apps/settings_list.c2
3 files changed, 12 insertions, 1 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index 656fe7b282..79389ae561 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -51,6 +51,8 @@
51#include "option_select.h" 51#include "option_select.h"
52#include "string-extra.h" 52#include "string-extra.h"
53 53
54static void eq_apply(void);
55
54/* 56/*
55 * Utility functions 57 * Utility functions
56 */ 58 */
@@ -69,6 +71,12 @@ const char* eq_precut_format(char* buffer, size_t buffer_size, int value, const
69 return buffer; 71 return buffer;
70} 72}
71 73
74void eq_enabled_option_callback(bool enabled)
75{
76 (void)enabled;
77 eq_apply();
78}
79
72/* 80/*
73 * Settings functions 81 * Settings functions
74 */ 82 */
diff --git a/apps/menus/eq_menu.h b/apps/menus/eq_menu.h
index 04e8be2ead..f99f83d94f 100644
--- a/apps/menus/eq_menu.h
+++ b/apps/menus/eq_menu.h
@@ -48,4 +48,7 @@ const char* eq_q_format(char* buffer, size_t buffer_size, int value,
48const char* eq_precut_format(char* buffer, size_t buffer_size, int value, 48const char* eq_precut_format(char* buffer, size_t buffer_size, int value,
49 const char* unit); 49 const char* unit);
50 50
51/* callbacks for settings_list.c */
52void eq_enabled_option_callback(bool enabled);
53
51#endif 54#endif
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 5464416b21..ab99b58a1c 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1570,7 +1570,7 @@ const struct settings_list settings[] = {
1570 1570
1571 /* equalizer */ 1571 /* equalizer */
1572 OFFON_SETTING(F_EQSETTING, eq_enabled, LANG_EQUALIZER_ENABLED, false, 1572 OFFON_SETTING(F_EQSETTING, eq_enabled, LANG_EQUALIZER_ENABLED, false,
1573 "eq enabled", NULL), 1573 "eq enabled", eq_enabled_option_callback),
1574 1574
1575 INT_SETTING_NOWRAP(F_EQSETTING, eq_precut, LANG_EQUALIZER_PRECUT, 0, 1575 INT_SETTING_NOWRAP(F_EQSETTING, eq_precut, LANG_EQUALIZER_PRECUT, 0,
1576 "eq precut", UNIT_DB, 0, 240, 1, eq_precut_format, 1576 "eq precut", UNIT_DB, 0, 240, 1, eq_precut_format,