1 /* 2 * Copyright (c) 2009-2010 jMonkeyEngine 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 package com.jme3.audio; 34 35 /** 36 * Interface to be implemented by audio renderers. 37 * 38 * @author Kirill Vainer 39 */ 40 public interface AudioRenderer { 41 42 /** 43 * @param listener The listener camera, all 3D sounds will be 44 * oriented around the listener. 45 */ setListener(Listener listener)46 public void setListener(Listener listener); 47 48 /** 49 * Sets the environment, used for reverb effects. 50 * 51 * @see AudioNode#setReverbEnabled(boolean) 52 * @param env The environment to set. 53 */ setEnvironment(Environment env)54 public void setEnvironment(Environment env); 55 playSourceInstance(AudioNode src)56 public void playSourceInstance(AudioNode src); playSource(AudioNode src)57 public void playSource(AudioNode src); pauseSource(AudioNode src)58 public void pauseSource(AudioNode src); stopSource(AudioNode src)59 public void stopSource(AudioNode src); 60 updateSourceParam(AudioNode src, AudioParam param)61 public void updateSourceParam(AudioNode src, AudioParam param); updateListenerParam(Listener listener, ListenerParam param)62 public void updateListenerParam(Listener listener, ListenerParam param); 63 deleteFilter(Filter filter)64 public void deleteFilter(Filter filter); deleteAudioData(AudioData ad)65 public void deleteAudioData(AudioData ad); 66 67 /** 68 * Initializes the renderer. Should be the first method called 69 * before using the system. 70 */ initialize()71 public void initialize(); 72 73 /** 74 * Update the audio system. Must be called periodically. 75 * @param tpf Time per frame. 76 */ update(float tpf)77 public void update(float tpf); 78 79 /** 80 * Cleanup/destroy the audio system. Call this when app closes. 81 */ cleanup()82 public void cleanup(); 83 } 84