From fc023b0041d2f292af0c68603fc4cf9d7c3e0b90 Mon Sep 17 00:00:00 2001 From: sashok724 Date: Sat, 20 Jul 2013 15:22:14 -0700 Subject: [PATCH] Update WaveData.java Fix of BigEndian incorrect reading --- src/java/org/lwjgl/util/WaveData.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/java/org/lwjgl/util/WaveData.java b/src/java/org/lwjgl/util/WaveData.java index 55b0d795..f8c09ea7 100644 --- a/src/java/org/lwjgl/util/WaveData.java +++ b/src/java/org/lwjgl/util/WaveData.java @@ -218,7 +218,7 @@ public class WaveData { && total < buf.length) { total += read; } - buffer = convertAudioBytes(buf, audioformat.getSampleSizeInBits() == 16); + buffer = convertAudioBytes(buf, audioformat.getSampleSizeInBits() == 16, audioformat.isBigEndian() ? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN); } catch (IOException ioe) { return null; } @@ -237,11 +237,11 @@ public class WaveData { return wavedata; } - private static ByteBuffer convertAudioBytes(byte[] audio_bytes, boolean two_bytes_data) { + private static ByteBuffer convertAudioBytes(byte[] audio_bytes, boolean two_bytes_data, ByteOrder order) { ByteBuffer dest = ByteBuffer.allocateDirect(audio_bytes.length); dest.order(ByteOrder.nativeOrder()); ByteBuffer src = ByteBuffer.wrap(audio_bytes); - src.order(ByteOrder.LITTLE_ENDIAN); + src.order(order); if (two_bytes_data) { ShortBuffer dest_short = dest.asShortBuffer(); ShortBuffer src_short = src.asShortBuffer();