This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#11943 - EQ settings changed via Touchscreen setting_inc & setting_dec are not reflected in the sound output
Attached to Project:
Rockbox
Opened by Adam Sugerman (sugerfunk) - Tuesday, 15 February 2011, 09:37 GMT+2
Opened by Adam Sugerman (sugerfunk) - Tuesday, 15 February 2011, 09:37 GMT+2
|
DetailsEQ settings changed via Touchscreen WPS action setting_inc & setting_dec are not reflected in the sound output of the device even though they display having been changed in the menus. The changes are also not written to the main config file on disk so they do not "stick" after Rockbox has been rebooted.
example syntax to toggle EQ on/off (display DOES get toggled): %T(148,520,54,46,setting_dec,eq enabled) %T(148,520,54,46,&setting_inc,eq enabled) %xl(E,eq.bmp,0,0) %V(148,520,54,46,-) %?St(eq enabled)<%xd(E)|> I'm not sure if this problem is specific to Android or if the problem applies to all targets. APK Build: Feb 4, 2011 |
This task depends upon
The change not getting written to config.cfg is worrying though.
But what about the possibility of adding one more additional (and optional) boolean parameter to the %T tag, exclusively for the setting_inc and setting_dec actions, which tells the WPS to do a settings_apply() callback only when true?
Perhaps this could make sense from an architectural perspective? It would allow EQ settings to be changed from the WPS, prevent any unnecessary callbacks by requiring an explicit request to do so, and retain backwards compatibility for all existing WPS screens.
It is not defined in the eq_enabled declaration (and it appears that it might have been an unintentional omission):
OFFON_SETTING(F_EQSETTING, eq_enabled, LANG_EQUALIZER_ENABLED, false, "eq enabled", NULL)
Since the function is already defined in dsp.c, which is already imported, I think it would be straightforward to change it to:
OFFON_SETTING(F_EQSETTING, eq_enabled, LANG_EQUALIZER_ENABLED, false, "eq enabled", dsp_set_eq)
This looks exactly how "crossfeed" (also a boolean toggle) functions in the settings_list.c file:
OFFON_SETTING(F_SOUNDSETTING, crossfeed, LANG_CROSSFEED, false, "crossfeed", dsp_set_crossfeed)
I have yet to get a working build environment, and I haven't been able to test it, so please let me know if I'm missing something. :-)