Преглед на файлове

Audio tests: Used non-deprecated constructor, replaced "AudioApp" class by SimpleApplication

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8149 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
roo..om преди 14 години
родител
ревизия
1acd324d02

+ 0 - 84
engine/src/test/jme3test/audio/AudioApp.java

@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2009-2010 jMonkeyEngine
- * 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 'jMonkeyEngine' 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 jme3test.audio;
-
-import com.jme3.audio.AudioRenderer;
-import com.jme3.asset.AssetManager;
-import com.jme3.asset.DesktopAssetManager;
-import com.jme3.audio.AudioContext;
-import com.jme3.audio.Listener;
-import com.jme3.system.AppSettings;
-import com.jme3.system.JmeSystem;
-
-public class AudioApp {
-
-    private static final float UPDATE_RATE = 0.01f;
-
-    protected AssetManager assetManager;
-    protected Listener listener;
-    protected AudioRenderer audioRenderer;
-
-    public AudioApp(){
-        AppSettings settings = new AppSettings(true);
-        settings.setRenderer(null); // force dummy renderer (?)
-        settings.setAudioRenderer(AppSettings.LWJGL_OPENAL);
-        audioRenderer = JmeSystem.newAudioRenderer(settings);
-        audioRenderer.initialize();
-        assetManager = new DesktopAssetManager(true);
-
-        listener = new Listener();
-        audioRenderer.setListener(listener);
-    }
-
-    public void initAudioApp(){
-        AudioContext.setAudioRenderer(audioRenderer);
-    }
-
-    public void updateAudioApp(float tpf){
-    }
-
-    public void start(){
-        initAudioApp();
-
-        while (true){
-            updateAudioApp(UPDATE_RATE);
-            audioRenderer.update(UPDATE_RATE);
-
-            try{
-                Thread.sleep((int) (UPDATE_RATE * 1000f));
-            }catch (InterruptedException ex){
-                ex.printStackTrace();
-            }
-        }
-    }
-}

+ 48 - 66
engine/src/test/jme3test/audio/TestAmbient.java

@@ -1,87 +1,69 @@
 /*
 /*
- * Copyright (c) 2009-2010 jMonkeyEngine
- * All rights reserved.
+ * Copyright (c) 2009-2010 jMonkeyEngine All rights reserved.
  *
  *
  * Redistribution and use in source and binary forms, with or without
  * 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.
+ * 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
  * * 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.
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
  *
  *
  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
- *   may be used to endorse or promote products derived from this software
- *   without specific prior written permission.
+ * 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.
+ * 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 jme3test.audio;
 package jme3test.audio;
 
 
+import com.jme3.app.SimpleApplication;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.AudioNode;
-//import com.jme3.audio.PointAudioSource;
-import com.jme3.math.FastMath;
+import com.jme3.audio.Environment;
 import com.jme3.math.Vector3f;
 import com.jme3.math.Vector3f;
 
 
-public class TestAmbient extends AudioApp {
-
-    private AudioNode river, nature, waves;
-//    private PointAudioSource waves;
-    private float time = 0;
-    private float nextTime = 1;
-
-    public static void main(String[] args){
-        TestAmbient test = new TestAmbient();
-        test.start();
-    }
-
-    @Override
-    public void initAudioApp(){
-        waves  = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", false);
-        waves.setPositional(true);
+public class TestAmbient extends SimpleApplication {
 
 
-        nature = new AudioNode(assetManager, "Sound/Environment/Nature.ogg", true);
-//        river  = new AudioSource(manager, "sounds/river.ogg");
+  private AudioNode nature, waves;
 
 
-//        float[] eax = new float[]
-//            {15,	38.0f,	0.300f,	-1000,	-3300,	0,		1.49f,	0.54f,	1.00f,  -2560,	0.162f, 0.00f,0.00f,0.00f,	-229,	0.088f,		0.00f,0.00f,0.00f,	0.125f, 1.000f, 0.250f, 0.000f, -5.0f,  5000.0f,	250.0f, 0.00f,	0x3f }
-//            ;
-//
-//        Environment env = new Environment(eax);
-//        ar.setEnvironment(env);
+  public static void main(String[] args) {
+    TestAmbient test = new TestAmbient();
+    test.start();
+  }
 
 
-        waves.setLocalTranslation(new Vector3f(4, -1, 30));
-        waves.setMaxDistance(5);
-        waves.setRefDistance(1);
-        
-        nature.setVolume(3);
-        audioRenderer.playSourceInstance(waves);
-        audioRenderer.playSource(nature);
-    }
+  @Override
+  public void simpleInitApp() {
+    float[] eax = new float[]{15, 38.0f, 0.300f, -1000, -3300, 0,
+      1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f, 0.00f,
+      0.00f, -229, 0.088f, 0.00f, 0.00f, 0.00f, 0.125f, 1.000f,
+      0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f};
+    Environment env = new Environment(eax);
+    audioRenderer.setEnvironment(env);
 
 
-    @Override
-    public void updateAudioApp(float tpf){
-        time += tpf;
+    waves = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", false);
+    waves.setPositional(true);
+    waves.setLocalTranslation(new Vector3f(4, -1, 30));
+    waves.setMaxDistance(5);
+    waves.setRefDistance(1);
 
 
-        if (time > nextTime){
-            
-            time = 0;
-            nextTime = FastMath.nextRandomFloat() * 2 + 0.5f;
-        }
-    }
+    nature = new AudioNode(assetManager, "Sound/Environment/River.ogg", true);
+    nature.setVolume(3);
+    audioRenderer.playSourceInstance(waves);
+    audioRenderer.playSource(nature);
+  }
 
 
+  @Override
+  public void simpleUpdate(float tpf) {
+  }
 }
 }

+ 6 - 15
engine/src/test/jme3test/audio/TestDoppler.java

@@ -32,12 +32,10 @@
 
 
 package jme3test.audio;
 package jme3test.audio;
 
 
-import com.jme3.asset.plugins.FileLocator;
+import com.jme3.app.SimpleApplication;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.Environment;
 import com.jme3.audio.Environment;
-import com.jme3.audio.LowPassFilter;
 import com.jme3.math.FastMath;
 import com.jme3.math.FastMath;
-import com.jme3.math.Quaternion;
 import com.jme3.math.Vector3f;
 import com.jme3.math.Vector3f;
 import org.lwjgl.openal.AL10;
 import org.lwjgl.openal.AL10;
 import org.lwjgl.openal.AL11;
 import org.lwjgl.openal.AL11;
@@ -45,31 +43,23 @@ import org.lwjgl.openal.AL11;
 /**
 /**
  * Test Doppler Effect
  * Test Doppler Effect
  */
  */
