package jass.engine; /** Interface defining a source. This produces audio-rate buffers. Has buffer with audio data and a time concept . @author Kees van den Doel (kvdoel@cs.ubc.ca) */ public interface Source { /** Get buffer with timestamp t. @param t timestamp of buffer. For example, a frame index. */ float[] getBuffer(long t) throws BufferNotAvailableException; /** Get buffer, whatever happens to be available. (Generally intended not to trigeer a computation. */ float[] getBuffer() throws BufferNotAvailableException; /** Get current time. @return current time. */ long getTime(); /** Set current time. @param t current time. */ void setTime(long t); /** Get buffer size. @return buffer size in samples. */ int getBufferSize(); /** Set buffer size. @param bufferSize buffer size. */ void setBufferSize(int bufferSize); /** Clears buffer to zero. */ void clearBuffer(); }