package org.terasology.logic.manager;
import org.terasology.asset.AssetUri;
import org.terasology.audio.Sound;
import org.terasology.audio.SoundPool;
import org.terasology.audio.SoundSource;
/**
* @author Immortius <immortius@gmail.com>
*/
// TODO: Rename this to AudioManager, and AudioManager to AudioManagerAbstract or something
public interface SoundManager {
float MAX_DISTANCE = 50.0f;
int PRIORITY_LOCKED = Integer.MAX_VALUE;
int PRIORITY_HIGHEST = 100;
int PRIORITY_HIGH = 10;
int PRIORITY_NORMAL = 5;
int PRIORITY_LOW = 3;
int PRIORITY_LOWEST = 1;
/**
* Initializes AudioManager
*/
void initialize();
/**
* Update AudioManager sound sources
* <p/>
* Should be called in main game loop
*/
void update();
/**
* Gracefully destroy audio subsystem
*/
void destroy();
SoundPool getSoundPool(String pool);
SoundSource getSoundSource(String pool, AssetUri sound, int priority);
SoundSource getSoundSource(String pool, Sound sound, int priority);
void stopAllSounds();
}