63 lines
1.5 KiB
Java
Executable File
63 lines
1.5 KiB
Java
Executable File
package zero1hd.polyjet.audio;
|
|
|
|
import javax.sound.sampled.AudioFormat;
|
|
|
|
import com.badlogic.gdx.audio.Music;
|
|
import com.badlogic.gdx.utils.Disposable;
|
|
|
|
public interface AudioData extends Disposable {
|
|
/**
|
|
* sets a integer variable to the current window of audio data the playback is at.
|
|
* Useful for efficiency because we compute once for that frame then get the values everytime it is required instead of calculating every time we get the index.
|
|
*/
|
|
public void readIndexUpdate();
|
|
|
|
/**
|
|
* Gets the current position in seconds
|
|
* @return the current frame of audio.
|
|
*/
|
|
public int getReadIndex();
|
|
|
|
/**
|
|
* Completely resets the current audio data. Think of pooling, except, only one instance which is reused instead of multiple.
|
|
*/
|
|
public void reset();
|
|
|
|
/**
|
|
* returns the read window size.
|
|
* @return
|
|
*/
|
|
public int getReadWindowSize();
|
|
|
|
/**
|
|
* Gets the object to play the music. Contains playback data.
|
|
* @return
|
|
*/
|
|
public Music getPlaybackMusic();
|
|
|
|
/**
|
|
* read in samples and fills the array.
|
|
* @param samples the array that should contain said samples
|
|
* @return amount read. Will return 0 if end of stream.
|
|
*/
|
|
public int readSamples(float[] samples);
|
|
|
|
/**
|
|
* Returns properly setup AudioFormat object.
|
|
* @return
|
|
*/
|
|
public AudioFormat getFormat();
|
|
|
|
/**
|
|
* returns sample count
|
|
* @return
|
|
*/
|
|
public int getSampleCount();
|
|
|
|
/**
|
|
* returns duration of song in seconds
|
|
* @return
|
|
*/
|
|
public float getDuration();
|
|
}
|