aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/java/net/java/games/sound3d/AudioSystem3D.java58
1 files changed, 54 insertions, 4 deletions
diff --git a/src/java/net/java/games/sound3d/AudioSystem3D.java b/src/java/net/java/games/sound3d/AudioSystem3D.java
index ea1affa..91fd45a 100644
--- a/src/java/net/java/games/sound3d/AudioSystem3D.java
+++ b/src/java/net/java/games/sound3d/AudioSystem3D.java
@@ -37,7 +37,7 @@ import net.java.games.joal.*;
import net.java.games.joal.util.WAVData;
import net.java.games.joal.util.WAVLoader;
-import java.io.IOException;
+import java.io.*;
import javax.sound.sampled.UnsupportedAudioFileException;
@@ -137,7 +137,7 @@ public class AudioSystem3D {
*
* @throws IOException If the file cannot be found or some other IO error
* occurs.
- * @throws UnsupportedAudioFileException If the format of the sudio data is
+ * @throws UnsupportedAudioFileException If the format of the audio data is
* not supported
*/
public static Buffer loadBuffer(String filename)
@@ -153,8 +153,37 @@ public class AudioSystem3D {
}
/**
+ * Loads a Sound3D buffer with the specified audio file.
+ *
+ * @param stream contains the stream associated with the audio file.
+ *
+ * @return a new Sound3D buffer containing the audio data from the
+ * passed stream.
+ *
+ * @throws IOException If the stream cannot be read or some other IO error
+ * occurs.
+ * @throws UnsupportedAudioFileException If the format of the audio data is
+ * not supported
+ */
+ public static Buffer loadBuffer(InputStream stream)
+ throws IOException, UnsupportedAudioFileException {
+ Buffer result;
+ Buffer[] tmp = generateBuffers(1);
+ result = tmp[0];
+
+ if (!(stream instanceof BufferedInputStream)) {
+ stream = new BufferedInputStream(stream);
+ }
+ WAVData wd = WAVLoader.loadFromStream(stream);
+
+ result.configure(wd.data, wd.format, wd.freq);
+
+ return result;
+ }
+
+ /**
* Loads a Sound3D Source with the specified audio file. This is
- * functionally equivelant to generateSource(loadBuffer(fileName));
+ * functionally equivalent to generateSource(loadBuffer(fileName));
*
* @param filename the name of the file to load.
*
@@ -163,7 +192,7 @@ public class AudioSystem3D {
*
* @throws IOException If the file cannot be found or some other IO error
* occurs.
- * @throws UnsupportedAudioFileException If the format of the sudio data is
+ * @throws UnsupportedAudioFileException If the format of the audio data is
* not supported
*/
public static Source loadSource(String filename)
@@ -174,6 +203,27 @@ public class AudioSystem3D {
}
/**
+ * Loads a Sound3D Source with the specified audio stream. This is
+ * functionally equivalent to generateSource(loadBuffer(stream));
+ *
+ * @param stream contains the stream associated with the audio file.
+ *
+ * @return a new Sound3D Source containing the audio data from the
+ * passed stream.
+ *
+ * @throws IOException If the file cannot be found or some other IO error
+ * occurs.
+ * @throws UnsupportedAudioFileException If the format of the audio data is
+ * not supported
+ */
+ public static Source loadSource(InputStream stream)
+ throws IOException, UnsupportedAudioFileException {
+ Buffer buffer = loadBuffer(stream);
+
+ return generateSource(buffer);
+ }
+
+ /**
* Generates a set of uninitialized Source3D sources
*
* @param numSources the number of Sound3D sources to generate.