parent
							
								
									3c0763a4c8
								
							
						
					
					
						commit
						d3f392d689
					
				@ -0,0 +1,259 @@ | 
				
			||||
package junk; | 
				
			||||
//package mightypork.gamecore.resources.audio;
 | 
				
			||||
//
 | 
				
			||||
//
 | 
				
			||||
//import java.nio.FloatBuffer;
 | 
				
			||||
//import java.util.ArrayList;
 | 
				
			||||
//import java.util.List;
 | 
				
			||||
//
 | 
				
			||||
//import mightypork.gamecore.backend.lwjgl.SlickAudio;
 | 
				
			||||
//import mightypork.gamecore.core.modules.App;
 | 
				
			||||
//import mightypork.gamecore.resources.ResourceLoadRequest;
 | 
				
			||||
//import mightypork.gamecore.resources.audio.players.EffectPlayer;
 | 
				
			||||
//import mightypork.gamecore.resources.audio.players.LoopPlayer;
 | 
				
			||||
//import mightypork.gamecore.util.BufferHelper;
 | 
				
			||||
//import mightypork.utils.eventbus.clients.BusNode;
 | 
				
			||||
//import mightypork.utils.interfaces.Destroyable;
 | 
				
			||||
//import mightypork.utils.interfaces.Updateable;
 | 
				
			||||
//import mightypork.utils.logging.Log;
 | 
				
			||||
//import mightypork.utils.math.constraints.vect.Vect;
 | 
				
			||||
//import mightypork.utils.math.constraints.vect.var.VectVar;
 | 
				
			||||
//
 | 
				
			||||
//import org.lwjgl.openal.AL;
 | 
				
			||||
//import org.lwjgl.openal.AL10;
 | 
				
			||||
//import org.newdawn.slick.openal.SoundStore;
 | 
				
			||||
//
 | 
				
			||||
//
 | 
				
			||||
///**
 | 
				
			||||
// * Sound system class (only one instance should be made per application)
 | 
				
			||||
// * 
 | 
				
			||||
// * @author Ondřej Hruška (MightyPork)
 | 
				
			||||
// */
 | 
				
			||||
//@Deprecated
 | 
				
			||||
//public class SoundSystem extends BusNode implements Updateable, Destroyable {
 | 
				
			||||
//	
 | 
				
			||||
//	private static final Vect INITIAL_LISTENER_POS = Vect.ZERO;
 | 
				
			||||
//	private static final int MAX_SOURCES = 256;
 | 
				
			||||
//	
 | 
				
			||||
//	private static VectVar listener = Vect.makeVar();
 | 
				
			||||
//	private static boolean soundSystemInited = false;
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Set listener pos
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @param pos
 | 
				
			||||
//	 */
 | 
				
			||||
//	public static void setListener(Vect pos)
 | 
				
			||||
//	{
 | 
				
			||||
//		listener.setTo(pos);
 | 
				
			||||
//		final FloatBuffer buf3 = BufferHelper.alloc(3);
 | 
				
			||||
//		final FloatBuffer buf6 = BufferHelper.alloc(6);
 | 
				
			||||
//		buf3.clear();
 | 
				
			||||
//		BufferHelper.fill(buf3, (float) pos.x(), (float) pos.y(), (float) pos.z());
 | 
				
			||||
//		AL10.alListener(AL10.AL_POSITION, buf3);
 | 
				
			||||
//		buf3.clear();
 | 
				
			||||
//		BufferHelper.fill(buf3, 0, 0, 0);
 | 
				
			||||
//		AL10.alListener(AL10.AL_VELOCITY, buf3);
 | 
				
			||||
//		buf6.clear();
 | 
				
			||||
//		BufferHelper.fill(buf6, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f);
 | 
				
			||||
//		AL10.alListener(AL10.AL_ORIENTATION, buf6);
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * @return listener coordinate
 | 
				
			||||
//	 */
 | 
				
			||||
//	public static Vect getListener()
 | 
				
			||||
//	{
 | 
				
			||||
//		return listener;
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	// -- instance --
 | 
				
			||||
//	
 | 
				
			||||
//	private final Volume masterVolume = new Volume(1D);
 | 
				
			||||
