package micromod.output.converters;
/**
The AudioFormatConverter interface defines a class that can convert
blocks of PCM audio into different formats.
*/
public interface AudioFormatConverter {
/** @return the number of bytes output per stereo sample of input. */
public int getBytesPerFrame();
/** @return 2 if this converter produces stereo output, 1 if mono */
public int getNumberOfChannels();
/** @return true if the converter outputs signed samples */
public boolean isSigned();
/** @return true if the converter outputs big endian samples */
public boolean isBigEndian();
/**
Perform conversion of audio.
length*getBytesPerFrame() bytes are written to the start of the output array.
@param left the left buffer
@param right the right buffer
@param position the start position in the input buffers.
@param length the number of "frames" or stereo samples to convert
*/
public void convert( short[] left, short[] right, int position, byte[] output, int length );
}