From a799043299d26e5b9068572963691da1a9e3439b Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 1 Aug 2024 17:22:23 -0400 Subject: [PATCH] test fixes --- .../java/electrosphere/audio/AudioEngine.java | 19 ++++++++++++++- .../java/electrosphere/audio/AudioUtils.java | 4 ++-- .../renderer/ui/ElementManager.java | 24 ++++++++++--------- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/main/java/electrosphere/audio/AudioEngine.java b/src/main/java/electrosphere/audio/AudioEngine.java index 8db799cf..d669673a 100644 --- a/src/main/java/electrosphere/audio/AudioEngine.java +++ b/src/main/java/electrosphere/audio/AudioEngine.java @@ -24,10 +24,16 @@ import static org.lwjgl.system.MemoryUtil.NULL; * Main class that handles audio processing */ public class AudioEngine { + + //Controls whether the engine initialized or not + boolean initialized = false; + //openal device private long device; + //openal context private long context; + //the listener data for the audio landscape private AudioListener listener; @@ -62,7 +68,9 @@ public class AudioEngine { } catch (Exception ex) { LoggerInterface.loggerEngine.ERROR("Error initializing audio device", ex); } - listener = new AudioListener(); + if(initialized){ + listener = new AudioListener(); + } } /** @@ -100,6 +108,7 @@ public class AudioEngine { LoggerInterface.loggerAudio.DEBUG("Make Context Current"); ALC10.alcMakeContextCurrent(context); AL.createCapabilities(deviceCaps); + this.initialized = true; } /** @@ -213,6 +222,14 @@ public class AudioEngine { public AudioListener getListener(){ return listener; } + + /** + * Checks if the engine has initialized or not + * @return true if initialized, false otherwise + */ + public boolean initialized(){ + return this.initialized; + } diff --git a/src/main/java/electrosphere/audio/AudioUtils.java b/src/main/java/electrosphere/audio/AudioUtils.java index ad7d7d85..e35448ba 100644 --- a/src/main/java/electrosphere/audio/AudioUtils.java +++ b/src/main/java/electrosphere/audio/AudioUtils.java @@ -22,7 +22,7 @@ public class AudioUtils { protected static AudioSource playAudioAtLocation(String audioFile, Vector3f position, boolean loops){ AudioSource rVal = null; AudioBuffer buffer = Globals.assetManager.fetchAudio(audioFile); - if(buffer != null){ + if(buffer != null && Globals.audioEngine.initialized()){ rVal = new AudioSource(loops,false); rVal.setBuffer(buffer.getBufferId()); rVal.setGain(Globals.audioEngine.getGain()); @@ -54,7 +54,7 @@ public class AudioUtils { protected static AudioSource playAudio(String audioFile, boolean loops){ AudioSource rVal = null; AudioBuffer buffer = Globals.assetManager.fetchAudio(FileUtils.sanitizeFilePath(audioFile)); - if(buffer != null){ + if(buffer != null && Globals.audioEngine.initialized()){ rVal = new AudioSource(loops,false); rVal.setBuffer(buffer.getBufferId()); rVal.setGain(Globals.audioEngine.getGain()); diff --git a/src/main/java/electrosphere/renderer/ui/ElementManager.java b/src/main/java/electrosphere/renderer/ui/ElementManager.java index 8595d3c5..c95f4af3 100644 --- a/src/main/java/electrosphere/renderer/ui/ElementManager.java +++ b/src/main/java/electrosphere/renderer/ui/ElementManager.java @@ -132,18 +132,20 @@ public class ElementManager { } public void focusFirstElement(){ - List focusables = getFocusableList(elementList.get(elementList.size() - 1),new LinkedList()); - if(focusables.size() > 0){ - if(currentFocusedElement != null){ - currentFocusedElement.handleEvent(new FocusEvent(false)); + if(elementList.size() > 0){ + List focusables = getFocusableList(elementList.get(elementList.size() - 1),new LinkedList()); + if(focusables.size() > 0){ + if(currentFocusedElement != null){ + currentFocusedElement.handleEvent(new FocusEvent(false)); + } + currentFocusedElement = focusables.get(0); + currentFocusedElement.handleEvent(new FocusEvent(true)); + } else { + if(currentFocusedElement != null){ + currentFocusedElement.handleEvent(new FocusEvent(false)); + } + currentFocusedElement = null; } - currentFocusedElement = focusables.get(0); - currentFocusedElement.handleEvent(new FocusEvent(true)); - } else { - if(currentFocusedElement != null){ - currentFocusedElement.handleEvent(new FocusEvent(false)); - } - currentFocusedElement = null; } }