aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/service/DownloadService.java
diff options
context:
space:
mode:
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.java16
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;