From feaf5bbcda3eda42987aa015e80e75e8f561d97c Mon Sep 17 00:00:00 2001 From: Sashanoraa Date: Mon, 20 Feb 2023 23:02:05 -0500 Subject: [PATCH] Add gain adjustment As I had requested in issue #230, I've added a setting to adjust the global volume output of the player separate from the system volume. If you'd like me to make any changes before merge I'd be happy to. --- .../java/com/dkanada/gramophone/service/MusicService.java | 4 ++++ .../java/com/dkanada/gramophone/util/PreferenceUtil.java | 5 +++++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/pref_playback.xml | 7 +++++++ 4 files changed, 18 insertions(+) diff --git a/app/src/main/java/com/dkanada/gramophone/service/MusicService.java b/app/src/main/java/com/dkanada/gramophone/service/MusicService.java index 3a0f7c80..5e63ac63 100644 --- a/app/src/main/java/com/dkanada/gramophone/service/MusicService.java +++ b/app/src/main/java/com/dkanada/gramophone/service/MusicService.java @@ -238,6 +238,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP playback = new LocalPlayer(this); playback.setListener(playbackCallbacks); + playback.setVolume(PreferenceUtil.getInstance(this).getGainOffset()); queueManager = new QueueManager(this, queueCallbacks); @@ -674,6 +675,9 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP initNotification(); updateNotification(); break; + case PreferenceUtil.GAIN_OFFSET: + playback.setVolume(PreferenceUtil.getInstance(this).getGainOffset()); + break; } } diff --git a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java index 9cc69f73..59c2187a 100644 --- a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java @@ -81,6 +81,7 @@ public final class PreferenceUtil { public static final String MAXIMUM_BITRATE = "maximum_bitrate"; public static final String REMEMBER_SHUFFLE = "remember_shuffle"; public static final String REMEMBER_QUEUE = "remember_queue"; + public static final String GAIN_OFFSET = "gain_offset"; public static final String LOCATION_DOWNLOAD = "location_download"; public static final String LOCATION_CACHE = "location_cache"; @@ -254,6 +255,10 @@ public final class PreferenceUtil { return mPreferences.getBoolean(REMEMBER_QUEUE, true); } + public final int getGainOffset() { + return mPreferences.getInt(GAIN_OFFSET, 100); + } + public final boolean getShowAlbumCover() { return mPreferences.getBoolean(SHOW_ALBUM_COVER, false); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ed0d4680..20aa00a9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -128,6 +128,7 @@ Download Location Images Media + Gain Adjustment The primary theme color for control elements. An alternate color used to accent elements. @@ -141,6 +142,7 @@ Go to the last opened tab on launch. Configure visibility and order of display categories. Disable direct play codecs to force transcoding. + Adjust the gain of the music player\'s output Delete Remove diff --git a/app/src/main/res/xml/pref_playback.xml b/app/src/main/res/xml/pref_playback.xml index 79defa10..bbd11e69 100644 --- a/app/src/main/res/xml/pref_playback.xml +++ b/app/src/main/res/xml/pref_playback.xml @@ -45,6 +45,13 @@ android:summary="@string/pref_summary_remember_queue" android:title="@string/pref_title_remember_queue" /> + +