diff --git a/CHANGELOG.md b/CHANGELOG.md index dab8d604b..3871ad7f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## dev +#### What's Changed +- ReplayGain can now no longer be disabled. Remove ReplayGain tags from +files if such functionality is not desired. + ## 2.6.1 #### What's New diff --git a/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt b/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt index 2ea54a26e..1b084a8dc 100644 --- a/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt +++ b/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt @@ -108,8 +108,8 @@ object IntegerTable { /** Sort.ByDateAdded */ const val SORT_BY_DATE_ADDED = 0xA118 - /** ReplayGainMode.Off */ - const val REPLAY_GAIN_MODE_OFF = 0xA110 + /** ReplayGainMode.Off (No longer used but still reserved) */ + // 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/music/system/ExoPlayerBackend.kt b/app/src/main/java/org/oxycblt/auxio/music/system/ExoPlayerBackend.kt index 78fd42247..3fe77837c 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/system/ExoPlayerBackend.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/system/ExoPlayerBackend.kt @@ -67,6 +67,8 @@ class ExoPlayerBackend(private val inner: MediaStoreBackend) : Indexer.Backend { val songs = mutableListOf() val total = cursor.count + // LEFTOFF: Make logic more consistent? + while (cursor.moveToNext()) { // Note: This call to buildAudio does not populate the genre field. This is // because indexing genres is quite slow with MediaStore, and so keeping the 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 fd73db7f2..06ea2ce0c 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 @@ -21,8 +21,6 @@ import org.oxycblt.auxio.IntegerTable /** Represents the current setting for ReplayGain. */ enum class ReplayGainMode { - /** Do not apply ReplayGain. */ - 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. */ @@ -34,7 +32,6 @@ enum class ReplayGainMode { /** Convert an int [code] into an instance, or null if it isn't valid. */ fun fromIntCode(code: Int): ReplayGainMode? { return when (code) { - 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 8ee20cc71..76894dd4f 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 @@ -65,12 +65,6 @@ class ReplayGainAudioProcessor(context: Context) : BaseAudioProcessor() { * based off Vanilla Music's implementation, but has diverged to a significant extent. */ fun applyReplayGain(metadata: Metadata?) { - if (settings.replayGainMode == ReplayGainMode.OFF) { - logD("ReplayGain not enabled") - volume = 1f - return - } - val gain = metadata?.let(::parseReplayGain) val preAmp = settings.replayGainPreAmp @@ -79,8 +73,6 @@ class ReplayGainAudioProcessor(context: Context) : BaseAudioProcessor() { // ReplayGain is configurable, so determine what to do based off of the mode. val useAlbumGain = when (settings.replayGainMode) { - ReplayGainMode.OFF -> throw IllegalStateException() - // User wants track gain to be preferred. Default to album gain only if // there is no track gain. ReplayGainMode.TRACK -> gain.track == 0f @@ -109,7 +101,7 @@ class ReplayGainAudioProcessor(context: Context) : BaseAudioProcessor() { } else { // No ReplayGain tags existed, or no tags were parsable, or there was no metadata // in the first place. Return the gain to use when there is no ReplayGain value. - logD("No ReplayGain tags present ") + logD("No ReplayGain tags present") preAmp.without } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt index 02b9c0d71..1d8cd9275 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt @@ -265,6 +265,8 @@ class PlaybackService : return } + C.ENCODING_PCM_32BIT + logD("Loading ${song.rawName}") player.setMediaItem(MediaItem.fromUri(song.uri)) player.prepare() diff --git a/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt b/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt index aebff02a3..5d4047d24 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt @@ -140,7 +140,7 @@ class Settings(private val context: Context, private val callback: Callback? = n get() = ReplayGainMode.fromIntCode( inner.getInt(context.getString(R.string.set_key_replay_gain), Int.MIN_VALUE)) - ?: ReplayGainMode.OFF + ?: ReplayGainMode.DYNAMIC /** The current ReplayGain pre-amp configuration */ var replayGainPreAmp: ReplayGainPreAmp diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index 49f20c66e..af188e1b3 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -107,14 +107,12 @@ - @string/set_replay_gain_off @string/set_replay_gain_track @string/set_replay_gain_album @string/set_replay_gain_dynamic - @integer/replay_gain_off @integer/replay_gain_track @integer/replay_gain_album @integer/replay_gain_dynamic @@ -134,7 +132,6 @@ 0xA105 0xA106 - 0xA110 0xA111 0xA112 0xA113 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e20ee9733..7a31e94d6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -181,7 +181,7 @@ Audio Headset autoplay Always start playing when a headset is connected (may not work on all devices) - ReplayGain + ReplayGain strategy Off Prefer track Prefer album diff --git a/app/src/main/res/xml/prefs_main.xml b/app/src/main/res/xml/prefs_main.xml index 6878b09f7..d55a942ad 100644 --- a/app/src/main/res/xml/prefs_main.xml +++ b/app/src/main/res/xml/prefs_main.xml @@ -75,15 +75,13 @@ app:title="@string/set_headset_autoplay" />