From: nathan.sweet Date: Thu, 8 Mar 2012 04:53:29 +0000 (+0000) Subject: OpenALAudio: constructor taking device buffer size and count was not calling this... X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=8a6812e16e8f6b101845e9b65e112b34a1aa36c1;p=mikumikustudio%2Flibgdx-mikumikustudio.git OpenALAudio: constructor taking device buffer size and count was not calling this() to actually initialize the class! OpenALAudioDevice: made buffer size and count fields non-static so tempBuffer can be correct size. --- 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 a183f6c46..1fdbf773b 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(config.audioDeviceBufferCount, config.audioDeviceBufferSize); + audio = new OpenALAudio(16, config.audioDeviceBufferCount, config.audioDeviceBufferSize); files = new JoglFiles(); Gdx.app = JoglApplication.this; 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 d363e1f07..5dbfc1374 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(config.audioDeviceBufferCount, config.audioDeviceBufferSize); + audio = new OpenALAudio(16, 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(config.audioDeviceBufferCount, config.audioDeviceBufferSize); + audio = new OpenALAudio(16, 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(config.audioDeviceBufferCount, config.audioDeviceBufferSize); + audio = new OpenALAudio(16, config.audioDeviceBufferCount, config.audioDeviceBufferSize); files = new LwjglFiles(); input = new LwjglInput(); this.listener = listener; 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 ce3702768..ca1c3e3be 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 @@ -54,8 +54,9 @@ import com.badlogic.gdx.utils.ObjectMap; /** @author Nathan Sweet */ public class OpenALAudio implements Audio { + private final int deviceBufferSize; + private final int deviceBufferCount; private IntArray idleSources, allSources; - /** sound id to source **/ private LongMap soundIdToSource; private IntMap sourceToSoundId; private long nextSoundId = 0; @@ -66,15 +67,13 @@ public class OpenALAudio implements Audio { boolean noDevice = false; public OpenALAudio () { - this(16); + this(16, 512, 9); } - public OpenALAudio(int bufferSize, int bufferCount) { - OpenALAudioDevice.bufferSize = bufferSize; - OpenALAudioDevice.bufferCount = bufferCount; - } - - public OpenALAudio (int simultaneousSources) { + public OpenALAudio (int simultaneousSources, int deviceBufferSize, int deviceBufferCount) { + this.deviceBufferSize = deviceBufferSize; + this.deviceBufferCount = deviceBufferCount; + registerSound("ogg", Ogg.Sound.class); registerMusic("ogg", Ogg.Music.class); registerSound("wav", Wav.Sound.class); @@ -144,7 +143,7 @@ public class OpenALAudio implements Audio { } int obtainSource (boolean isMusic) { - if(noDevice) return 0; + if (noDevice) return 0; for (int i = 0, n = idleSources.size; i < n; i++) { int sourceId = idleSources.get(i); int state = alGetSourcei(sourceId, AL_SOURCE_STATE); @@ -174,7 +173,7 @@ public class OpenALAudio implements Audio { } void freeSource (int sourceID) { - if(noDevice) return; + if (noDevice) return; alSourceStop(sourceID); alSourcei(sourceID, AL_BUFFER, 0); if (sourceToSoundId.containsKey(sourceID)) { @@ -185,7 +184,7 @@ public class OpenALAudio implements Audio { } void freeBuffer (int bufferID) { - if(noDevice) return; + if (noDevice) return; for (int i = 0, n = idleSources.size; i < n; i++) { int sourceID = idleSources.get(i); if (alGetSourcei(sourceID, AL_BUFFER) == bufferID) { @@ -200,7 +199,7 @@ public class OpenALAudio implements Audio { } void stopSourcesWithBuffer (int bufferID) { - if(noDevice) return; + if (noDevice) return; for (int i = 0, n = idleSources.size; i < n; i++) { int sourceID = idleSources.get(i); if (alGetSourcei(sourceID, AL_BUFFER) == bufferID) { @@ -214,7 +213,7 @@ public class OpenALAudio implements Audio { } public void update () { - if(noDevice) return; + if (noDevice) return; for (int i = 0; i < music.size; i++) music.items[i].update(); } @@ -256,7 +255,7 @@ public class OpenALAudio implements Audio { } public void dispose () { - if(noDevice) return; + if (noDevice) return; for (int i = 0, n = allSources.size; i < n; i++) { int sourceID = allSources.get(i); int state = alGetSourcei(sourceID, AL_SOURCE_STATE); @@ -276,49 +275,47 @@ public class OpenALAudio implements Audio { } } - public AudioDevice newAudioDevice (int sampleRate, final boolean isMono) { - if(noDevice) return new AudioDevice() { + public AudioDevice newAudioDevice (int sampleRate, final boolean isMono) { + if (noDevice) return new AudioDevice() { @Override public void writeSamples (float[] samples, int offset, int numSamples) { } - + @Override public void writeSamples (short[] samples, int offset, int numSamples) { } - + @Override public void setVolume (float volume) { } - + @Override public boolean isMono () { return isMono; } - + @Override public int getLatency () { return 0; } - + @Override public void dispose () { } }; - return new OpenALAudioDevice(this, sampleRate, isMono); + return new OpenALAudioDevice(this, sampleRate, isMono, deviceBufferSize, deviceBufferCount); } public AudioRecorder newAudioRecorder (int samplingRate, boolean isMono) { - if(noDevice) return new AudioRecorder() { + if (noDevice) return new AudioRecorder() { @Override public void read (short[] samples, int offset, int numSamples) { } - + @Override public void dispose () { } }; - // BOZO - Write OpenAL recorder. return new JavaSoundAudioRecorder(samplingRate, isMono); } - } 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 bbd0587ba..9a65b6120 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,10 +15,7 @@ import static org.lwjgl.openal.AL10.*; /** @author Nathan Sweet */ public class OpenALAudioDevice implements AudioDevice { - static public int bufferSize = 512; - static public int bufferCount = 9; static private final int bytesPerSample = 2; - static private final ByteBuffer tempBuffer = BufferUtils.createByteBuffer(bufferSize); private final OpenALAudio audio; private final int channels; @@ -29,13 +26,19 @@ public class OpenALAudioDevice implements AudioDevice { private float volume = 1; private float renderedSeconds, secondsPerBuffer; private byte[] bytes; + private final int bufferSize; + private final int bufferCount; + private final ByteBuffer tempBuffer; - public OpenALAudioDevice (OpenALAudio audio, int sampleRate, boolean isMono) { + public OpenALAudioDevice (OpenALAudio audio, int sampleRate, boolean isMono, int bufferSize, int bufferCount) { this.audio = audio; channels = isMono ? 1 : 2; + this.bufferSize = bufferSize; + this.bufferCount = bufferCount; this.format = channels > 1 ? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16; this.sampleRate = sampleRate; secondsPerBuffer = (float)bufferSize / bytesPerSample / channels / sampleRate; + tempBuffer = BufferUtils.createByteBuffer(bufferSize); } public void writeSamples (short[] samples, int offset, int numSamples) { diff --git a/gdx/src/com/badlogic/gdx/Files.java b/gdx/src/com/badlogic/gdx/Files.java index 1a2254f49..5b05af6f2 100644 --- a/gdx/src/com/badlogic/gdx/Files.java +++ b/gdx/src/com/badlogic/gdx/Files.java @@ -44,7 +44,7 @@ public interface Files { * when absolutely (heh) necessary. */ Absolute, - /** Path relative to the private files directory on Android and to the application's root director on the desktop. */ + /** Path relative to the private files directory on Android and to the application's root directory on the desktop. */ Local; }