diff options
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/service/DownloadService.java')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/service/DownloadService.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java b/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java index 67a0f36f..dbc1eacc 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java @@ -192,6 +192,11 @@ public class DownloadService extends Service { private long subtractNextPosition = 0; private int subtractPosition = 0; + /** + * Reference to precreated BASTP Object + */ + private BastpUtil mBastpUtil; + @Override public void onCreate() { super.onCreate(); @@ -201,6 +206,7 @@ public class DownloadService extends Service { public void run() { Looper.prepare(); + mBastpUtil = new BastpUtil(); mediaPlayer = new MediaPlayer(); mediaPlayer.setWakeMode(DownloadService.this, PowerManager.PARTIAL_WAKE_LOCK); @@ -2645,7 +2651,7 @@ public class DownloadService extends Service { try { float adjust = 0f; if (prefs.getBoolean(Constants.PREFERENCES_KEY_REPLAY_GAIN, false)) { - float[] rg = BastpUtil.getReplayGainValues(downloadFile.getFile().getCanonicalPath()); /* track, album */ + BastpUtil.GainValues rg = mBastpUtil.getReplayGainValues(downloadFile.getFile().getCanonicalPath()); /* track, album */ boolean singleAlbum = false; String replayGainType = prefs.getString(Constants.PREFERENCES_KEY_REPLAY_GAIN_TYPE, "1"); @@ -2690,14 +2696,14 @@ public class DownloadService extends Service { // If playing a single album or no track gain, use album gain - if((singleAlbum || rg[0] == 0) && rg[1] != 0) { - adjust = rg[1]; + if((singleAlbum || rg.album == 0) && rg.track != 0) { + adjust = rg.album; } else { // Otherwise, give priority to track gain - adjust = rg[0]; + adjust = rg.track; } - if (adjust == 0) { + if (!rg.found) { /* No RG value found: decrease volume for untagged song if requested by user */ int untagged = Integer.parseInt(prefs.getString(Constants.PREFERENCES_KEY_REPLAY_GAIN_UNTAGGED, "0")); adjust = (untagged - 150) / 10f; |