diff options
Diffstat (limited to 'src/java/net')
-rw-r--r-- | src/java/net/java/games/joal/util/WAVData.java | 40 | ||||
-rw-r--r-- | src/java/net/java/games/joal/util/WAVLoader.java | 22 | ||||
-rw-r--r-- | src/java/net/java/games/sound3d/AudioSystem3D.java | 9 | ||||
-rw-r--r-- | src/java/net/java/games/sound3d/Listener.java | 160 | ||||
-rw-r--r-- | src/java/net/java/games/sound3d/Source.java | 273 | ||||
-rw-r--r-- | src/java/net/java/games/sound3d/Vec3f.java | 35 |
6 files changed, 412 insertions, 127 deletions
diff --git a/src/java/net/java/games/joal/util/WAVData.java b/src/java/net/java/games/joal/util/WAVData.java index 0bc43fa..5e484bf 100644 --- a/src/java/net/java/games/joal/util/WAVData.java +++ b/src/java/net/java/games/joal/util/WAVData.java @@ -35,23 +35,33 @@ package net.java.games.joal.util; import java.nio.ByteBuffer; + /** - * @author Athomas Goldberg + * DOCUMENT ME! * + * @author Athomas Goldberg */ public final class WAVData { - - public final ByteBuffer data; - public final int format; - public final int size; - public final int freq; - public final boolean loop; - - WAVData(ByteBuffer data, int format, int size, int freq, boolean loop) { - this.data = data; - this.format = format; - this.size = size; - this.freq = freq; - this.loop = loop; - } + //DOCUMENT ME! + public final ByteBuffer data; + + //DOCUMENT ME! + public final int format; + + //DOCUMENT ME! + public final int size; + + //DOCUMENT ME! + public final int freq; + + //DOCUMENT ME! + public final boolean loop; + + WAVData(ByteBuffer data, int format, int size, int freq, boolean loop) { + this.data = data; + this.format = format; + this.size = size; + this.freq = freq; + this.loop = loop; + } } diff --git a/src/java/net/java/games/joal/util/WAVLoader.java b/src/java/net/java/games/joal/util/WAVLoader.java index c0235da..6d5e79e 100644 --- a/src/java/net/java/games/joal/util/WAVLoader.java +++ b/src/java/net/java/games/joal/util/WAVLoader.java @@ -33,8 +33,11 @@ package net.java.games.joal.util; +import net.java.games.joal.ALConstants; + import java.io.File; import java.io.IOException; + import java.nio.ByteBuffer; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; @@ -44,19 +47,27 @@ import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.UnsupportedAudioFileException; -import net.java.games.joal.ALConstants; - /** - * @author Athomas Goldberg + * DOCUMENT ME! * + * @author Athomas Goldberg */ public class WAVLoader implements ALConstants { private static final int BUFFER_SIZE = 128000; + /** + * DOCUMENT ME! + * + * @param filename DOCUMENT ME! + * + * @return DOCUMENT ME! + * + * @throws UnsupportedAudioFileException DOCUMENT ME! + * @throws IOException DOCUMENT ME! + */ public static WAVData loadFromFile(String filename) - throws UnsupportedAudioFileException, - IOException { + throws UnsupportedAudioFileException, IOException { WAVData result = null; File soundFile = new File(filename); AudioInputStream aIn = AudioSystem.getAudioInputStream(soundFile); @@ -82,6 +93,7 @@ public class WAVLoader implements ALConstants { aChannel.read(buffer); result = new WAVData(buffer, format, size, freq, false); aIn.close(); + return result; } } diff --git a/src/java/net/java/games/sound3d/AudioSystem3D.java b/src/java/net/java/games/sound3d/AudioSystem3D.java index 66ef9cc..80eac7c 100644 --- a/src/java/net/java/games/sound3d/AudioSystem3D.java +++ b/src/java/net/java/games/sound3d/AudioSystem3D.java @@ -33,16 +33,16 @@ package net.java.games.sound3d; -import java.io.IOException; - -import javax.sound.sampled.UnsupportedAudioFileException; - import net.java.games.joal.AL; import net.java.games.joal.ALC; import net.java.games.joal.ALFactory; import net.java.games.joal.util.WAVData; import net.java.games.joal.util.WAVLoader; +import java.io.IOException; + +import javax.sound.sampled.UnsupportedAudioFileException; + /** * DOCUMENT ME! @@ -162,6 +162,7 @@ public class AudioSystem3D { public static Source loadSource(String filename) throws IOException, UnsupportedAudioFileException { Buffer buffer = loadBuffer(filename); + return generateSource(buffer); } diff --git a/src/java/net/java/games/sound3d/Listener.java b/src/java/net/java/games/sound3d/Listener.java index ad93099..e3509dc 100644 --- a/src/java/net/java/games/sound3d/Listener.java +++ b/src/java/net/java/games/sound3d/Listener.java @@ -35,61 +35,115 @@ package net.java.games.sound3d; import net.java.games.joal.AL; + /** - * @author Athomas Goldberg + * DOCUMENT ME! * + * @author Athomas Goldberg */ public class Listener { - private final AL al; - Listener(AL al) { - this.al = al; - } - - public void setGain(float gain) { - al.alListenerf(AL.AL_GAIN,gain); - } - - public float getGain() { - float[] f = new float[1]; - al.alGetListenerf(AL.AL_GAIN,f); - return f[0]; - } - - public void setPosition(float x, float y, float z) { - al.alListener3f(AL.AL_POSITION,x,y,z); - } - - public void setPosition(Vec3f position) { - al.alListener3f(AL.AL_POSITION,position.v1, position.v2, position.v3); - } - - public Vec3f getPosition() { - Vec3f result = null; - float[] tmp = new float[3]; - al.alGetListenerfv(AL.AL_POSITION,tmp); - result = new Vec3f(tmp[0],tmp[1],tmp[2]); - return result; - } - - public void setVelocity(Vec3f velocity) { - al.alListener3f(AL.AL_VELOCITY,velocity.v1, velocity.v2, velocity.v3); - } - - public Vec3f getVelocity() { - Vec3f result = null; - float[] tmp = new float[3]; - al.alGetListenerfv(AL.AL_VELOCITY,tmp); - result = new Vec3f(tmp[0],tmp[1],tmp[2]); - return result; - } - - public void setOrientation(float[] orientation) { - al.alListenerfv(AL.AL_ORIENTATION,orientation); - } - - public float[] getOrientation() { - float[] tmp = new float[6]; - al.alGetListenerfv(AL.AL_ORIENTATION,tmp); - return tmp; - } + private final AL al; + + Listener(AL al) { + this.al = al; + } + + /** + * DOCUMENT ME! + * + * @param gain DOCUMENT ME! + */ + public void setGain(float gain) { + al.alListenerf(AL.AL_GAIN, gain); + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public float getGain() { + float[] f = new float[1]; + al.alGetListenerf(AL.AL_GAIN, f); + + return f[0]; + } + + /** + * DOCUMENT ME! + * + * @param x DOCUMENT ME! + * @param y DOCUMENT ME! + * @param z DOCUMENT ME! + */ + public void setPosition(float x, float y, float z) { + al.alListener3f(AL.AL_POSITION, x, y, z); + } + + /** + * DOCUMENT ME! + * + * @param position DOCUMENT ME! + */ + public void setPosition(Vec3f position) { + al.alListener3f(AL.AL_POSITION, position.v1, position.v2, position.v3); + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public Vec3f getPosition() { + Vec3f result = null; + float[] tmp = new float[3]; + al.alGetListenerfv(AL.AL_POSITION, tmp); + result = new Vec3f(tmp[0], tmp[1], tmp[2]); + + return result; + } + + /** + * DOCUMENT ME! + * + * @param velocity DOCUMENT ME! + */ + public void setVelocity(Vec3f velocity) { + al.alListener3f(AL.AL_VELOCITY, velocity.v1, velocity.v2, velocity.v3); + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public Vec3f getVelocity() { + Vec3f result = null; + float[] tmp = new float[3]; + al.alGetListenerfv(AL.AL_VELOCITY, tmp); + result = new Vec3f(tmp[0], tmp[1], tmp[2]); + + return result; + } + + /** + * DOCUMENT ME! + * + * @param orientation DOCUMENT ME! + */ + public void setOrientation(float[] orientation) { + al.alListenerfv(AL.AL_ORIENTATION, orientation); + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public float[] getOrientation() { + float[] tmp = new float[6]; + al.alGetListenerfv(AL.AL_ORIENTATION, tmp); + + return tmp; + } } diff --git a/src/java/net/java/games/sound3d/Source.java b/src/java/net/java/games/sound3d/Source.java index f96207c..a6cfd04 100644 --- a/src/java/net/java/games/sound3d/Source.java +++ b/src/java/net/java/games/sound3d/Source.java @@ -37,161 +37,294 @@ import net.java.games.joal.AL; /** - * @author Athomas Goldberg + * DOCUMENT ME! * + * @author Athomas Goldberg */ public final class Source { private final AL al; private final int sourceName; private Buffer buffer; - Source( - AL al, - int sourceName) { + Source(AL al, int sourceName) { this.al = al; this.sourceName = sourceName; } + /** + * DOCUMENT ME! + */ public void play() { al.alSourcePlay(sourceName); } + /** + * DOCUMENT ME! + */ public void pause() { al.alSourcePause(sourceName); } + /** + * DOCUMENT ME! + */ public void stop() { al.alSourceStop(sourceName); } + /** + * DOCUMENT ME! + */ public void rewind() { al.alSourceRewind(sourceName); } + /** + * DOCUMENT ME! + */ public void delete() { al.alDeleteSources(1, new int[] { sourceName }); } + /** + * DOCUMENT ME! + * + * @param pitch DOCUMENT ME! + */ public void setPitch(float pitch) { al.alSourcef(sourceName, AL.AL_PITCH, pitch); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public float getPitch() { - float[] result = new float[1]; - al.alGetSourcef(sourceName, AL.AL_PITCH,result); + float[] result = new float[1]; + al.alGetSourcef(sourceName, AL.AL_PITCH, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param gain DOCUMENT ME! + */ public void setGain(float gain) { al.alSourcef(sourceName, AL.AL_GAIN, gain); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public float getGain() { - float[] result = new float[1]; + float[] result = new float[1]; al.alGetSourcef(sourceName, AL.AL_GAIN, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param maxDistance DOCUMENT ME! + */ public void setMaxDistance(float maxDistance) { al.alSourcef(sourceName, AL.AL_MAX_DISTANCE, maxDistance); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public float getMaxDistance() { - float[] result = new float[1]; - al.alGetSourcef(sourceName, AL.AL_MAX_DISTANCE,result); + float[] result = new float[1]; + al.alGetSourcef(sourceName, AL.AL_MAX_DISTANCE, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param rolloffFactor DOCUMENT ME! + */ public void setRolloffFactor(float rolloffFactor) { al.alSourcef(sourceName, AL.AL_ROLLOFF_FACTOR, rolloffFactor); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public float getRolloffFactor() { - float[] result = new float[1]; + float[] result = new float[1]; al.alGetSourcef(sourceName, AL.AL_ROLLOFF_FACTOR, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param referenceDistance DOCUMENT ME! + */ public void setReferenceDistance(float referenceDistance) { al.alSourcef(sourceName, AL.AL_REFERENCE_DISTANCE, referenceDistance); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public float getReferenceDistance() { - float[] result = new float[1]; + float[] result = new float[1]; al.alGetSourcef(sourceName, AL.AL_REFERENCE_DISTANCE, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param minGain DOCUMENT ME! + */ public void setMinGain(float minGain) { al.alSourcef(sourceName, AL.AL_MIN_GAIN, minGain); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public float getMinGain() { - float[] result = new float[1]; + float[] result = new float[1]; al.alGetSourcef(sourceName, AL.AL_MIN_GAIN, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param maxGain DOCUMENT ME! + */ public void setMaxGain(float maxGain) { al.alSourcef(sourceName, AL.AL_MAX_GAIN, maxGain); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public float getMaxGain() { - float[] result = new float[1]; + float[] result = new float[1]; al.alGetSourcef(sourceName, AL.AL_MAX_GAIN, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param coneOuterGain DOCUMENT ME! + */ public void setConeOuterGain(float coneOuterGain) { al.alSourcef(sourceName, AL.AL_CONE_OUTER_GAIN, coneOuterGain); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public float getConeOuterGain() { - float[] result = new float[1]; + float[] result = new float[1]; al.alGetSourcef(sourceName, AL.AL_CONE_OUTER_GAIN, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param position DOCUMENT ME! + */ public void setPosition(Vec3f position) { al.alSource3f( sourceName, AL.AL_POSITION, position.v1, position.v2, - position.v3); - } - - public void setPosition( - float x, - float y, - float z) { + position.v3 + ); + } + + /** + * DOCUMENT ME! + * + * @param x DOCUMENT ME! + * @param y DOCUMENT ME! + * @param z DOCUMENT ME! + */ + public void setPosition(float x, float y, float z) { al.alSource3f(sourceName, AL.AL_POSITION, x, y, z); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public Vec3f getPosition() { Vec3f result = null; float[] pos = new float[3]; al.alGetSourcefv(sourceName, AL.AL_POSITION, pos); result = new Vec3f(pos[0], pos[1], pos[2]); + return result; } + /** + * DOCUMENT ME! + * + * @param velocity DOCUMENT ME! + */ public void setVelocity(Vec3f velocity) { al.alSource3f( sourceName, AL.AL_VELOCITY, velocity.v1, velocity.v2, - velocity.v3); - } - - public void setVelocity( - float x, - float y, - float z) { + velocity.v3 + ); + } + + /** + * DOCUMENT ME! + * + * @param x DOCUMENT ME! + * @param y DOCUMENT ME! + * @param z DOCUMENT ME! + */ + public void setVelocity(float x, float y, float z) { al.alSource3f(sourceName, AL.AL_VELOCITY, x, y, z); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public Vec3f getVelocity() { Vec3f result = null; float[] vel = new float[3]; @@ -201,22 +334,37 @@ public final class Source { return result; } + /** + * DOCUMENT ME! + * + * @param direction DOCUMENT ME! + */ public void setDirection(Vec3f direction) { al.alSource3f( sourceName, AL.AL_DIRECTION, direction.v1, direction.v2, - direction.v3); - } - - public void setDirection( - float x, - float y, - float z) { + direction.v3 + ); + } + + /** + * DOCUMENT ME! + * + * @param x DOCUMENT ME! + * @param y DOCUMENT ME! + * @param z DOCUMENT ME! + */ + public void setDirection(float x, float y, float z) { al.alSource3f(sourceName, AL.AL_DIRECTION, x, y, z); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public Vec3f getDirection() { Vec3f result = null; float[] dir = new float[3]; @@ -226,43 +374,86 @@ public final class Source { return result; } + /** + * DOCUMENT ME! + * + * @param isRelative DOCUMENT ME! + */ public void setSourceRelative(boolean isRelative) { int rel = isRelative ? 1 : 0; al.alSourcei(sourceName, AL.AL_SOURCE_RELATIVE, rel); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public boolean isSourceRelative() { - int[] result = new int[1]; + int[] result = new int[1]; al.alGetSourcei(sourceName, AL.AL_SOURCE_RELATIVE, result); + return result[0] == 1; } + /** + * DOCUMENT ME! + * + * @param isLooping DOCUMENT ME! + */ public void setLooping(boolean isLooping) { int loop = isLooping ? 1 : 0; al.alSourcei(sourceName, AL.AL_LOOPING, loop); } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public int getBuffersQueued() { - int[] result = new int[1]; + int[] result = new int[1]; al.alGetSourcei(sourceName, AL.AL_BUFFERS_QUEUED, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public int getBuffersProcessed() { - int[] result = new int[1]; + int[] result = new int[1]; al.alGetSourcei(sourceName, AL.AL_BUFFERS_PROCESSED, result); + return result[0]; } + /** + * DOCUMENT ME! + * + * @param buffer DOCUMENT ME! + */ public void setBuffer(Buffer buffer) { al.alSourcei(sourceName, AL.AL_BUFFER, buffer.bufferName); this.buffer = buffer; } + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ public Buffer getBuffer() { return buffer; } + /** + * DOCUMENT ME! + * + * @param buffers DOCUMENT ME! + */ public void queueBuffers(Buffer[] buffers) { int numBuffers = buffers.length; int[] arr = new int[numBuffers]; @@ -274,6 +465,11 @@ public final class Source { al.alSourceQueueBuffers(sourceName, numBuffers, arr); } + /** + * DOCUMENT ME! + * + * @param buffers DOCUMENT ME! + */ public void unqueueBuffers(Buffer[] buffers) { int numBuffers = buffers.length; int[] arr = new int[numBuffers]; @@ -281,6 +477,7 @@ public final class Source { for (int i = 0; i < numBuffers; i++) { arr[i] = buffers[i].bufferName; } + al.alSourceUnqueueBuffers(sourceName, numBuffers, arr); } } diff --git a/src/java/net/java/games/sound3d/Vec3f.java b/src/java/net/java/games/sound3d/Vec3f.java index 4823812..a97c304 100644 --- a/src/java/net/java/games/sound3d/Vec3f.java +++ b/src/java/net/java/games/sound3d/Vec3f.java @@ -16,7 +16,6 @@ * specific prior written permission. * * This software is provided "AS IS," without a warranty of any kind. -* * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS @@ -35,18 +34,30 @@ package net.java.games.sound3d; /** - * @author Athomas Goldberg + * DOCUMENT ME! * + * @author Athomas Goldberg */ public final class Vec3f { - - public final float v1; - public final float v2; - public final float v3; - - public Vec3f(float v1, float v2, float v3) { - this.v1 = v1; - this.v2 = v2; - this.v3 = v3; - } + //DOCUMENT ME! + public final float v1; + + //DOCUMENT ME! + public final float v2; + + //DOCUMENT ME! + public final float v3; + + /** + * Creates a new Vec3f object. + * + * @param v1 DOCUMENT ME! + * @param v2 DOCUMENT ME! + * @param v3 DOCUMENT ME! + */ + public Vec3f(float v1, float v2, float v3) { + this.v1 = v1; + this.v2 = v2; + this.v3 = v3; + } } |