Renderer/src/main/java/electrosphere/menu/debug/ImGuiAudio.java
austin d7619692ed
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
movement audio system for client
2024-08-08 11:33:51 -04:00

77 lines
3.5 KiB
Java

package electrosphere.menu.debug;
import electrosphere.audio.AudioBuffer;
import electrosphere.audio.VirtualAudioSource;
import electrosphere.engine.Globals;
import electrosphere.renderer.ui.imgui.ImGuiWindow;
import electrosphere.renderer.ui.imgui.ImGuiWindow.ImGuiWindowCallback;
import imgui.ImGui;
import imgui.type.ImString;
/**
* Audio debug menus
*/
public class ImGuiAudio {
//audio debug menu
public static ImGuiWindow audioDebugMenu;
//the audio buffer list filter
private static ImString bufferListFilter = new ImString();
/**
* Create audio debug menu
*/
public static void createAudioDebugMenu(){
audioDebugMenu = new ImGuiWindow("Audio");
audioDebugMenu.setCallback(new ImGuiWindowCallback() {
@Override
public void exec() {
//audio engine details
ImGui.text("Audio Engine Details");
ImGui.text("Virtual Audio Source Manager Details");
ImGui.text("Total number active virtual sources: " + Globals.virtualAudioSourceManager.getSourceQueue().size());
if(ImGui.collapsingHeader("Engine Configuration")){
ImGui.text("Current audio device: " + Globals.audioEngine.getDevice());
ImGui.text("Default audio device: " + Globals.audioEngine.getDefaultDevice());
ImGui.text("Has HRTF: " + Globals.audioEngine.getHRTFStatus());
ImGui.text("Listener location: " + Globals.audioEngine.getListener().getPosition());
ImGui.text("Listener eye vector: " + Globals.audioEngine.getListener().getEyeVector());
ImGui.text("Listener up vector: " + Globals.audioEngine.getListener().getUpVector());
}
//only active children
if(ImGui.collapsingHeader("Mapped Virtual Sources")){
for(VirtualAudioSource source : Globals.virtualAudioSourceManager.getMappedSources()){
ImGui.text("Source " + source.getPriority());
ImGui.text(" - Position " + source.getPosition());
ImGui.text(" - Gain " + source.getGain());
ImGui.text(" - Type " + source.getType());
ImGui.text(" - Total time played " + source.getTotalTimePlayed());
ImGui.text(" - Buffer Lenth " + source.getBufferLength());
}
}
//all virtual children
if(ImGui.collapsingHeader("All Virtual Sources")){
for(VirtualAudioSource source : Globals.virtualAudioSourceManager.getSourceQueue()){
ImGui.text("Position " + source.getPosition());
}
}
//all buffers loaded into memory and stats about them
if(ImGui.collapsingHeader("All Loaded Audio Buffers")){
if(ImGui.inputText("Filter", bufferListFilter)){
}
for(AudioBuffer buffer : Globals.assetManager.getAllAudio()){
if(buffer.getFilePath().contains(bufferListFilter.get()) && ImGui.collapsingHeader(buffer.getFilePath())){
ImGui.text("Length: " + buffer.getLength());
}
}
}
}
});
audioDebugMenu.setOpen(false);
Globals.renderingEngine.getImGuiPipeline().addImGuiWindow(audioDebugMenu);
}
}