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.c44
1 files changed, 35 insertions, 9 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 32b1e38999..59719f2e08 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -41,6 +41,7 @@
41#include "kernel.h" 41#include "kernel.h"
42#include "open_plugin.h" 42#include "open_plugin.h"
43#include "misc.h" 43#include "misc.h"
44#include "playback.h"
44#ifdef HAVE_REMOTE_LCD 45#ifdef HAVE_REMOTE_LCD
45#include "lcd-remote.h" 46#include "lcd-remote.h"
46#endif 47#endif
@@ -387,7 +388,7 @@ static const char* list_pad_formatter(char *buffer, size_t buffer_size,
387{ 388{
388 switch (val) 389 switch (val)
389 { 390 {
390 case -1: return str(LANG_AUTOMATIC); 391 case -1: return str(LANG_AUTO);
391 case 0: return str(LANG_OFF); 392 case 0: return str(LANG_OFF);
392 default: break; 393 default: break;
393 } 394 }
@@ -399,7 +400,7 @@ static int32_t list_pad_getlang(int value, int unit)
399{ 400{
400 switch (value) 401 switch (value)
401 { 402 {
402 case -1: return LANG_AUTOMATIC; 403 case -1: return LANG_AUTO;
403 case 0: return LANG_OFF; 404 case 0: return LANG_OFF;
404 default: return TALK_ID(value, unit); 405 default: return TALK_ID(value, unit);
405 } 406 }
@@ -619,6 +620,30 @@ static void eq_set_default(void* setting, void* defaultval)
619 memcpy(setting, defaultval, sizeof(struct eq_band_setting)); 620 memcpy(setting, defaultval, sizeof(struct eq_band_setting));
620} 621}
621 622
623#ifdef HAVE_PLAY_FREQ
624static const char* formatter_freq_unit_0_is_auto(char *buffer, size_t buffer_size,
625 int value, const char *unit)
626{
627 if (value == 0)
628 return str(LANG_AUTO);
629 else
630 return db_format(buffer, buffer_size, value / 100, unit);
631}
632
633static int32_t getlang_freq_unit_0_is_auto(int value, int unit)
634{
635 if (value == 0)
636 return LANG_AUTO;
637 else
638 return talk_value_decimal(value, unit, 3, false);
639}
640
641static void playback_frequency_callback(int sample_rate_hz)
642{
643 audio_set_playback_frequency(sample_rate_hz);
644}
645#endif /* HAVE_PLAY_FREQ */
646
622/* perform shuffle/unshuffle of the current playlist based on the boolean provided */ 647/* perform shuffle/unshuffle of the current playlist based on the boolean provided */
623static void shuffle_playlist_callback(bool shuffle) 648static void shuffle_playlist_callback(bool shuffle)
624{ 649{
@@ -954,16 +979,17 @@ const struct settings_list settings[] = {
954#endif 979#endif
955 ), /* CHOICE_SETTING( repeat_mode ) */ 980 ), /* CHOICE_SETTING( repeat_mode ) */
956#ifdef HAVE_PLAY_FREQ 981#ifdef HAVE_PLAY_FREQ
957 STRINGCHOICE_SETTING(0, play_frequency, LANG_FREQUENCY, 0, 982 TABLE_SETTING(F_SOUNDSETTING|F_CB_ON_SELECT_ONLY|F_CB_ONLY_IF_CHANGED,
983 play_frequency, LANG_FREQUENCY, 0, "playback frequency", "auto",
984 UNIT_KHZ, formatter_freq_unit_0_is_auto,
985 getlang_freq_unit_0_is_auto,
986 playback_frequency_callback,
958#if HAVE_PLAY_FREQ >= 192 987#if HAVE_PLAY_FREQ >= 192
959 "playback frequency", "auto,44.1 kHz,48 kHz,88.2 kHz,96 kHz,176.4 kHz,192 kHz", NULL, 7, 988 7,0,SAMPR_44,SAMPR_48,SAMPR_88,SAMPR_96,SAMPR_176,SAMPR_192),
960 LANG_AUTOMATIC, TALK_ID_DECIMAL(441, 1, UNIT_KHZ), TALK_ID(48, UNIT_KHZ), TALK_ID_DECIMAL(882, 1, UNIT_KHZ), TALK_ID(96, UNIT_KHZ), TALK_ID_DECIMAL(1764, 1, UNIT_KHZ), TALK_ID(192, UNIT_KHZ)),
961#elif HAVE_PLAY_FREQ >= 96 989#elif HAVE_PLAY_FREQ >= 96
962 "playback frequency", "auto,44.1 kHz,48 kHz,88.2 kHz,96 kHz", NULL, 5, 990 5,0,SAMPR_44,SAMPR_48,SAMPR_88,SAMPR_96),
963 LANG_AUTOMATIC, TALK_ID_DECIMAL(441, 1, UNIT_KHZ), TALK_ID(48, UNIT_KHZ), TALK_ID_DECIMAL(882, 1, UNIT_KHZ), TALK_ID(96, UNIT_KHZ)),
964#elif HAVE_PLAY_FREQ >= 48 991#elif HAVE_PLAY_FREQ >= 48
965 "playback frequency", "auto,44.1 kHz,48 kHz", NULL, 3, 992 3,0,SAMPR_44,SAMPR_48),
966 LANG_AUTOMATIC, TALK_ID_DECIMAL(441, 1, UNIT_KHZ), TALK_ID(48, UNIT_KHZ)),
967#else 993#else
968 #error "HAVE_PLAY_FREQ < 48???" 994 #error "HAVE_PLAY_FREQ < 48???"
969#endif 995#endif