-public class TestDoppler extends AudioApp {
+public class TestDoppler extends SimpleApplication {
 
 
     private AudioNode ufo;
     private AudioNode ufo;
 
 
     private float x = 20, z = 0;
     private float x = 20, z = 0;
-    
     private float rate     = -0.05f;
     private float rate     = -0.05f;
     private float xDist    = 20;
     private float xDist    = 20;
     private float zDist    = 5;
     private float zDist    = 5;
-    
     private float angle    = FastMath.TWO_PI;
     private float angle    = FastMath.TWO_PI;
     
     
-    private LowPassFilter filter = new LowPassFilter(1, 1);
-
     public static void main(String[] args){
     public static void main(String[] args){
         TestDoppler test = new TestDoppler();
         TestDoppler test = new TestDoppler();
         test.start();
         test.start();
     }
     }
 
 
     @Override
     @Override
-    public void initAudioApp(){
-        Quaternion q = new Quaternion();
-        q.lookAt(new Vector3f(0, 0, -1f), Vector3f.UNIT_Y);
-        listener.setRotation(q);
-        
+    public void simpleInitApp(){
         audioRenderer.setEnvironment(Environment.Dungeon);
         audioRenderer.setEnvironment(Environment.Dungeon);
         AL10.alDistanceModel(AL11.AL_EXPONENT_DISTANCE);
         AL10.alDistanceModel(AL11.AL_EXPONENT_DISTANCE);
         
         
@@ -83,7 +73,7 @@ public class TestDoppler extends AudioApp {
     }
     }
 
 
     @Override
     @Override
-    public void updateAudioApp(float tpf){
+    public void simpleUpdate(float tpf){
         //float x  = (float) (Math.cos(angle) * xDist);
         //float x  = (float) (Math.cos(angle) * xDist);
         float dx = (float)  Math.sin(angle) * xDist; 
         float dx = (float)  Math.sin(angle) * xDist; 
         
         
@@ -107,7 +97,8 @@ public class TestDoppler extends AudioApp {
         ufo.setLocalTranslation(x, 0, z);
         ufo.setLocalTranslation(x, 0, z);
         ufo.updateGeometricState();
         ufo.updateGeometricState();
         
         
-        System.out.println("LOC: " + (int)x +", " + (int)z + ", VEL: " + (int)dx + ", " + (int)dz);
+        System.out.println("LOC: " + (int)x +", " + (int)z + 
+                ", VEL: " + (int)dx + ", " + (int)dz);
     }
     }
 
 
 }
 }

+ 7 - 6
engine/src/test/jme3test/audio/TestMusicStreaming.java

@@ -32,10 +32,11 @@
 
 
 package jme3test.audio;
 package jme3test.audio;
 
 
+import com.jme3.app.SimpleApplication;
 import com.jme3.asset.plugins.UrlLocator;
 import com.jme3.asset.plugins.UrlLocator;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.AudioNode;
 
 
-public class TestMusicStreaming extends AudioApp {
+public class TestMusicStreaming extends SimpleApplication {
 
 
     public static void main(String[] args){
     public static void main(String[] args){
         TestMusicStreaming test = new TestMusicStreaming();
         TestMusicStreaming test = new TestMusicStreaming();
@@ -43,13 +44,13 @@ public class TestMusicStreaming extends AudioApp {
     }
     }
 
 
     @Override
     @Override
-    public void updateAudioApp(float tpf){
-    }
-
-    @Override
-    public void initAudioApp(){
+    public void simpleInitApp(){
         assetManager.registerLocator("http://www.vorbis.com/music/", UrlLocator.class);
         assetManager.registerLocator("http://www.vorbis.com/music/", UrlLocator.class);
         AudioNode src = new AudioNode(assetManager, "Lumme-Badloop.ogg", true);
         AudioNode src = new AudioNode(assetManager, "Lumme-Badloop.ogg", true);
         audioRenderer.playSource(src);
         audioRenderer.playSource(src);
     }
     }
+
+    @Override
+    public void simpleUpdate(float tpf){}
+
 }
 }

+ 6 - 5
engine/src/test/jme3test/audio/TestOgg.java

@@ -32,10 +32,11 @@
 
 
 package jme3test.audio;
 package jme3test.audio;
 
 
+import com.jme3.app.SimpleApplication;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.LowPassFilter;
 import com.jme3.audio.LowPassFilter;
 
 
-public class TestOgg extends AudioApp {
+public class TestOgg extends SimpleApplication {
 
 
     private AudioNode src;
     private AudioNode src;
 
 
@@ -45,19 +46,19 @@ public class TestOgg extends AudioApp {
     }
     }
 
 
     @Override
     @Override
-    public void initAudioApp(){
+    public void simpleInitApp(){
         System.out.println("Playing without filter");
         System.out.println("Playing without filter");
-        src = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Foot steps.ogg", true);
+        src = new AudioNode(assetManager, "Sound/Effects/Foot steps.ogg", true);
         audioRenderer.playSource(src);
         audioRenderer.playSource(src);
     }
     }
 
 
     @Override
     @Override
-    public void updateAudioApp(float tpf){
+    public void simpleUpdate(float tpf){
         if (src.getStatus() != AudioNode.Status.Playing){
         if (src.getStatus() != AudioNode.Status.Playing){
             audioRenderer.deleteAudioData(src.getAudioData());
             audioRenderer.deleteAudioData(src.getAudioData());
 
 
             System.out.println("Playing with low pass filter");
             System.out.println("Playing with low pass filter");
-            src = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Foot steps.ogg", true);
+            src = new AudioNode(assetManager, "Sound/Effects/Foot steps.ogg", true);
             src.setDryFilter(new LowPassFilter(1f, .1f));
             src.setDryFilter(new LowPassFilter(1f, .1f));
             src.setVolume(3);
             src.setVolume(3);
             audioRenderer.playSource(src);
             audioRenderer.playSource(src);

+ 54 - 59
engine/src/test/jme3test/audio/TestReverb.java

@@ -1,84 +1,79 @@
 /*
 /*
- * Copyright (c) 2009-2010 jMonkeyEngine
- * All rights reserved.
+ * Copyright (c) 2009-2010 jMonkeyEngine All rights reserved.
  *
  *
  * Redistribution and use in source and binary forms, with or without
  * 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.
+ * 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
  * * 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.
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
  *
  *
  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
- *   may be used to endorse or promote products derived from this software
- *   without specific prior written permission.
+ * 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.
+ * 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 jme3test.audio;
 package jme3test.audio;
 
 
+import com.jme3.app.SimpleApplication;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.Environment;
 import com.jme3.audio.Environment;
-//import com.jme3.audio.PointAudioSource;
 import com.jme3.math.FastMath;
 import com.jme3.math.FastMath;
 import com.jme3.math.Vector3f;
 import com.jme3.math.Vector3f;
 
 
-public class TestReverb extends AudioApp {
-
-    private AudioNode src;
-    private float time = 0;
-    private float nextTime = 1;
+public class TestReverb extends SimpleApplication {
 
 
-    public static void main(String[] args){
-        TestReverb test = new TestReverb();
-        test.start();
-    }
+  private AudioNode src;
+  private float time = 0;
+  private float nextTime = 1;
 
 
-    @Override
-    public void initAudioApp(){
-        src = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Bang.wav");
+  public static void main(String[] args) {
+    TestReverb test = new TestReverb();
+    test.start();
+  }
 
 
-        float[] eax = new float[]
-            {15,	38.0f,	0.300f,	-1000,	-3300,	0,		1.49f,	0.54f,	1.00f,  -2560,	0.162f, 0.00f,0.00f,0.00f,	-229,	0.088f,		0.00f,0.00f,0.00f,	0.125f, 1.000f, 0.250f, 0.000f, -5.0f,  5000.0f,	250.0f, 0.00f,	0x3f }
-            ;
+  @Override
+  public void simpleInitApp() {
+    src = new AudioNode(assetManager, "Sound/Effects/Bang.wav");
 
 
-//        ar.setEnvironment(new Environment(eax));
-        Environment env = Environment.Cavern;
-        audioRenderer.setEnvironment(env);
-    }
+    float[] eax = new float[]{15, 38.0f, 0.300f, -1000, -3300, 0,
+      1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f, 0.00f, 0.00f,
+      -229, 0.088f, 0.00f, 0.00f, 0.00f, 0.125f, 1.000f, 0.250f,
+      0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f};
+    audioRenderer.setEnvironment(new Environment(eax));
+    Environment env = Environment.Cavern;
+    audioRenderer.setEnvironment(env);
+  }
 
 
-    @Override
-    public void updateAudioApp(float tpf){
-        time += tpf;
+  @Override
+  public void simpleUpdate(float tpf) {
+    time += tpf;
 
 
-        if (time > nextTime){
-            Vector3f v = new Vector3f();
-            v.setX(FastMath.nextRandomFloat());
-            v.setY(FastMath.nextRandomFloat());
-            v.setZ(FastMath.nextRandomFloat());
-            v.multLocal(40, 2, 40);
-            v.subtractLocal(20, 1, 20);
+    if (time > nextTime) {
+      Vector3f v = new Vector3f();
+      v.setX(FastMath.nextRandomFloat());
+      v.setY(FastMath.nextRandomFloat());
+      v.setZ(FastMath.nextRandomFloat());
+      v.multLocal(40, 2, 40);
+      v.subtractLocal(20, 1, 20);
 
 
-            src.setLocalTranslation(v);
-            audioRenderer.playSourceInstance(src);
-            time = 0;
-            nextTime = FastMath.nextRandomFloat() * 2 + 0.5f;
-        }
+      src.setLocalTranslation(v);
+      audioRenderer.playSourceInstance(src);
+      time = 0;
+      nextTime = FastMath.nextRandomFloat() * 2 + 0.5f;
     }
     }
-
+  }
 }
 }

+ 40 - 50
engine/src/test/jme3test/audio/TestWav.java

@@ -1,70 +1,60 @@
 /*
 /*
- * Copyright (c) 2009-2010 jMonkeyEngine
- * All rights reserved.
+ * Copyright (c) 2009-2010 jMonkeyEngine All rights reserved.
  *
  *
  * Redistribution and use in source and binary forms, with or without
  * 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.
+ * 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
  * * 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.
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
  *
  *
  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
- *   may be used to endorse or promote products derived from this software
- *   without specific prior written permission.
+ * 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.
+ * 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 jme3test.audio;
 package jme3test.audio;
 
 
+import com.jme3.app.SimpleApplication;
 import com.jme3.audio.AudioNode;
 import com.jme3.audio.AudioNode;
 
 
-public class TestWav extends AudioApp {
-
-    private float time = 0;
-    private AudioNode src;
+public class TestWav extends SimpleApplication {
 
 
-    public static void main(String[] args){
-        TestWav test = new TestWav();
-        test.start();
-    }
+  private float time = 0;
+  private AudioNode src;
 
 
-    public static void sleep(float time){
-        try{
-            Thread.sleep((long) (time * 1000));
-        }catch (InterruptedException ex){
-        }
-    }
+  public static void main(String[] args) {
+    TestWav test = new TestWav();
+    test.start();
+  }
 
 
-    @Override
-    public void updateAudioApp(float tpf){
-        time += tpf;
-        if (time > .1f){
-            audioRenderer.playSourceInstance(src);
-            time = 0;
-        }
-        
+  @Override
+  public void simpleUpdate(float tpf) {
+    time += tpf;
+    if (time > 1f) {
+      audioRenderer.playSourceInstance(src);
+      time = 0;
     }
     }
 
 
-    @Override
-    public void initAudioApp(){
-        src = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Gun.wav", false);
-        src.setLooping(false);
-    }
+  }
 
 
+  @Override
+  public void simpleInitApp() {
+    src = new AudioNode(assetManager, "Sound/Effects/Gun.wav", false);
+    src.setLooping(false);
+  }
 }
 }