package com.gdxjam;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Music.OnCompletionListener;
import com.badlogic.gdx.audio.Sound;
import com.gdxjam.OrionPrefs.BooleanValue;
import com.gdxjam.OrionPrefs.FloatValue;
public class AudioManager {
private static final String MUSIC_DIR = "music/";
private static final String SOUND_DIR = "sound/";
public static boolean soundEnabled = true;
public static boolean musicEnabled = true;
public static float soundVolume = 1.0f;
public static float musicVolume = 1.0f;
public static Music currentMusic;
public static void refresh() {
soundEnabled = OrionPrefs.getBoolean(BooleanValue.AUDIO_SOUND_ENABLED);
musicEnabled = OrionPrefs.getBoolean(BooleanValue.AUDIO_MUSIC_ENABLED);
soundVolume = OrionPrefs.getFloat(FloatValue.AUDIO_SOUND_VOLUME);
musicVolume = OrionPrefs.getFloat(FloatValue.AUDIO_MUSIC_VOLUME);
}
public static void playSound(Sound sound) {
if (soundEnabled) {
sound.play(soundVolume);
}
}
public static void loadRandomTrack() {
currentMusic = Gdx.audio.newMusic(Gdx.files.internal(MUSIC_DIR + Assets.music.gameTracks.random()));
playMusic(currentMusic);
}
public static void playMusic(Music music) {
if (musicEnabled) {
music.setLooping(false);
music.setVolume(musicVolume);
music.play();
music.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(Music music) {
music.dispose();
loadRandomTrack();
}
});
}
}
public static void stopMusic() {
if (currentMusic != null) {
currentMusic.stop();
currentMusic.dispose();
}
}
}