package org.newdawn.slick.openal;
/**
* The description of of audio data loaded by the AudioLoader
*
* @author kevin
* @author Nathan Sweet <misc@n4te.com>
*/
public interface Audio {
/**
* Stop the sound effect
*/
public void stop();
/**
* Get the ID of the OpenAL buffer holding this data (if any). This method
* is not valid with streaming resources.
*
* @return The ID of the OpenAL buffer holding this data
*/
public int getBufferID();
/**
* Check if the sound is playing as sound fx
*
* @return True if the sound is playing
*/
public boolean isPlaying();
/**
* Play this sound as a sound effect
*
* @param pitch The pitch of the play back
* @param gain The gain of the play back
* @param loop True if we should loop
* @return The ID of the source playing the sound
*/
public int playAsSoundEffect(float pitch, float gain, boolean loop);
/**
* Play this sound as a sound effect
*
* @param pitch The pitch of the play back
* @param gain The gain of the play back
* @param loop True if we should loop
* @param x The x position of the sound
* @param y The y position of the sound
* @param z The z position of the sound
* @return The ID of the source playing the sound
*/
public int playAsSoundEffect(float pitch, float gain, boolean loop,
float x, float y, float z);
/**
* Play this sound as music
*
* @param pitch The pitch of the play back
* @param gain The gain of the play back
* @param loop True if we should loop
* @return The ID of the source playing the sound
*/
public int playAsMusic(float pitch, float gain, boolean loop);
/**
* Seeks to a position in the music.
*
* @param position Position in seconds.
* @return True if the setting of the position was successful
*/
public boolean setPosition(float position);
/**
* Return the current playing position in the sound
*
* @return The current position in seconds.
*/
public float getPosition();
}