From 124fe18850887787e0573395e90a2d74ab1201ca Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Thu, 4 Apr 2024 12:31:02 -0600 Subject: [PATCH] playback: re-add replaygain off mode It was honestly foolish for me to recommend retagging. Resolves #746. --- app/src/main/java/org/oxycblt/auxio/IntegerTable.kt | 2 +- .../java/org/oxycblt/auxio/playback/replaygain/ReplayGain.kt | 3 +++ .../auxio/playback/replaygain/ReplayGainAudioProcessor.kt | 5 +++++ app/src/main/res/values/settings.xml | 3 +++ app/src/main/res/values/strings.xml | 3 ++- 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt b/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt index 54d59eb50..271de0969 100644 --- a/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt +++ b/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt @@ -102,7 +102,7 @@ object IntegerTable { /** Sort.Mode.ByDateAdded */ const val SORT_BY_DATE_ADDED = 0xA118 /** ReplayGainMode.Off (No longer used but still reserved) */ - // const val REPLAY_GAIN_MODE_OFF = 0xA110 + const val REPLAY_GAIN_MODE_OFF = 0xA110 /** ReplayGainMode.Track */ const val REPLAY_GAIN_MODE_TRACK = 0xA111 /** ReplayGainMode.Album */ diff --git a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGain.kt b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGain.kt index 5a19c7df3..012bdfce3 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGain.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGain.kt @@ -29,6 +29,8 @@ import org.oxycblt.auxio.R * @author Alexander Capehart (OxygenCobalt) */ enum class ReplayGainMode { + /** Do not apply any ReplayGain adjustments. */ + OFF, /** Apply the track gain, falling back to the album gain if the track gain is not found. */ TRACK, /** Apply the album gain, falling back to the track gain if the album gain is not found. */ @@ -45,6 +47,7 @@ enum class ReplayGainMode { */ fun fromIntCode(intCode: Int) = when (intCode) { + IntegerTable.REPLAY_GAIN_MODE_OFF -> OFF IntegerTable.REPLAY_GAIN_MODE_TRACK -> TRACK IntegerTable.REPLAY_GAIN_MODE_ALBUM -> ALBUM IntegerTable.REPLAY_GAIN_MODE_DYNAMIC -> DYNAMIC diff --git a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt index c94f32ae5..09168842d 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt @@ -119,6 +119,11 @@ constructor( // ReplayGain is configurable, so determine what to do based off of the mode. val resolvedAdjustment = when (playbackSettings.replayGainMode) { + // User wants no adjustment. + ReplayGainMode.OFF -> { + logD("ReplayGain is off") + null + } // User wants track gain to be preferred. Default to album gain only if // there is no track gain. ReplayGainMode.TRACK -> { diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index f5c45132a..49dbceebd 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -139,12 +139,14 @@ + @string/set_replay_gain_mode_off @string/set_replay_gain_mode_track @string/set_replay_gain_mode_album @string/set_replay_gain_mode_dynamic + @integer/replay_gain_off @integer/replay_gain_track @integer/replay_gain_album @integer/replay_gain_dynamic @@ -161,6 +163,7 @@ 0xA122 0xA124 + 0xA110 0xA111 0xA112 0xA113 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5a465a49c..e4431dacd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -290,8 +290,9 @@ Pause when a song repeats Remember pause Remain playing/paused when skipping or editing queue - ReplayGain + Volume normalization ReplayGain strategy + Off Prefer track Prefer album Prefer album if one is playing