All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tritonus.share.sampled.FloatSampleInput Maven / Gradle / Ivy

The newest version!
/*

 * FloatSampleInput.java

 *

 *	This file is part of Tritonus: http://www.tritonus.org/

 */



/*

 *  Copyright (c) 2006 by Florian Bomers 

 *  All rights reserved.

 *

 * Redistribution and use in source and binary forms, with or without

 * modification, are permitted provided that the following conditions

 * are met:

 *

 * - Redistributions of source code must retain the above copyright notice,

 *   this list of conditions and the following disclaimer.

 * - Redistributions in binary form must reproduce the above copyright

 *   notice, this list of conditions and the following disclaimer in the

 *   documentation and/or other materials provided with the distribution.

 *

 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS

 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE

 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,

 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR

 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,

 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)

 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED

 * OF THE POSSIBILITY OF SUCH DAMAGE.

 */



/*

 |<---            this code is formatted to fit into 80 columns             --->|

 */

package org.tritonus.share.sampled;



/**

 * Master interface for all classes providing audio data in FloatSampleBuffers.

 * 

 * @author florian

 */

public interface FloatSampleInput {



	/**

	 * Fill the entire buffer with audio data. If fewer samples are read, this

	 * method will use buffer.changeSampleCount() to adjust the size of the

	 * buffer. If no samples can be written to the buffer, the buffer's sample

	 * count will be set to 0.

	 * 

* The buffer's channel count and sample rate may not be changed by the * implementation of this method. * * @param buffer the buffer to be filled */ public void read(FloatSampleBuffer buffer); /** * Fill the specified portion of the buffer with the next audio data to be * read. If fewer samples are read, this method will use * buffer.changeSampleCount() to adjust the size of the buffer. If no * samples can be written to the buffer, the buffer's sample count will be * set to offset. *

* The buffer's channel count and sample rate may not be changed by the * implementation of this method. * * @param buffer the buffer to be filled * @param offset the start index, in samples, where to start filling the * buffer * @param sampleCount the number fo samples to fill into the buffer */ public void read(FloatSampleBuffer buffer, int offset, int sampleCount); /** * Determine if this stream has reached its end. If true, subsequent calls * to read() will return 0-sized buffers. * * @return true if this stream reached its end. */ public boolean isDone(); /** * @return the number of audio channels of the audio data that this stream * provides. If it can support a variable number of channels, this * method returns AudioSystem.NOT_SPECIFIED. */ public int getChannels(); /** * @return the sample rate of the audio data that this stream provides. If * it can support different sample rates, this method returns a * negative number, e.g. AudioSystem.NOT_SPECIFIED. */ public float getSampleRate(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy