summaryrefslogtreecommitdiff
path: root/apps/settings_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings_menu.c')
-rw-r--r--apps/settings_menu.c56
1 files changed, 38 insertions, 18 deletions
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index fadbb11f3e..57b4cc897e 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -95,7 +95,7 @@ static bool remote_contrast(void)
95 return set_int( str(LANG_CONTRAST), "", UNIT_INT, 95 return set_int( str(LANG_CONTRAST), "", UNIT_INT,
96 &global_settings.remote_contrast, 96 &global_settings.remote_contrast,
97 lcd_remote_set_contrast, 1, MIN_CONTRAST_SETTING, 97 lcd_remote_set_contrast, 1, MIN_CONTRAST_SETTING,
98 MAX_CONTRAST_SETTING ); 98 MAX_CONTRAST_SETTING, NULL );
99} 99}
100 100
101static bool remote_invert(void) 101static bool remote_invert(void)
@@ -235,7 +235,7 @@ static bool contrast(void)
235 return set_int( str(LANG_CONTRAST), "", UNIT_INT, 235 return set_int( str(LANG_CONTRAST), "", UNIT_INT,
236 &global_settings.contrast, 236 &global_settings.contrast,
237 lcd_set_contrast, 1, MIN_CONTRAST_SETTING, 237 lcd_set_contrast, 1, MIN_CONTRAST_SETTING,
238 MAX_CONTRAST_SETTING ); 238 MAX_CONTRAST_SETTING, NULL );
239} 239}
240 240
241#ifdef HAVE_LCD_BITMAP 241#ifdef HAVE_LCD_BITMAP
@@ -322,7 +322,7 @@ static bool peak_meter_fps_menu(void) {
322 bool retval = false; 322 bool retval = false;
323 retval = set_int( "Refresh rate", "/s", UNIT_PER_SEC, 323 retval = set_int( "Refresh rate", "/s", UNIT_PER_SEC,
324 &peak_meter_fps, 324 &peak_meter_fps,
325 NULL, 1, 5, 40); 325 NULL, 1, 5, 40, NULL);
326 return retval; 326 return retval;
327} 327}
328#endif /* PM_DEBUG */ 328#endif /* PM_DEBUG */
@@ -420,7 +420,7 @@ static bool peak_meter_release(void) {
420 retval = set_int( str(LANG_PM_RELEASE), str(LANG_PM_UNITS_PER_READ), 420 retval = set_int( str(LANG_PM_RELEASE), str(LANG_PM_UNITS_PER_READ),
421 LANG_PM_UNITS_PER_READ, 421 LANG_PM_UNITS_PER_READ,
422 &global_settings.peak_meter_release, 422 &global_settings.peak_meter_release,
423 NULL, 1, 1, 0x7e); 423 NULL, 1, 1, 0x7e, NULL);
424 424
425 peak_meter_init_times(global_settings.peak_meter_release, 425 peak_meter_init_times(global_settings.peak_meter_release,
426 global_settings.peak_meter_hold, 426 global_settings.peak_meter_hold,
@@ -488,7 +488,7 @@ static bool peak_meter_min(void) {
488 int min = -global_settings.peak_meter_min; 488 int min = -global_settings.peak_meter_min;
489 489
490 retval = set_int(str(LANG_PM_MIN), str(LANG_PM_DBFS), UNIT_DB, 490 retval = set_int(str(LANG_PM_MIN), str(LANG_PM_DBFS), UNIT_DB,
491 &min, NULL, 1, -89, range_max); 491 &min, NULL, 1, -89, range_max, NULL);
492 492
493 global_settings.peak_meter_min = - min; 493 global_settings.peak_meter_min = - min;
494 } 494 }
@@ -499,7 +499,7 @@ static bool peak_meter_min(void) {
499 499
500 retval = set_int(str(LANG_PM_MIN), "%", UNIT_PERCENT, 500 retval = set_int(str(LANG_PM_MIN), "%", UNIT_PERCENT,
501 &min, NULL, 501 &min, NULL,
502 1, 0, global_settings.peak_meter_max - 1); 502 1, 0, global_settings.peak_meter_max - 1, NULL);
503 503
504 global_settings.peak_meter_min = (unsigned char)min; 504 global_settings.peak_meter_min = (unsigned char)min;
505 } 505 }
@@ -522,7 +522,7 @@ static bool peak_meter_max(void) {
522 int max = -global_settings.peak_meter_max;; 522 int max = -global_settings.peak_meter_max;;
523 523
524 retval = set_int(str(LANG_PM_MAX), str(LANG_PM_DBFS), UNIT_DB, 524 retval = set_int(str(LANG_PM_MAX), str(LANG_PM_DBFS), UNIT_DB,
525 &max, NULL, 1, range_min, 0); 525 &max, NULL, 1, range_min, 0, NULL);
526 526
527 global_settings.peak_meter_max = - max; 527 global_settings.peak_meter_max = - max;
528 528
@@ -534,7 +534,7 @@ static bool peak_meter_max(void) {
534 534
535 retval = set_int(str(LANG_PM_MAX), "%", UNIT_PERCENT, 535 retval = set_int(str(LANG_PM_MAX), "%", UNIT_PERCENT,
536 &max, NULL, 536 &max, NULL,
537 1, global_settings.peak_meter_min + 1, 100); 537 1, global_settings.peak_meter_min + 1, 100, NULL);
538 538
539 global_settings.peak_meter_max = (unsigned char)max; 539 global_settings.peak_meter_max = (unsigned char)max;
540 } 540 }
@@ -765,7 +765,7 @@ static bool scroll_speed(void)
765{ 765{
766 return set_int(str(LANG_SCROLL), "", UNIT_INT, 766 return set_int(str(LANG_SCROLL), "", UNIT_INT,
767 &global_settings.scroll_speed, 767 &global_settings.scroll_speed,
768 &lcd_scroll_speed, 1, 0, 15 ); 768 &lcd_scroll_speed, 1, 0, 15, NULL );
769} 769}
770 770
771 771
@@ -774,7 +774,7 @@ static bool scroll_delay(void)
774 int dummy = global_settings.scroll_delay * (HZ/10); 774 int dummy = global_settings.scroll_delay * (HZ/10);
775 int rc = set_int(str(LANG_SCROLL_DELAY), "ms", UNIT_MS, 775 int rc = set_int(str(LANG_SCROLL_DELAY), "ms", UNIT_MS,
776 &dummy, 776 &dummy,
777 &lcd_scroll_delay, 100, 0, 2500 ); 777 &lcd_scroll_delay, 100, 0, 2500, NULL );
778 global_settings.scroll_delay = dummy / (HZ/10); 778 global_settings.scroll_delay = dummy / (HZ/10);
779 return rc; 779 return rc;
780} 780}
@@ -784,7 +784,7 @@ static bool scroll_step(void)
784{ 784{
785 return set_int(str(LANG_SCROLL_STEP_EXAMPLE), "pixels", UNIT_PIXEL, 785 return set_int(str(LANG_SCROLL_STEP_EXAMPLE), "pixels", UNIT_PIXEL,
786 &global_settings.scroll_step, 786 &global_settings.scroll_step,
787 &lcd_scroll_step, 1, 1, LCD_WIDTH ); 787 &lcd_scroll_step, 1, 1, LCD_WIDTH, NULL );
788} 788}
789#endif 789#endif
790 790
@@ -792,7 +792,7 @@ static bool bidir_limit(void)
792{ 792{
793 return set_int(str(LANG_BIDIR_SCROLL), "%", UNIT_PERCENT, 793 return set_int(str(LANG_BIDIR_SCROLL), "%", UNIT_PERCENT,
794 &global_settings.bidir_limit, 794 &global_settings.bidir_limit,
795 &lcd_bidir_scroll, 25, 0, 200 ); 795 &lcd_bidir_scroll, 25, 0, 200, NULL );
796} 796}
797 797
798#ifdef HAVE_LCD_CHARCELLS 798#ifdef HAVE_LCD_CHARCELLS
@@ -816,7 +816,7 @@ static bool jump_scroll_delay(void)
816 int dummy = global_settings.jump_scroll_delay * (HZ/10); 816 int dummy = global_settings.jump_scroll_delay * (HZ/10);
817 int rc = set_int(str(LANG_JUMP_SCROLL_DELAY), "ms", UNIT_MS, 817 int rc = set_int(str(LANG_JUMP_SCROLL_DELAY), "ms", UNIT_MS,
818 &dummy, 818 &dummy,
819 &lcd_jump_scroll_delay, 100, 0, 2500 ); 819 &lcd_jump_scroll_delay, 100, 0, 2500, NULL );
820 global_settings.jump_scroll_delay = dummy / (HZ/10); 820 global_settings.jump_scroll_delay = dummy / (HZ/10);
821 return rc; 821 return rc;
822} 822}
@@ -831,7 +831,7 @@ static bool battery_capacity(void)
831 return set_int(str(LANG_BATTERY_CAPACITY), "mAh", UNIT_MAH, 831 return set_int(str(LANG_BATTERY_CAPACITY), "mAh", UNIT_MAH,
832 &global_settings.battery_capacity, 832 &global_settings.battery_capacity,
833 &set_battery_capacity, 50, BATTERY_CAPACITY_MIN, 833 &set_battery_capacity, 50, BATTERY_CAPACITY_MIN,
834 BATTERY_CAPACITY_MAX ); 834 BATTERY_CAPACITY_MAX, NULL );
835} 835}
836 836
837#if BATTERY_TYPES_COUNT > 1 837#if BATTERY_TYPES_COUNT > 1
@@ -895,7 +895,7 @@ static bool spindown(void)
895{ 895{
896 return set_int(str(LANG_SPINDOWN), "s", UNIT_SEC, 896 return set_int(str(LANG_SPINDOWN), "s", UNIT_SEC,
897 &global_settings.disk_spindown, 897 &global_settings.disk_spindown,
898 ata_spindown, 1, 3, 254 ); 898 ata_spindown, 1, 3, 254, NULL );
899} 899}
900 900
901#ifdef HAVE_ATA_POWER_OFF 901#ifdef HAVE_ATA_POWER_OFF
@@ -921,14 +921,14 @@ static bool max_files_in_dir(void)
921{ 921{
922 return set_int(str(LANG_MAX_FILES_IN_DIR), "", UNIT_INT, 922 return set_int(str(LANG_MAX_FILES_IN_DIR), "", UNIT_INT,
923 &global_settings.max_files_in_dir, 923 &global_settings.max_files_in_dir,
924 NULL, 50, 50, 10000 ); 924 NULL, 50, 50, 10000, NULL );
925} 925}
926 926
927static bool max_files_in_playlist(void) 927static bool max_files_in_playlist(void)
928{ 928{
929 return set_int(str(LANG_MAX_FILES_IN_PLAYLIST), "", UNIT_INT, 929 return set_int(str(LANG_MAX_FILES_IN_PLAYLIST), "", UNIT_INT,
930 &global_settings.max_files_in_playlist, 930 &global_settings.max_files_in_playlist,
931 NULL, 1000, 1000, 20000 ); 931 NULL, 1000, 1000, 20000, NULL );
932} 932}
933 933
934#if CONFIG_HWCODEC == MASNONE 934#if CONFIG_HWCODEC == MASNONE
@@ -957,7 +957,7 @@ static bool buffer_margin(void)
957{ 957{
958 return set_int(str(LANG_MP3BUFFER_MARGIN), "s", UNIT_SEC, 958 return set_int(str(LANG_MP3BUFFER_MARGIN), "s", UNIT_SEC,
959 &global_settings.buffer_margin, 959 &global_settings.buffer_margin,
960 audio_set_buffer_margin, 1, 0, 7 ); 960 audio_set_buffer_margin, 1, 0, 7, NULL );
961} 961}
962#endif 962#endif
963 963
@@ -1232,6 +1232,25 @@ static bool replaygain_noclip(void)
1232 return result; 1232 return result;
1233} 1233}
1234 1234
1235void replaygain_preamp_format(char* buffer, int buffer_size, int value,
1236 const char* unit)
1237{
1238 int v = abs(value);
1239
1240 snprintf(buffer, buffer_size, "%s%d.%d %s", value < 0 ? "-" : "",
1241 v / 10, v % 10, unit);
1242}
1243
1244static bool replaygain_preamp(void)
1245{
1246 bool result = set_int(str(LANG_REPLAYGAIN_PREAMP), str(LANG_UNIT_DB),
1247 UNIT_DB, &global_settings.replaygain_preamp, NULL, 1, -120, 120,
1248 replaygain_preamp_format);
1249
1250 dsp_set_replaygain(true);
1251 return result;
1252}
1253
1235static bool replaygain_settings_menu(void) 1254static bool replaygain_settings_menu(void)
1236{ 1255{
1237 int m; 1256 int m;
@@ -1241,6 +1260,7 @@ static bool replaygain_settings_menu(void)
1241 { ID2P(LANG_REPLAYGAIN_ENABLE), replaygain }, 1260 { ID2P(LANG_REPLAYGAIN_ENABLE), replaygain },
1242 { ID2P(LANG_REPLAYGAIN_NOCLIP), replaygain_noclip }, 1261 { ID2P(LANG_REPLAYGAIN_NOCLIP), replaygain_noclip },
1243 { ID2P(LANG_REPLAYGAIN_MODE), replaygain_mode }, 1262 { ID2P(LANG_REPLAYGAIN_MODE), replaygain_mode },
1263 { ID2P(LANG_REPLAYGAIN_PREAMP), replaygain_preamp },
1244 }; 1264 };
1245 1265
1246 m=menu_init( items, sizeof(items) / sizeof(*items), NULL, 1266 m=menu_init( items, sizeof(items) / sizeof(*items), NULL,