//	private final Volume effectsVolume = new JointVolume(masterVolume);
 | 
				
			||||
//	private final Volume loopsVolume = new JointVolume(masterVolume);
 | 
				
			||||
//	
 | 
				
			||||
//	private final List<LoopPlayer> loopPlayers = new ArrayList<>();
 | 
				
			||||
//	private final List<DeferredAudio> resources = new ArrayList<>();
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * @param busAccess app access
 | 
				
			||||
//	 */
 | 
				
			||||
//	public SoundSystem() {
 | 
				
			||||
//		
 | 
				
			||||
//		if (!soundSystemInited) {
 | 
				
			||||
//			soundSystemInited = true;
 | 
				
			||||
//			
 | 
				
			||||
//			try {
 | 
				
			||||
//				SoundStore.get().setMaxSources(MAX_SOURCES);
 | 
				
			||||
//				SoundStore.get().init();
 | 
				
			||||
//				setListener(INITIAL_LISTENER_POS);
 | 
				
			||||
//				
 | 
				
			||||
//				App.bus().send(new AudioReadyEvent());
 | 
				
			||||
//			} catch (final Throwable t) {
 | 
				
			||||
//				Log.e("Error initializing sound system.", t);
 | 
				
			||||
//			}
 | 
				
			||||
//		}
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	@Override
 | 
				
			||||
//	public void destroy()
 | 
				
			||||
//	{
 | 
				
			||||
//		for (final DeferredAudio r : resources) {
 | 
				
			||||
//			r.destroy();
 | 
				
			||||
//		}
 | 
				
			||||
//		
 | 
				
			||||
//		SoundStore.get().clear();
 | 
				
			||||
//		AL.destroy();
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	@Override
 | 
				
			||||
//	public void update(double delta)
 | 
				
			||||
//	{
 | 
				
			||||
//		for (final Updateable lp : loopPlayers) {
 | 
				
			||||
//			lp.update(delta);
 | 
				
			||||
//		}
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Create effect resource
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @param resource resource path
 | 
				
			||||
//	 * @param pitch default pitch (1 = unchanged)
 | 
				
			||||
//	 * @param gain default gain (0-1)
 | 
				
			||||
//	 * @return player
 | 
				
			||||
//	 */
 | 
				
			||||
//	public EffectPlayer createEffect(String resource, double pitch, double gain)
 | 
				
			||||
//	{
 | 
				
			||||
//		return new EffectPlayer(createResource(resource), pitch, gain, effectsVolume);
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Register loop resource (music / effect loop)
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @param resource resource path
 | 
				
			||||
//	 * @param pitch default pitch (1 = unchanged)
 | 
				
			||||
//	 * @param gain default gain (0-1)
 | 
				
			||||
//	 * @param fadeIn default time for fadeIn
 | 
				
			||||
//	 * @param fadeOut default time for fadeOut
 | 
				
			||||
//	 * @return player
 | 
				
			||||
//	 */
 | 
				
			||||
//	public LoopPlayer createLoop(String resource, double pitch, double gain, double fadeIn, double fadeOut)
 | 
				
			||||
//	{
 | 
				
			||||
//		final LoopPlayer p = new LoopPlayer(createResource(resource), pitch, gain, loopsVolume);
 | 
				
			||||
//		p.setFadeTimes(fadeIn, fadeOut);
 | 
				
			||||
//		loopPlayers.add(p);
 | 
				
			||||
//		return p;
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Create {@link DeferredAudio} for a resource
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @param res a resource name
 | 
				
			||||
//	 * @return the resource
 | 
				
			||||
//	 * @throws IllegalArgumentException if resource is already registered
 | 
				
			||||
//	 */
 | 
				
			||||
//	private DeferredAudio createResource(String res)
 | 
				
			||||
//	{
 | 
				
			||||
//		final DeferredAudio a = new SlickAudio(res);
 | 
				
			||||
//		App.bus().send(new ResourceLoadRequest(a));
 | 
				
			||||
//		resources.add(a);
 | 
				
			||||
//		return a;
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Fade out all loops (ie. for screen transitions)
 | 
				
			||||
//	 */
 | 
				
			||||
//	public void fadeOutAllLoops()
 | 
				
			||||
//	{
 | 
				
			||||
