From: Brian M. <ma...@us...> - 2002-08-18 13:57:31
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/openal In directory usw-pr-cvs1:/tmp/cvs-serv27997 Modified Files: ALUT.java OpenALTest.java Added Files: ALUTLoadWAVData.java Removed Files: ALUTLoadWAVFile.java Log Message: change: ALUTLoadWAVFile -> ALUTLoadWAVData --- NEW FILE: ALUTLoadWAVData.java --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/openal/ALUTLoadWAVData.java /* * Copyright (c) 2002 Light Weight Java Game Library Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of 'Light Weight Java Game Library' nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.lwjgl.openal; /** * $Id: ALUTLoadWAVData.java,v 1.1 2002/08/18 13:57:28 matzon Exp $ * * This class is used by the alutLoadWAVFile method. Since we * cannot modify values supplied to the method (since JNI is pass by value) * we return this object, which encapsulates the file loaded. Use this class * when unloading using 'alutUnloadWAV'. * * @author Brian Matzon <br...@ma...> * @version $Revision: 1.1 $ */ public class ALUTLoadWAVData { /* format of file */ public final int format; /* pointer to data allocated */ public final int data; /* size of data allocated */ public final int size; /* frequency of sound data */ public final int freq; /* whether or not to loop */ public final boolean loop; /** * Creates an ALUTLoadWAVFile object with specified properties * * @param format OpenAL format specifier * @param data address of data (pointer) * @param size size of the data in bytes * @param freq frequency of the data * @param loop looping indicator for the WAV data */ public ALUTLoadWAVData(int format, int data, int size, int freq, boolean loop) { this.format = format; this.data = data; this.size = size; this.freq = freq; this.loop = loop; } } Index: ALUT.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/openal/ALUT.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/openal/ALUT.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ALUT.java 15 Aug 2002 15:14:42 -0000 1.3 +++ ALUT.java 18 Aug 2002 13:57:28 -0000 1.4 @@ -66,9 +66,17 @@ * Loads a wave file into memory * * @param file name of file to load (in current working directory) - * @return ALUTLoadWAVFile object containing information regarding file loaded + * @return ALUTLoadWAVData object containing information regarding wave data loaded */ - public native ALUTLoadWAVFile loadWAVFile(String file); + public native ALUTLoadWAVData loadWAVFile(String file); + + /** + * Loads a byte buffer into memory + * + * @param buffer byte buffer containing file + * @return ALUTLoadWAVData object containing information regarding wave data loaded + */ + public native ALUTLoadWAVData loadWAVMemory(byte[] buffer); /** * Unloads the specified file from memory Index: OpenALTest.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/openal/OpenALTest.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/openal/OpenALTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- OpenALTest.java 15 Aug 2002 15:14:42 -0000 1.3 +++ OpenALTest.java 18 Aug 2002 13:57:28 -0000 1.4 @@ -31,6 +31,9 @@ */ package org.lwjgl.openal; + +import java.io.*; +import java.net.*; /** * $Id$ * @@ -72,7 +75,12 @@ al.genSources(1, sources); /* load data */ - ALUTLoadWAVFile file = alut.loadWAVFile("footsteps.wav"); + ALUTLoadWAVData file = alut.loadWAVFile("footsteps.wav"); + //byte[] buffer = getBufferFor("footsteps.wav"); + + //System.out.println("buffersize: " + buffer.length); + + //ALUTLoadWAVData file = alut.loadWAVMemory(buffer); /* copy to buffers */ al.bufferData(buffers[0], file.format, file.data, file.size, file.freq); @@ -107,5 +115,41 @@ /* shutdown */ alut.exit(); + } + + private static byte[] getBufferFor(String filename) { + URL url = null; + + String cwd = System.getProperty("user.dir"); + + try { + url = new URL("file:///" + cwd + "/" + filename); + } catch (MalformedURLException mue) { + mue.printStackTrace(); + } + + System.out.println("Attempting to load: " + url); + + try { + BufferedInputStream bis = new BufferedInputStream(url.openStream()); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + int bufferLength = 4096; + byte[] readBuffer = new byte[bufferLength]; + int read = -1; + + while((read = bis.read(readBuffer, 0, bufferLength)) != -1) { + baos.write(readBuffer, 0, read); + } + + //done reading, close + bis.close(); + + return baos.toByteArray(); + } catch (Exception ioe) { + ioe.printStackTrace(); + } + System.exit(-1); + return null; } } --- ALUTLoadWAVFile.java DELETED --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/openal/ALUTLoadWAVFile.java |