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.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c
index bd2bfce36f..01bc5c53f4 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -661,9 +661,39 @@ static int32_t hotkey_getlang(int value, int unit)
661 return get_hotkey_lang_id(value); 661 return get_hotkey_lang_id(value);
662} 662}
663#endif /* HAVE_HOTKEY */ 663#endif /* HAVE_HOTKEY */
664
665/* volume limiter */
666static void volume_limit_load_from_cfg(void* var, char*value)
667{
668 *(int*)var = atoi(value);
669}
670static char* volume_limit_write_to_cfg(void* setting, char*buf, int buf_len)
671{
672 int current = *(int*)setting;
673 snprintf(buf, buf_len, "%d", current);
674 return buf;
675}
676static bool volume_limit_is_changed(void* setting, void* defaultval)
677{
678 int current = *(int*)setting;
679
680 if ((int*)defaultval == NULL)
681 *(int*)defaultval = sound_max(SOUND_VOLUME);
682 return (current != sound_max(SOUND_VOLUME));
683}
684static void volume_limit_set_default(void* setting, void* defaultval)
685{
686 (void)defaultval;
687 *(int*)setting = sound_max(SOUND_VOLUME);
688}
689
664const struct settings_list settings[] = { 690const struct settings_list settings[] = {
665 /* sound settings */ 691 /* sound settings */
666 SOUND_SETTING(F_NO_WRAP,volume, LANG_VOLUME, "volume", SOUND_VOLUME), 692 SOUND_SETTING(F_NO_WRAP, volume, LANG_VOLUME, "volume", SOUND_VOLUME),
693 CUSTOM_SETTING(F_NO_WRAP, volume_limit, LANG_VOLUME_LIMIT,
694 NULL, "volume limit",
695 volume_limit_load_from_cfg, volume_limit_write_to_cfg,
696 volume_limit_is_changed, volume_limit_set_default),
667 SOUND_SETTING(0, balance, LANG_BALANCE, "balance", SOUND_BALANCE), 697 SOUND_SETTING(0, balance, LANG_BALANCE, "balance", SOUND_BALANCE),
668/* Tone controls */ 698/* Tone controls */
669#ifdef AUDIOHW_HAVE_BASS 699#ifdef AUDIOHW_HAVE_BASS