//		for (final LoopPlayer p : loopPlayers) {
 | 
				
			||||
//			p.fadeOut();
 | 
				
			||||
//		}
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Pause all loops (leave volume unchanged)
 | 
				
			||||
//	 */
 | 
				
			||||
//	public void pauseAllLoops()
 | 
				
			||||
//	{
 | 
				
			||||
//		for (final LoopPlayer p : loopPlayers) {
 | 
				
			||||
//			p.pause();
 | 
				
			||||
//		}
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Set level of master volume
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @param d level
 | 
				
			||||
//	 */
 | 
				
			||||
//	public void setMasterVolume(double d)
 | 
				
			||||
//	{
 | 
				
			||||
//		masterVolume.set(d);
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Set level of effects volume
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @param d level
 | 
				
			||||
//	 */
 | 
				
			||||
//	public void setEffectsVolume(double d)
 | 
				
			||||
//	{
 | 
				
			||||
//		effectsVolume.set(d);
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Set level of music volume
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @param d level
 | 
				
			||||
//	 */
 | 
				
			||||
//	public void setMusicVolume(double d)
 | 
				
			||||
//	{
 | 
				
			||||
//		loopsVolume.set(d);
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Get level of master volume
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @return level
 | 
				
			||||
//	 */
 | 
				
			||||
//	public double getMasterVolume()
 | 
				
			||||
//	{
 | 
				
			||||
//		return masterVolume.get();
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Get level of effects volume
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @return level
 | 
				
			||||
//	 */
 | 
				
			||||
//	public double getEffectsVolume()
 | 
				
			||||
//	{
 | 
				
			||||
//		return effectsVolume.get();
 | 
				
			||||
//	}
 | 
				
			||||
//	
 | 
				
			||||
//	
 | 
				
			||||
//	/**
 | 
				
			||||
//	 * Get level of music volume
 | 
				
			||||
//	 * 
 | 
				
			||||
//	 * @return level
 | 
				
			||||
//	 */
 | 
				
			||||
//	public double getMusicVolume()
 | 
				
			||||
//	{
 | 
				
			||||
//		return loopsVolume.get();
 | 
				
			||||
//	}
 | 
				
			||||
//}
 | 
				
			||||
@ -1,15 +0,0 @@ | 
				
			||||
package mightypork.gamecore.resources.audio; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
import mightypork.utils.eventbus.BusEvent; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
public class AudioReadyEvent extends BusEvent<AudioReadyListener> { | 
				
			||||
	 | 
				
			||||
	@Override | 
				
			||||
	protected void handleBy(AudioReadyListener handler) | 
				
			||||
	{ | 
				
			||||
		handler.onInputReady(); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
} | 
				
			||||
@ -1,7 +0,0 @@ | 
				
			||||
package mightypork.gamecore.resources.audio; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
public interface AudioReadyListener { | 
				
			||||
	 | 
				
			||||
	void onInputReady(); | 
				
			||||
} | 
				
			||||
@ -1,257 +0,0 @@ | 
				
			||||
package mightypork.gamecore.resources.audio; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
import java.nio.FloatBuffer; | 
				
			||||
import java.util.ArrayList; | 
				
			||||
import java.util.List; | 
				
			||||
 | 
				
			||||
import mightypork.gamecore.backend.lwjgl.SlickAudio; | 
				
			||||
import mightypork.gamecore.core.modules.App; | 
				
			||||
import mightypork.gamecore.resources.ResourceLoadRequest; | 
				
			||||
import mightypork.gamecore.resources.audio.players.EffectPlayer; | 
				
			||||
import mightypork.gamecore.resources.audio.players.LoopPlayer; | 
				
			||||
import mightypork.gamecore.util.BufferHelper; | 
				
			||||
import mightypork.utils.eventbus.clients.BusNode; | 
				
			||||
import mightypork.utils.interfaces.Destroyable; | 
				
			||||
import mightypork.utils.interfaces.Updateable; | 
				
			||||
import mightypork.utils.logging.Log; | 
				
			||||
import mightypork.utils.math.constraints.vect.Vect; | 
				
			||||
import mightypork.utils.math.constraints.vect.var.VectVar; | 
				
			||||
 | 
				
