From dad8fdfb36e81945e205be64830270d9f227385f Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Sat, 10 Jul 2010 14:37:00 +0200 Subject: Sound3DTest cleanup (works). --- test/src/com/jogamp/openal/Sound3DTest.java | 182 +++++++++++++--------------- 1 file changed, 81 insertions(+), 101 deletions(-) diff --git a/test/src/com/jogamp/openal/Sound3DTest.java b/test/src/com/jogamp/openal/Sound3DTest.java index 2cd2c11..e451b9f 100644 --- a/test/src/com/jogamp/openal/Sound3DTest.java +++ b/test/src/com/jogamp/openal/Sound3DTest.java @@ -1,37 +1,37 @@ package com.jogamp.openal; /** -* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* -* -Redistribution of source code must retain the above copyright notice, -* this list of conditions and the following disclaimer. -* -* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may -* be used to endorse or promote products derived from this software without -* 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 MICROSYSTEMS, INC. ("SUN") AND ITS -* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A -* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. -* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT -* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR -* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, -* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* -* You acknowledge that this software is not designed or intended for use in the -* design, construction, operation or maintenance of any nuclear facility. -*/ + * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * -Redistribution of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may + * be used to endorse or promote products derived from this software without + * 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 MICROSYSTEMS, INC. ("SUN") AND ITS + * LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A + * RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. + * IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT + * OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR + * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, + * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS + * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + * + * You acknowledge that this software is not designed or intended for use in the + * design, construction, operation or maintenance of any nuclear facility. + */ import java.io.*; import javax.sound.sampled.*; import com.jogamp.openal.sound3d.*; @@ -42,76 +42,56 @@ import com.jogamp.openal.sound3d.*; */ public class Sound3DTest { - public static float lerp(float v1, float v2, float t) { - float result = 0; - result = v1 + ((v2-v1) * t); - return result; - } + public static float lerp(float v1, float v2, float t) { + float result = 0; + result = v1 + ((v2 - v1) * t); + return result; + } + + public static void main(String[] args) throws IOException, InterruptedException, UnsupportedAudioFileException { + + AudioSystem3D.init(); - public static void main(String[] args) { - try { - AudioSystem3D.init(); - } catch (ALException e) { - e.printStackTrace(); - return; - } - - // create the initial context - this can be collapsed into the init. - Device device = AudioSystem3D.openDevice(null); - Context context = AudioSystem3D.createContext(device); - AudioSystem3D.makeContextCurrent(context); - - // get the listener object - Listener listener = AudioSystem3D.getListener(); - listener.setPosition(0,0,0); - - // load a source and play it - try { - Source source1 = AudioSystem3D.loadSource("lewiscarroll.wav"); - source1.setPosition(0,0,0); - source1.setLooping(true); - source1.play(); - - try { - Thread.sleep(10000); - } catch (InterruptedException e) { - - } - - // move the source - source1.setPosition(1,1,1); - - // move the listener - for(int i = 0; i < 1000; i++) { - float t = ((float)i)/1000f; - float lp = lerp(0f,2f,t); - listener.setPosition(lp,lp,lp); - try { - Thread.sleep(10); - } catch (InterruptedException e) { - - } - } - - // fade listener out. - for(int i = 0; i < 1000; i++) { - float t = ((float)i)/1000f; - float lp = lerp(1f,0f,t); - listener.setGain(lp); - try { - Thread.sleep(10); - } catch (InterruptedException e) { - } - } - - source1.stop(); - source1.delete(); - context.destroy(); - device.close(); - } catch (IOException e) { - e.printStackTrace(); - } catch (UnsupportedAudioFileException e) { - e.printStackTrace(); + // create the initial context - this can be collapsed into the init. + Device device = AudioSystem3D.openDevice(null); + Context context = AudioSystem3D.createContext(device); + AudioSystem3D.makeContextCurrent(context); + + // get the listener object + Listener listener = AudioSystem3D.getListener(); + listener.setPosition(0, 0, 0); + + // load a source and play it + Source source1 = AudioSystem3D.loadSource(Sound3DTest.class.getResourceAsStream("lewiscarroll.wav")); + source1.setPosition(0, 0, 0); + source1.setLooping(true); + source1.play(); + + Thread.sleep(10000); + + // move the source + source1.setPosition(1, 1, 1); + + // move the listener + for (int i = 0; i < 1000; i++) { + float t = ((float) i) / 1000f; + float lp = lerp(0f, 2f, t); + listener.setPosition(lp, lp, lp); + Thread.sleep(10); } - } + + // fade listener out. + for (int i = 0; i < 1000; i++) { + float t = ((float) i) / 1000f; + float lp = lerp(1f, 0f, t); + listener.setGain(lp); + Thread.sleep(10); + } + + source1.stop(); + source1.delete(); + context.destroy(); + device.close(); + + } } -- cgit v1.2.3