diff options
Diffstat (limited to 'apps/settings_list.c')
-rw-r--r-- | apps/settings_list.c | 32 |
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 */ | ||
666 | static void volume_limit_load_from_cfg(void* var, char*value) | ||
667 | { | ||
668 | *(int*)var = atoi(value); | ||
669 | } | ||
670 | static 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 | } | ||
676 | static 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 | } | ||
684 | static void volume_limit_set_default(void* setting, void* defaultval) | ||
685 | { | ||
686 | (void)defaultval; | ||
687 | *(int*)setting = sound_max(SOUND_VOLUME); | ||
688 | } | ||
689 | |||
664 | const struct settings_list settings[] = { | 690 | const 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 |