			||||
import org.lwjgl.openal.AL; | 
				
			||||
import org.lwjgl.openal.AL10; | 
				
			||||
import org.newdawn.slick.openal.SoundStore; | 
				
			||||
 | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Sound system class (only one instance should be made per application) | 
				
			||||
 *  | 
				
			||||
 * @author Ondřej Hruška (MightyPork) | 
				
			||||
 */ | 
				
			||||
public class SoundSystem extends BusNode implements Updateable, Destroyable { | 
				
			||||
	 | 
				
			||||
	private static final Vect INITIAL_LISTENER_POS = Vect.ZERO; | 
				
			||||
	private static final int MAX_SOURCES = 256; | 
				
			||||
	 | 
				
			||||
	private static VectVar listener = Vect.makeVar(); | 
				
			||||
	private static boolean soundSystemInited = false; | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Set listener pos | 
				
			||||
	 *  | 
				
			||||
	 * @param pos | 
				
			||||
	 */ | 
				
			||||
	public static void setListener(Vect pos) | 
				
			||||
	{ | 
				
			||||
		listener.setTo(pos); | 
				
			||||
		final FloatBuffer buf3 = BufferHelper.alloc(3); | 
				
			||||
		final FloatBuffer buf6 = BufferHelper.alloc(6); | 
				
			||||
		buf3.clear(); | 
				
			||||
		BufferHelper.fill(buf3, (float) pos.x(), (float) pos.y(), (float) pos.z()); | 
				
			||||
		AL10.alListener(AL10.AL_POSITION, buf3); | 
				
			||||
		buf3.clear(); | 
				
			||||
		BufferHelper.fill(buf3, 0, 0, 0); | 
				
			||||
		AL10.alListener(AL10.AL_VELOCITY, buf3); | 
				
			||||
		buf6.clear(); | 
				
			||||
		BufferHelper.fill(buf6, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f); | 
				
			||||
		AL10.alListener(AL10.AL_ORIENTATION, buf6); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * @return listener coordinate | 
				
			||||
	 */ | 
				
			||||
	public static Vect getListener() | 
				
			||||
	{ | 
				
			||||
		return listener; | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	// -- instance --
 | 
				
			||||
	 | 
				
			||||
	private final Volume masterVolume = new Volume(1D); | 
				
			||||
	private final Volume effectsVolume = new JointVolume(masterVolume); | 
				
			||||
	private final Volume loopsVolume = new JointVolume(masterVolume); | 
				
			||||
	 | 
				
			||||
	private final List<LoopPlayer> loopPlayers = new ArrayList<>(); | 
				
			||||
	private final List<DeferredAudio> resources = new ArrayList<>(); | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * @param busAccess app access | 
				
			||||
	 */ | 
				
			||||
	public SoundSystem() { | 
				
			||||
		 | 
				
			||||
		if (!soundSystemInited) { | 
				
			||||
			soundSystemInited = true; | 
				
			||||
			 | 
				
			||||
			try { | 
				
			||||
				SoundStore.get().setMaxSources(MAX_SOURCES); | 
				
			||||
				SoundStore.get().init(); | 
				
			||||
				setListener(INITIAL_LISTENER_POS); | 
				
			||||
				 | 
				
			||||
				App.bus().send(new AudioReadyEvent()); | 
				
			||||
			} catch (final Throwable t) { | 
				
			||||
				Log.e("Error initializing sound system.", t); | 
				
			||||
			} | 
				
			||||
		} | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	@Override | 
				
			||||
	public void destroy() | 
				
			||||
	{ | 
				
			||||
		for (final DeferredAudio r : resources) { | 
				
			||||
			r.destroy(); | 
				
			||||
		} | 
				
			||||
		 | 
				
			||||
		SoundStore.get().clear(); | 
				
			||||
		AL.destroy(); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	@Override | 
				
			||||
	public void update(double delta) | 
				
			||||
	{ | 
				
			||||
		for (final Updateable lp : loopPlayers) { | 
				
			||||
			lp.update(delta); | 
				
			||||
		} | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Create effect resource | 
				
			||||
	 *  | 
				
			||||
	 * @param resource resource path | 
				
			||||
	 * @param pitch default pitch (1 = unchanged) | 
				
			||||
	 * @param gain default gain (0-1) | 
				
			||||
	 * @return player | 
				
			||||
	 */ | 
				
			||||
	public EffectPlayer createEffect(String resource, double pitch, double gain) | 
				
			||||
	{ | 
				
			||||
		return new EffectPlayer(createResource(resource), pitch, gain, effectsVolume); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Register loop resource (music / effect loop) | 
				
			||||
	 *  | 
				
			||||
	 * @param resource resource path | 
				
			||||
	 * @param pitch default pitch (1 = unchanged) | 
				
			||||
	 * @param gain default gain (0-1) | 
				
			||||
	 * @param fadeIn default time for fadeIn | 
				
			||||
	 * @param fadeOut default time for fadeOut | 
				
			||||
	 * @return player | 
				
			||||
	 */ | 
				
			||||
	public LoopPlayer createLoop(String resource, double pitch, double gain, double fadeIn, double fadeOut) | 
				
			||||
	{ | 
				
			||||
		final LoopPlayer p = new LoopPlayer(createResource(resource), pitch, gain, loopsVolume); | 
				
			||||
		p.setFadeTimes(fadeIn, fadeOut); | 
				
			||||
		loopPlayers.add(p); | 
				
			||||
		return p; | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Create {@link DeferredAudio} for a resource | 
				
			||||
	 *  | 
				
			||||
	 * @param res a resource name | 
				
			||||
	 * @return the resource | 
				
			||||
	 * @throws IllegalArgumentException if resource is already registered | 
				
			||||
	 */ | 
				
			||||
	private DeferredAudio createResource(String res) | 
				
			||||
	{ | 
				
			||||
		final DeferredAudio a = new SlickAudio(res); | 
				
			||||
		App.bus().send(new ResourceLoadRequest(a)); | 
				
			||||
		resources.add(a); | 
				
			||||
		return a; | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Fade out all loops (ie. for screen transitions) | 
				
			||||
	 */ | 
				
			||||
	public void fadeOutAllLoops() | 
				
			||||
	{ | 
				
			||||
		for (final LoopPlayer p : loopPlayers) { | 
				
			||||
			p.fadeOut(); | 
				
			||||
		} | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Pause all loops (leave volume unchanged) | 
				
			||||
	 */ | 
				
			||||
	public void pauseAllLoops() | 
				
			||||
	{ | 
				
			||||
		for (final LoopPlayer p : loopPlayers) { | 
				
			||||
			p.pause(); | 
				
			||||
		} | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Set level of master volume | 
				
			||||
	 *  | 
				
			||||
	 * @param d level | 
				
			||||
	 */ | 
				
			||||
	public void setMasterVolume(double d) | 
				
			||||
	{ | 
				
			||||
		masterVolume.set(d); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Set level of effects volume | 
				
			||||
	 *  | 
				
			||||
	 * @param d level | 
				
			||||
	 */ | 
				
			||||
	public void setEffectsVolume(double d) | 
				
			||||
	{ | 
				
			||||
		effectsVolume.set(d); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Set level of music volume | 
				
			||||
	 *  | 
				
			||||
	 * @param d level | 
				
			||||
	 */ | 
				
			||||
	public void setMusicVolume(double d) | 
				
			||||
	{ | 
				
			||||
		loopsVolume.set(d); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Get level of master volume | 
				
			||||
	 *  | 
				
			||||
	 * @return level | 
				
			||||
	 */ | 
				
			||||
	public double getMasterVolume() | 
				
			||||
	{ | 
				
			||||
		return masterVolume.get(); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Get level of effects volume | 
				
			||||
	 *  | 
				
			||||
	 * @return level | 
				
			||||
	 */ | 
				
			||||
	public double getEffectsVolume() | 
				
			||||
	{ | 
				
			||||
		return effectsVolume.get(); | 
				
			||||
	} | 
				
			||||
	 | 
				
			||||
	 | 
				
			||||
	/** | 
				
			||||
	 * Get level of music volume | 
				
			||||
	 *  | 
				
			||||
	 * @return level | 
				
			||||
	 */ | 
				
			||||
	public double getMusicVolume() | 
				
			||||
	{ | 
				
			||||
		return loopsVolume.get(); | 
				
			||||
	} | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue