summaryrefslogtreecommitdiff
path: root/replaygain.c
diff options
context:
space:
mode:
Diffstat (limited to 'replaygain.c')
-rw-r--r--replaygain.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/replaygain.c b/replaygain.c
index 50f88535..18e07264 100644
--- a/replaygain.c
+++ b/replaygain.c
@@ -63,6 +63,17 @@ replaygain_set (int mode, int scale, float preamp) {
void
replaygain_set_values (float albumgain, float albumpeak, float trackgain, float trackpeak) {
+ if (albumgain > 100 && trackgain <= 100) {
+ albumgain = trackgain;
+ albumpeak = trackpeak;
+ }
+ else if (albumgain <= 100 && trackgain > 100) {
+ trackgain = albumgain;
+ trackpeak = albumpeak;
+ }
+ else if (albumgain > 100 && trackgain > 100) {
+ trackgain = albumgain = 0;
+ }
rg_albumgain = db_to_amp (albumgain);
rg_trackgain = db_to_amp (trackgain);
rg_albumgain_preamp = rg_albumgain * conf_replaygain_preamp;