diff options
Diffstat (limited to 'apps/dsp.c')
-rw-r--r-- | apps/dsp.c | 14 |
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. */ |