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

core.be.tarsos.dsp.io.UniversalAudioInputStream Maven / Gradle / Ivy

The newest version!
/*
*      _______                       _____   _____ _____  
*     |__   __|                     |  __ \ / ____|  __ \ 
*        | | __ _ _ __ ___  ___  ___| |  | | (___ | |__) |
*        | |/ _` | '__/ __|/ _ \/ __| |  | |\___ \|  ___/ 
*        | | (_| | |  \__ \ (_) \__ \ |__| |____) | |     
*        |_|\__,_|_|  |___/\___/|___/_____/|_____/|_|     
*                                                         
* -------------------------------------------------------------
*
* TarsosDSP is developed by Joren Six at IPEM, University Ghent
*  
* -------------------------------------------------------------
*
*  Info: http://0110.be/tag/TarsosDSP
*  Github: https://github.com/JorenSix/TarsosDSP
*  Releases: http://0110.be/releases/TarsosDSP/
*  
*  TarsosDSP includes modified source code by various authors,
*  for credits and info, see README.
* 
*/

package be.tarsos.dsp.io;

import java.io.IOException;
import java.io.InputStream;

public class UniversalAudioInputStream implements TarsosDSPAudioInputStream {
	
	private final InputStream underlyingStream;
	private final TarsosDSPAudioFormat format;
	
	public UniversalAudioInputStream(InputStream underlyingInputStream, TarsosDSPAudioFormat format){
		this.underlyingStream = underlyingInputStream;
		this.format = format;
	}

	@Override
	public long skip(long bytesToSkip) throws IOException {
		//the skip probably
		int bytesSkipped = 0;
		for(int i = 0 ; i < bytesToSkip ; i++){
			int theByte = underlyingStream.read();
			if(theByte!=-1){
				bytesSkipped++;
			}
		}
		return bytesSkipped;
	}

	@Override
	public int read(byte[] b, int off, int len) throws IOException {
		return underlyingStream.read(b, off, len);
	}

	@Override
	public void close() throws IOException {
		underlyingStream.close();
	}

	@Override
	public TarsosDSPAudioFormat getFormat() {
		return format;
	}

	@Override
	public long getFrameLength() {
		return -1;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy