From 4a7f4962e2bddcec918cd51aa20c3a7f74f1f84e Mon Sep 17 00:00:00 2001 From: Recrown Date: Thu, 9 Aug 2018 01:08:33 -0500 Subject: [PATCH] minor file location refactor, openAL sourceID reflected correctly now --- .../audio/visualizer/PCMSystem.java | 1 - .../audio/{visualizer => }/PCMObtainer.java | 19 +++++++++++-------- .../desktop/screens/GameScreen.java | 2 +- .../desktop/screens/main/MainPage.java | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) mode change 100644 => 100755 core/src/zero1hd/rhythmbullet/audio/visualizer/PCMSystem.java rename desktop/src/zero1hd/rhythmbullet/desktop/audio/{visualizer => }/PCMObtainer.java (90%) diff --git a/core/src/zero1hd/rhythmbullet/audio/visualizer/PCMSystem.java b/core/src/zero1hd/rhythmbullet/audio/visualizer/PCMSystem.java old mode 100644 new mode 100755 index a796867..8cdf0d7 --- a/core/src/zero1hd/rhythmbullet/audio/visualizer/PCMSystem.java +++ b/core/src/zero1hd/rhythmbullet/audio/visualizer/PCMSystem.java @@ -5,5 +5,4 @@ public interface PCMSystem { float[] getFrequencyBins(); int getWindowSize(); - } \ No newline at end of file diff --git a/desktop/src/zero1hd/rhythmbullet/desktop/audio/visualizer/PCMObtainer.java b/desktop/src/zero1hd/rhythmbullet/desktop/audio/PCMObtainer.java similarity index 90% rename from desktop/src/zero1hd/rhythmbullet/desktop/audio/visualizer/PCMObtainer.java rename to desktop/src/zero1hd/rhythmbullet/desktop/audio/PCMObtainer.java index d80810c..438cf50 100755 --- a/desktop/src/zero1hd/rhythmbullet/desktop/audio/visualizer/PCMObtainer.java +++ b/desktop/src/zero1hd/rhythmbullet/desktop/audio/PCMObtainer.java @@ -1,4 +1,4 @@ -package zero1hd.rhythmbullet.desktop.audio.visualizer; +package zero1hd.rhythmbullet.desktop.audio; import static org.lwjgl.openal.AL10.alGetSourcef; @@ -112,13 +112,7 @@ public class PCMObtainer implements Observer, Disposable, PCMSystem { private void setMusic() { Gdx.app.debug("PCMObtainer", "music set."); - try { - Field sourceIDField = ClassReflection.getDeclaredField(OpenALMusic.class, "sourceID"); - sourceIDField.setAccessible(true); - sourceID = (int) sourceIDField.get(mc.getCurrentMusic()); - } catch (ReflectionException e) { - e.printStackTrace(); - } + sourceID = -1; channelCount = mc.getCurrentMusicHeader().getChannelCount(); sampleRate = mc.getCurrentMusicHeader().getSampleRate(); @@ -215,6 +209,15 @@ public class PCMObtainer implements Observer, Disposable, PCMSystem { if (arg == mc.states.LOADED) { setMusic(); } else if (arg == mc.states.PLAYING) { + if (sourceID == -1) { + try { + Field sourceIDField = ClassReflection.getDeclaredField(OpenALMusic.class, "sourceID"); + sourceIDField.setAccessible(true); + sourceID = (int) sourceIDField.get(mc.getCurrentMusic()); + } catch (ReflectionException e) { + e.printStackTrace(); + } + } streamReadThread.start(); } } diff --git a/desktop/src/zero1hd/rhythmbullet/desktop/screens/GameScreen.java b/desktop/src/zero1hd/rhythmbullet/desktop/screens/GameScreen.java index e432e9a..389830a 100755 --- a/desktop/src/zero1hd/rhythmbullet/desktop/screens/GameScreen.java +++ b/desktop/src/zero1hd/rhythmbullet/desktop/screens/GameScreen.java @@ -12,7 +12,7 @@ import com.badlogic.gdx.utils.viewport.ExtendViewport; import zero1hd.rhythmbullet.RhythmBullet; import zero1hd.rhythmbullet.audio.MusicController; import zero1hd.rhythmbullet.audio.visualizer.CircularVisualizer; -import zero1hd.rhythmbullet.desktop.audio.visualizer.PCMObtainer; +import zero1hd.rhythmbullet.desktop.audio.PCMObtainer; import zero1hd.rhythmbullet.game.GameController; public class GameScreen extends ScreenAdapter { diff --git a/desktop/src/zero1hd/rhythmbullet/desktop/screens/main/MainPage.java b/desktop/src/zero1hd/rhythmbullet/desktop/screens/main/MainPage.java index d1507a8..a9fff6b 100755 --- a/desktop/src/zero1hd/rhythmbullet/desktop/screens/main/MainPage.java +++ b/desktop/src/zero1hd/rhythmbullet/desktop/screens/main/MainPage.java @@ -19,7 +19,7 @@ import com.badlogic.gdx.utils.Align; import zero1hd.rhythmbullet.RhythmBullet; import zero1hd.rhythmbullet.audio.MusicController; import zero1hd.rhythmbullet.audio.visualizer.DoubleHorizontalVisualizer; -import zero1hd.rhythmbullet.desktop.audio.visualizer.PCMObtainer; +import zero1hd.rhythmbullet.desktop.audio.PCMObtainer; import zero1hd.rhythmbullet.desktop.graphics.ui.components.MusicControls; import zero1hd.rhythmbullet.desktop.graphics.ui.pages.Page; import zero1hd.rhythmbullet.graphics.ui.components.ScrollText;