summaryrefslogtreecommitdiff
path: root/apps/dsp.c
diff options
context:
space:
mode:
authorMagnus Holmgren <magnushol@gmail.com>2005-09-24 15:22:48 +0000
committerMagnus Holmgren <magnushol@gmail.com>2005-09-24 15:22:48 +0000
commit4b711c2f72608441f1ef44db584eccc9ca823ea1 (patch)
tree34398d7fd8f1a200c36470659b278819553c676f /apps/dsp.c
parent9a625ef7ac544976f45734d62294a52ef32cfe66 (diff)
downloadrockbox-4b711c2f72608441f1ef44db584eccc9ca823ea1.tar.gz
rockbox-4b711c2f72608441f1ef44db584eccc9ca823ea1.zip
Iriver: Added new ReplayGain type: track gain if shuffle mode is active, album gain otherwise. Properly apply ReplayGain settings on config file load. Bumped config version, so save your settings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7558 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/dsp.c')
-rw-r--r--apps/dsp.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/apps/dsp.c b/apps/dsp.c
index 23b7ea548d..8ec36c3f33 100644
--- a/apps/dsp.c
+++ b/apps/dsp.c
@@ -708,11 +708,16 @@ void dsp_set_replaygain(bool always)
708 708
709 if (global_settings.replaygain || global_settings.replaygain_noclip) 709 if (global_settings.replaygain || global_settings.replaygain_noclip)
710 { 710 {
711 long peak; 711 bool track_mode
712 = ((global_settings.replaygain_type == REPLAYGAIN_TRACK)
713 || ((global_settings.replaygain_type == REPLAYGAIN_SHUFFLE)
714 && global_settings.playlist_shuffle));
715 long peak = (track_mode || !dsp->album_peak)
716 ? dsp->track_peak : dsp->album_peak;
712 717
713 if (global_settings.replaygain) 718 if (global_settings.replaygain)
714 { 719 {
715 gain = (global_settings.replaygain_track || !dsp->album_gain) 720 gain = (track_mode || !dsp->album_gain)
716 ? dsp->track_gain : dsp->album_gain; 721 ? dsp->track_gain : dsp->album_gain;
717 722
718 if (global_settings.replaygain_preamp) 723 if (global_settings.replaygain_preamp)
@@ -720,13 +725,10 @@ void dsp_set_replaygain(bool always)
720 long preamp = get_replaygain_int( 725 long preamp = get_replaygain_int(
721 global_settings.replaygain_preamp * 10); 726 global_settings.replaygain_preamp * 10);
722 727
723 gain = (long) ((((int64_t) gain * preamp)) >> 24); 728 gain = (long) (((int64_t) gain * preamp) >> 24);
724 } 729 }
725 } 730 }
726 731
727 peak = (global_settings.replaygain_track || !dsp->album_peak)
728 ? dsp->track_peak : dsp->album_peak;
729
730 if (gain == 0) 732 if (gain == 0)
731 { 733 {
732 /* So that noclip can work even with no gain information. */ 734 /* So that noclip can work even with no gain information. */