From 5823a5cf9807eac212b50d5e8c2313e987536455 Mon Sep 17 00:00:00 2001 From: badlogicgames Date: Wed, 7 Mar 2012 14:25:39 +0000 Subject: [PATCH] [fixed] issue 685, configurable buffer size and buffer count for OpenALAudioDevice. Set the parameters in LwjglApplicationConfiguration or JoglApplicationConfiguration. --- .../src/com/badlogic/gdx/backends/jogl/JoglApplication.java | 2 +- .../badlogic/gdx/backends/jogl/JoglApplicationConfiguration.java | 4 ++++ .../src/com/badlogic/gdx/backends/lwjgl/LwjglApplication.java | 6 +++--- .../badlogic/gdx/backends/lwjgl/LwjglApplicationConfiguration.java | 4 ++++ .../src/com/badlogic/gdx/backends/openal/OpenALAudio.java | 5 +++++ .../src/com/badlogic/gdx/backends/openal/OpenALAudioDevice.java | 4 ++-- .../src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java | 4 +++- 7 files changed, 22 insertions(+), 7 deletions(-) diff --git a/backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglApplication.java b/backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglApplication.java index 1b3ea1669..a183f6c46 100644 --- a/backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglApplication.java +++ b/backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglApplication.java @@ -111,7 +111,7 @@ public final class JoglApplication implements Application { JoglNativesLoader.load(); graphics = new JoglGraphics(listener, config); input = new JoglInput(graphics.getCanvas()); - audio = new OpenALAudio(); + audio = new OpenALAudio(config.audioDeviceBufferCount, config.audioDeviceBufferSize); files = new JoglFiles(); Gdx.app = JoglApplication.this; diff --git a/backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglApplicationConfiguration.java b/backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglApplicationConfiguration.java index 82fa6fa9d..d86552ced 100644 --- a/backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglApplicationConfiguration.java +++ b/backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglApplicationConfiguration.java @@ -40,6 +40,10 @@ public class JoglApplicationConfiguration { public boolean vSyncEnabled = true; /** title of application **/ public String title = "Jogl Application"; + /** the audio device buffer size in samples **/ + public int audioDeviceBufferSize = 512; + /** the audio device buffer count **/ + public int audioDeviceBufferCount = 9; /** Sets the r, g, b and a bits per channel based on the given {@link DisplayMode} and sets the fullscreen flag to true. * @param mode */ diff --git a/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglApplication.java b/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglApplication.java index baf6e07ba..d363e1f07 100644 --- a/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglApplication.java +++ b/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglApplication.java @@ -59,7 +59,7 @@ public class LwjglApplication implements Application { config.useGL20 = useGL2; config.vSyncEnabled = true; graphics = new LwjglGraphics(config); - audio = new OpenALAudio(); + audio = new OpenALAudio(config.audioDeviceBufferCount, config.audioDeviceBufferSize); files = new LwjglFiles(); input = new LwjglInput(); this.listener = listener; @@ -76,7 +76,7 @@ public class LwjglApplication implements Application { LwjglNativesLoader.load(); graphics = new LwjglGraphics(config); - audio = new OpenALAudio(); + audio = new OpenALAudio(config.audioDeviceBufferCount, config.audioDeviceBufferSize); files = new LwjglFiles(); input = new LwjglInput(); this.listener = listener; @@ -111,7 +111,7 @@ public class LwjglApplication implements Application { LwjglNativesLoader.load(); graphics = new LwjglGraphics(canvas, config); - audio = new OpenALAudio(); + audio = new OpenALAudio(config.audioDeviceBufferCount, config.audioDeviceBufferSize); files = new LwjglFiles(); input = new LwjglInput(); this.listener = listener; diff --git a/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglApplicationConfiguration.java b/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglApplicationConfiguration.java index 77bb5acb1..b98e43d50 100644 --- a/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglApplicationConfiguration.java +++ b/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglApplicationConfiguration.java @@ -45,6 +45,10 @@ public class LwjglApplicationConfiguration { public boolean forceExit = true; /** whether the window is resizable **/ public boolean resizable = true; + /** the audio device buffer size in samples **/ + public int audioDeviceBufferSize = 512; + /** the audio device buffer count **/ + public int audioDeviceBufferCount = 9; /** Sets the r, g, b and a bits per channel based on the given {@link DisplayMode} and sets the fullscreen flag to true. * @param mode */ diff --git a/backends/gdx-openal/src/com/badlogic/gdx/backends/openal/OpenALAudio.java b/backends/gdx-openal/src/com/badlogic/gdx/backends/openal/OpenALAudio.java index 484999463..d30baab13 100644 --- a/backends/gdx-openal/src/com/badlogic/gdx/backends/openal/OpenALAudio.java +++ b/backends/gdx-openal/src/com/badlogic/gdx/backends/openal/OpenALAudio.java @@ -69,6 +69,11 @@ public class OpenALAudio implements Audio { this(16); } + public OpenALAudio(int bufferSize, int bufferCount) { + OpenALAudioDevice.bufferSize = bufferSize; + OpenALAudioDevice.bufferCount = bufferCount; + } + public OpenALAudio (int simultaneousSources) { registerSound("ogg", Ogg.Sound.class); registerMusic("ogg", Ogg.Music.class); diff --git a/backends/gdx-openal/src/com/badlogic/gdx/backends/openal/OpenALAudioDevice.java b/backends/gdx-openal/src/com/badlogic/gdx/backends/openal/OpenALAudioDevice.java index 1b8be694b..bbd0587ba 100644 --- a/backends/gdx-openal/src/com/badlogic/gdx/backends/openal/OpenALAudioDevice.java +++ b/backends/gdx-openal/src/com/badlogic/gdx/backends/openal/OpenALAudioDevice.java @@ -15,8 +15,8 @@ import static org.lwjgl.openal.AL10.*; /** @author Nathan Sweet */ public class OpenALAudioDevice implements AudioDevice { - static private final int bufferSize = 512; - static private final int bufferCount = 9; + static public int bufferSize = 512; + static public int bufferCount = 9; static private final int bytesPerSample = 2; static private final ByteBuffer tempBuffer = BufferUtils.createByteBuffer(bufferSize); diff --git a/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java b/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java index 638316396..b0e85735e 100644 --- a/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java +++ b/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java @@ -27,10 +27,12 @@ import com.badlogic.gdx.tests.FrameBufferTest; import com.badlogic.gdx.tests.FreeTypeTest; import com.badlogic.gdx.tests.InterpolationTest; import com.badlogic.gdx.tests.JpegTest; +import com.badlogic.gdx.tests.MusicTest; import com.badlogic.gdx.tests.ParallaxTest; import com.badlogic.gdx.tests.ShadowMappingTest; import com.badlogic.gdx.tests.SoftKeyboardTest; import com.badlogic.gdx.tests.SortedSpriteTest; +import com.badlogic.gdx.tests.SoundTest; import com.badlogic.gdx.tests.SpriteBatchOriginScaleTest; import com.badlogic.gdx.tests.SpriteBatchShaderTest; import com.badlogic.gdx.tests.StageTest; @@ -50,7 +52,7 @@ public class LwjglDebugStarter { new SharedLibraryLoader("../../extensions/gdx-image/libs/gdx-image-natives.jar").load("gdx-image"); new SharedLibraryLoader("../../extensions/gdx-freetype/libs/gdx-freetype-natives.jar").load("gdx-freetype"); - GdxTest test = new FreeTypeTest(); + GdxTest test = new MusicTest(); LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); config.width = 800; config.height = 480; -- 2.11.0