diff options
Diffstat (limited to 'src/jogl/classes/com/jogamp/audio')
5 files changed, 90 insertions, 90 deletions
diff --git a/src/jogl/classes/com/jogamp/audio/windows/waveout/Audio.java b/src/jogl/classes/com/jogamp/audio/windows/waveout/Audio.java index 83f5e4ebd..fef9d61dd 100644 --- a/src/jogl/classes/com/jogamp/audio/windows/waveout/Audio.java +++ b/src/jogl/classes/com/jogamp/audio/windows/waveout/Audio.java @@ -36,7 +36,7 @@ import java.io.*; public class Audio { private static Audio instance = null; - private Mixer mixer; + private final Mixer mixer; public synchronized static Audio getInstance() { if (instance == null) { @@ -53,9 +53,9 @@ public class Audio { return mixer; } - public Track newTrack(File file) throws IOException + public Track newTrack(final File file) throws IOException { - Track res = new Track(file); + final Track res = new Track(file); mixer.add(res); return res; } diff --git a/src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java b/src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java index b36fd2637..a84da723f 100644 --- a/src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java +++ b/src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java @@ -48,12 +48,12 @@ public class Mixer { private volatile boolean shutdownDone; // Windows Event object - private long event; + private final long event; private volatile ArrayList<Track> tracks = new ArrayList<Track>(); - private Vec3f leftSpeakerPosition = new Vec3f(-1, 0, 0); - private Vec3f rightSpeakerPosition = new Vec3f( 1, 0, 0); + private final Vec3f leftSpeakerPosition = new Vec3f(-1, 0, 0); + private final Vec3f rightSpeakerPosition = new Vec3f( 1, 0, 0); private float falloffFactor = 1.0f; @@ -64,7 +64,7 @@ public class Mixer { private Mixer() { event = CreateEvent(); new FillerThread().start(); - MixerThread m = new MixerThread(); + final MixerThread m = new MixerThread(); m.setPriority(Thread.MAX_PRIORITY - 1); m.start(); } @@ -73,14 +73,14 @@ public class Mixer { return mixer; } - synchronized void add(Track track) { - ArrayList<Track> newTracks = new ArrayList<Track>(tracks); + synchronized void add(final Track track) { + final ArrayList<Track> newTracks = new ArrayList<Track>(tracks); newTracks.add(track); tracks = newTracks; } - synchronized void remove(Track track) { - ArrayList<Track> newTracks = new ArrayList<Track>(tracks); + synchronized void remove(final Track track) { + final ArrayList<Track> newTracks = new ArrayList<Track>(tracks); newTracks.remove(track); tracks = newTracks; } @@ -88,14 +88,14 @@ public class Mixer { // NOTE: due to a bug on the APX device, we only have mono sounds, // so we currently only pay attention to the position of the left // speaker - public void setLeftSpeakerPosition(float x, float y, float z) { + public void setLeftSpeakerPosition(final float x, final float y, final float z) { leftSpeakerPosition.set(x, y, z); } // NOTE: due to a bug on the APX device, we only have mono sounds, // so we currently only pay attention to the position of the left // speaker - public void setRightSpeakerPosition(float x, float y, float z) { + public void setRightSpeakerPosition(final float x, final float y, final float z) { rightSpeakerPosition.set(x, y, z); } @@ -109,7 +109,7 @@ public class Mixer { falloffFactor + r^2 </PRE> */ - public void setFalloffFactor(float factor) { + public void setFalloffFactor(final float factor) { falloffFactor = factor; } @@ -119,7 +119,7 @@ public class Mixer { SetEvent(event); try { shutdownLock.wait(); - } catch (InterruptedException e) { + } catch (final InterruptedException e) { } } } @@ -132,13 +132,13 @@ public class Mixer { @Override public void run() { while (!shutdown) { - List<Track> curTracks = tracks; + final List<Track> curTracks = tracks; - for (Iterator<Track> iter = curTracks.iterator(); iter.hasNext(); ) { - Track track = iter.next(); + for (final Iterator<Track> iter = curTracks.iterator(); iter.hasNext(); ) { + final Track track = iter.next(); try { track.fill(); - } catch (IOException e) { + } catch (final IOException e) { e.printStackTrace(); remove(track); } @@ -147,7 +147,7 @@ public class Mixer { try { // Run ten times per second Thread.sleep(100); - } catch (InterruptedException e) { + } catch (final InterruptedException e) { e.printStackTrace(); } } @@ -158,7 +158,7 @@ public class Mixer { // Temporary mixing buffer // Interleaved left and right channels float[] mixingBuffer; - private Vec3f temp = new Vec3f(); + private final Vec3f temp = new Vec3f(); MixerThread() { super("Mixer Thread"); @@ -171,7 +171,7 @@ public class Mixer { public void run() { while (!shutdown) { // Get the next buffer - long mixerBuffer = getNextMixerBuffer(); + final long mixerBuffer = getNextMixerBuffer(); if (mixerBuffer != 0) { ByteBuffer buf = getMixerBufferData(mixerBuffer); @@ -203,27 +203,27 @@ public class Mixer { // This assertion should be in place if we have stereo if ((mixingBuffer.length % 2) != 0) { - String msg = "FATAL ERROR: odd number of samples in the mixing buffer"; + final String msg = "FATAL ERROR: odd number of samples in the mixing buffer"; System.out.println(msg); throw new InternalError(msg); } // Run down all of the registered tracks mixing them in - List<Track> curTracks = tracks; + final List<Track> curTracks = tracks; - for (Iterator<Track> iter = curTracks.iterator(); iter.hasNext(); ) { - Track track = iter.next(); + for (final Iterator<Track> iter = curTracks.iterator(); iter.hasNext(); ) { + final Track track = iter.next(); // Consider only playing tracks if (track.isPlaying()) { // First recompute its gain - Vec3f pos = track.getPosition(); - float leftGain = gain(pos, leftSpeakerPosition); - float rightGain = gain(pos, rightSpeakerPosition); + final Vec3f pos = track.getPosition(); + final float leftGain = gain(pos, leftSpeakerPosition); + final float rightGain = gain(pos, rightSpeakerPosition); // Now mix it in int i = 0; while (i < mixingBuffer.length) { if (track.hasNextSample()) { - float sample = track.nextSample(); + final float sample = track.nextSample(); mixingBuffer[i++] = sample * leftGain; mixingBuffer[i++] = sample * rightGain; } else { @@ -240,7 +240,7 @@ public class Mixer { // Now that we have our data, send it down to the card int outPos = 0; for (int i = 0; i < mixingBuffer.length; i++) { - short val = (short) mixingBuffer[i]; + final short val = (short) mixingBuffer[i]; buf.put(outPos++, (byte) val); buf.put(outPos++, (byte) (val >> 8)); } @@ -279,9 +279,9 @@ public class Mixer { // falloffFactor // ------------------- // falloffFactor + r^2 - private float gain(Vec3f pos, Vec3f speakerPos) { + private float gain(final Vec3f pos, final Vec3f speakerPos) { temp.sub(pos, speakerPos); - float dotp = temp.dot(temp); + final float dotp = temp.dot(temp); return (falloffFactor / (falloffFactor + dotp)); } } @@ -321,8 +321,8 @@ public class Mixer { private static Constructor directByteBufferConstructor; private static Map createdBuffers = new HashMap(); // Map Long, ByteBuffer - private static ByteBuffer newDirectByteBuffer(long address, long capacity) { - Long key = new Long(address); + private static ByteBuffer newDirectByteBuffer(final long address, final long capacity) { + final Long key = new Long(address); ByteBuffer buf = (ByteBuffer) createdBuffers.get(key); if (buf == null) { buf = newDirectByteBufferImpl(address, capacity); @@ -332,17 +332,17 @@ public class Mixer { } return buf; } - private static ByteBuffer newDirectByteBufferImpl(long address, long capacity) { + private static ByteBuffer newDirectByteBufferImpl(final long address, final long capacity) { if (directByteBufferClass == null) { try { directByteBufferClass = Class.forName("java.nio.DirectByteBuffer"); - byte[] tmp = new byte[0]; + final byte[] tmp = new byte[0]; directByteBufferConstructor = directByteBufferClass.getDeclaredConstructor(new Class[] { Integer.TYPE, tmp.getClass(), Integer.TYPE }); directByteBufferConstructor.setAccessible(true); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); } } @@ -355,7 +355,7 @@ public class Mixer { null, new Integer((int) address) }); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); } } diff --git a/src/jogl/classes/com/jogamp/audio/windows/waveout/SoundBuffer.java b/src/jogl/classes/com/jogamp/audio/windows/waveout/SoundBuffer.java index 01346553c..18698f5ea 100644 --- a/src/jogl/classes/com/jogamp/audio/windows/waveout/SoundBuffer.java +++ b/src/jogl/classes/com/jogamp/audio/windows/waveout/SoundBuffer.java @@ -35,16 +35,16 @@ package com.jogamp.audio.windows.waveout; import java.io.*; class SoundBuffer { - private byte[] data; - private boolean needsByteSwap; + private final byte[] data; + private final boolean needsByteSwap; private int numBytes; - private int bytesPerSample; + private final int bytesPerSample; private int numSamples; private boolean playing; private boolean empty; // Note: needsByteSwap argument makes assumptions about the format - SoundBuffer(int size, int bytesPerSample, boolean needsByteSwap) { + SoundBuffer(final int size, final int bytesPerSample, final boolean needsByteSwap) { this.bytesPerSample = bytesPerSample; this.needsByteSwap = needsByteSwap; data = new byte[size * bytesPerSample]; @@ -55,7 +55,7 @@ class SoundBuffer { return playing; } - void playing(boolean playing) { + void playing(final boolean playing) { this.playing = playing; } @@ -63,11 +63,11 @@ class SoundBuffer { return empty; } - void empty(boolean empty) { + void empty(final boolean empty) { this.empty = empty; } - void fill(InputStream input) throws IOException { + void fill(final InputStream input) throws IOException { synchronized(this) { if (playing) { throw new IllegalStateException("Can not fill a buffer that is playing"); @@ -75,7 +75,7 @@ class SoundBuffer { } empty(true); - int num = input.read(data); + final int num = input.read(data); if (num > 0) { numBytes = num; numSamples = numBytes / bytesPerSample; @@ -96,8 +96,8 @@ class SoundBuffer { // This is called by the mixer and must be extremely fast // FIXME: may want to reconsider use of floating point at this point // FIXME: assumes all sounds are of the same format to avoid normalization - float getSample(int sample) { - int startByte = sample * bytesPerSample; + float getSample(final int sample) { + final int startByte = sample * bytesPerSample; // FIXME: assumes no more than 4 bytes per sample int res = 0; if (needsByteSwap) { @@ -106,7 +106,7 @@ class SoundBuffer { res |= (data[i] & 0xff); } } else { - int endByte = startByte + bytesPerSample - 1; + final int endByte = startByte + bytesPerSample - 1; for (int i = startByte; i <= endByte; i++) { res <<= 8; res |= (data[i] & 0xff); @@ -119,6 +119,6 @@ class SoundBuffer { res = (byte) res; } - return (float) res; + return res; } } diff --git a/src/jogl/classes/com/jogamp/audio/windows/waveout/Track.java b/src/jogl/classes/com/jogamp/audio/windows/waveout/Track.java index 98a787478..5e55786ac 100644 --- a/src/jogl/classes/com/jogamp/audio/windows/waveout/Track.java +++ b/src/jogl/classes/com/jogamp/audio/windows/waveout/Track.java @@ -56,7 +56,7 @@ public class Track { // If we're playing the file, this is its input stream private InputStream input; // Keep around the file name - private File file; + private final File file; // Whether we're playing this sound private boolean playing; // Whether we're looping this sound @@ -64,7 +64,7 @@ public class Track { // The position of this sound; defaults to being at the origin private volatile Vec3f position = new Vec3f(); - Track(File file) throws IOException { + Track(final File file) throws IOException { if (!file.getName().endsWith(".rawsound")) { throw new IOException("Unsupported file format (currently supports only raw sounds)"); } @@ -96,7 +96,7 @@ public class Track { openInput(); // Fill it immediately fill(); - } catch (IOException e) { + } catch (final IOException e) { e.printStackTrace(); return; } @@ -109,7 +109,7 @@ public class Track { return playing; } - public synchronized void setLooping(boolean looping) { + public synchronized void setLooping(final boolean looping) { this.looping = looping; } @@ -117,7 +117,7 @@ public class Track { return looping; } - public void setPosition(float x, float y, float z) { + public void setPosition(final float x, final float y, final float z) { position = new Vec3f(x, y, z); } @@ -125,7 +125,7 @@ public class Track { if (input == null) { return; } - SoundBuffer curBuffer = fillingBuffer; + final SoundBuffer curBuffer = fillingBuffer; if (!curBuffer.empty()) { return; } @@ -152,7 +152,7 @@ public class Track { private float leftGain; private float rightGain; - void setLeftGain(float leftGain) { + void setLeftGain(final float leftGain) { this.leftGain = leftGain; } @@ -160,7 +160,7 @@ public class Track { return leftGain; } - void setRightGain(float rightGain) { + void setRightGain(final float rightGain) { this.rightGain = rightGain; } @@ -180,7 +180,7 @@ public class Track { // This is called by the mixer and must be extremely fast float nextSample() { - float res = activeBuffer.getSample(samplePosition++); + final float res = activeBuffer.getSample(samplePosition++); ++samplesRead; if (!hasNextSample()) { swapBuffers(); @@ -193,7 +193,7 @@ public class Track { } synchronized void swapBuffers() { - SoundBuffer tmp = activeBuffer; + final SoundBuffer tmp = activeBuffer; activeBuffer = fillingBuffer; fillingBuffer = tmp; fillingBuffer.empty(true); diff --git a/src/jogl/classes/com/jogamp/audio/windows/waveout/Vec3f.java b/src/jogl/classes/com/jogamp/audio/windows/waveout/Vec3f.java index 79fb80169..831b25c91 100644 --- a/src/jogl/classes/com/jogamp/audio/windows/waveout/Vec3f.java +++ b/src/jogl/classes/com/jogamp/audio/windows/waveout/Vec3f.java @@ -48,11 +48,11 @@ class Vec3f { public Vec3f() {} - public Vec3f(Vec3f arg) { + public Vec3f(final Vec3f arg) { set(arg); } - public Vec3f(float x, float y, float z) { + public Vec3f(final float x, final float y, final float z) { set(x, y, z); } @@ -60,18 +60,18 @@ class Vec3f { return new Vec3f(this); } - public void set(Vec3f arg) { + public void set(final Vec3f arg) { set(arg.x, arg.y, arg.z); } - public void set(float x, float y, float z) { + public void set(final float x, final float y, final float z) { this.x = x; this.y = y; this.z = z; } /** Sets the ith component, 0 <= i < 3 */ - public void set(int i, float val) { + public void set(final int i, final float val) { switch (i) { case 0: x = val; break; case 1: y = val; break; @@ -81,7 +81,7 @@ class Vec3f { } /** Gets the ith component, 0 <= i < 3 */ - public float get(int i) { + public float get(final int i) { switch (i) { case 0: return x; case 1: return y; @@ -94,11 +94,11 @@ class Vec3f { public float y() { return y; } public float z() { return z; } - public void setX(float x) { this.x = x; } - public void setY(float y) { this.y = y; } - public void setZ(float z) { this.z = z; } + public void setX(final float x) { this.x = x; } + public void setY(final float y) { this.y = y; } + public void setZ(final float z) { this.z = z; } - public float dot(Vec3f arg) { + public float dot(final Vec3f arg) { return x * arg.x + y * arg.y + z * arg.z; } @@ -111,87 +111,87 @@ class Vec3f { } public void normalize() { - float len = length(); + final float len = length(); if (len == 0.0f) return; scale(1.0f / len); } /** Returns this * val; creates new vector */ - public Vec3f times(float val) { - Vec3f tmp = new Vec3f(this); + public Vec3f times(final float val) { + final Vec3f tmp = new Vec3f(this); tmp.scale(val); return tmp; } /** this = this * val */ - public void scale(float val) { + public void scale(final float val) { x *= val; y *= val; z *= val; } /** Returns this + arg; creates new vector */ - public Vec3f plus(Vec3f arg) { - Vec3f tmp = new Vec3f(); + public Vec3f plus(final Vec3f arg) { + final Vec3f tmp = new Vec3f(); tmp.add(this, arg); return tmp; } /** this = this + b */ - public void add(Vec3f b) { + public void add(final Vec3f b) { add(this, b); } /** this = a + b */ - public void add(Vec3f a, Vec3f b) { + public void add(final Vec3f a, final Vec3f b) { x = a.x + b.x; y = a.y + b.y; z = a.z + b.z; } /** Returns this + s * arg; creates new vector */ - public Vec3f addScaled(float s, Vec3f arg) { - Vec3f tmp = new Vec3f(); + public Vec3f addScaled(final float s, final Vec3f arg) { + final Vec3f tmp = new Vec3f(); tmp.addScaled(this, s, arg); return tmp; } /** this = a + s * b */ - public void addScaled(Vec3f a, float s, Vec3f b) { + public void addScaled(final Vec3f a, final float s, final Vec3f b) { x = a.x + s * b.x; y = a.y + s * b.y; z = a.z + s * b.z; } /** Returns this - arg; creates new vector */ - public Vec3f minus(Vec3f arg) { - Vec3f tmp = new Vec3f(); + public Vec3f minus(final Vec3f arg) { + final Vec3f tmp = new Vec3f(); tmp.sub(this, arg); return tmp; } /** this = this - b */ - public void sub(Vec3f b) { + public void sub(final Vec3f b) { sub(this, b); } /** this = a - b */ - public void sub(Vec3f a, Vec3f b) { + public void sub(final Vec3f a, final Vec3f b) { x = a.x - b.x; y = a.y - b.y; z = a.z - b.z; } /** Returns this cross arg; creates new vector */ - public Vec3f cross(Vec3f arg) { - Vec3f tmp = new Vec3f(); + public Vec3f cross(final Vec3f arg) { + final Vec3f tmp = new Vec3f(); tmp.cross(this, arg); return tmp; } /** this = a cross b. NOTE: "this" must be a different vector than both a and b. */ - public void cross(Vec3f a, Vec3f b) { + public void cross(final Vec3f a, final Vec3f b) { x = a.y * b.z - a.z * b.y; y = a.z * b.x - a.x * b.z; z = a.x * b.y - a.y * b.x; @@ -200,7 +200,7 @@ class Vec3f { /** Sets each component of this vector to the product of the component with the corresponding component of the argument vector. */ - public void componentMul(Vec3f arg) { + public void componentMul(final Vec3f arg) { x *= arg.x; y *= arg.y; z *= arg.z; |