From 7039a05147b8bbfc829babea1c65bd436450b505 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Mon, 8 Jan 2007 23:53:00 +0000 Subject: Splitting out songdbj git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11953 a1c6a512-1295-4272-9138-f99709370657 --- .../de/jarnbjo/vorbis/VorbisAudioFileReader.java | 217 --------------------- 1 file changed, 217 deletions(-) delete mode 100644 songdbj/de/jarnbjo/vorbis/VorbisAudioFileReader.java (limited to 'songdbj/de/jarnbjo/vorbis/VorbisAudioFileReader.java') diff --git a/songdbj/de/jarnbjo/vorbis/VorbisAudioFileReader.java b/songdbj/de/jarnbjo/vorbis/VorbisAudioFileReader.java deleted file mode 100644 index b1bc999947..0000000000 --- a/songdbj/de/jarnbjo/vorbis/VorbisAudioFileReader.java +++ /dev/null @@ -1,217 +0,0 @@ -package de.jarnbjo.vorbis; - -/* - * $ProjectName$ - * $ProjectRevision$ - * ----------------------------------------------------------- - * $Id$ - * ----------------------------------------------------------- - * - * $Author$ - * - * Description: - * - * Copyright 2002-2003 Tor-Einar Jarnbjo - * ----------------------------------------------------------- - * - * Change History - * ----------------------------------------------------------- - * $Log$ - * Revision 1.1 2005/07/11 15:42:36 hcl - * Songdb java version, source. only 1.5 compatible - * - * Revision 1.2 2004/09/21 06:39:06 shred - * Importe reorganisiert, damit Eclipse Ruhe gibt. ;-) - * - * Revision 1.1.1.1 2004/04/04 22:09:12 shred - * First Import - * - * - */ - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.RandomAccessFile; -import java.net.URL; -import java.util.Collection; - -import javax.sound.sampled.AudioFileFormat; -import javax.sound.sampled.AudioFormat; -import javax.sound.sampled.AudioInputStream; -import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.UnsupportedAudioFileException; -import javax.sound.sampled.spi.AudioFileReader; - -import de.jarnbjo.ogg.BasicStream; -import de.jarnbjo.ogg.EndOfOggStreamException; -import de.jarnbjo.ogg.FileStream; -import de.jarnbjo.ogg.LogicalOggStream; -import de.jarnbjo.ogg.OggFormatException; -import de.jarnbjo.ogg.PhysicalOggStream; -import de.jarnbjo.ogg.UncachedUrlStream; - -public class VorbisAudioFileReader extends AudioFileReader { - - public VorbisAudioFileReader() { - } - - public AudioFileFormat getAudioFileFormat(File file) throws IOException, UnsupportedAudioFileException { - try { - return getAudioFileFormat(new FileStream(new RandomAccessFile(file, "r"))); - } - catch(OggFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - } - - public AudioFileFormat getAudioFileFormat(InputStream stream) throws IOException, UnsupportedAudioFileException { - try { - return getAudioFileFormat(new BasicStream(stream)); - } - catch(OggFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - } - - public AudioFileFormat getAudioFileFormat(URL url) throws IOException, UnsupportedAudioFileException { - try { - return getAudioFileFormat(new UncachedUrlStream(url)); - } - catch(OggFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - } - - private AudioFileFormat getAudioFileFormat(PhysicalOggStream oggStream) throws IOException, UnsupportedAudioFileException { - try { - Collection streams=oggStream.getLogicalStreams(); - if(streams.size()!=1) { - throw new UnsupportedAudioFileException("Only Ogg files with one logical Vorbis stream are supported."); - } - - LogicalOggStream los=(LogicalOggStream)streams.iterator().next(); - if(los.getFormat()!=LogicalOggStream.FORMAT_VORBIS) { - throw new UnsupportedAudioFileException("Only Ogg files with one logical Vorbis stream are supported."); - } - - VorbisStream vs=new VorbisStream(los); - - AudioFormat audioFormat=new AudioFormat( - (float)vs.getIdentificationHeader().getSampleRate(), - 16, - vs.getIdentificationHeader().getChannels(), - true, true); - - return new AudioFileFormat(VorbisFormatType.getInstance(), audioFormat, AudioSystem.NOT_SPECIFIED); - } - catch(OggFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - catch(VorbisFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - } - - - - public AudioInputStream getAudioInputStream(File file) throws IOException, UnsupportedAudioFileException { - try { - return getAudioInputStream(new FileStream(new RandomAccessFile(file, "r"))); - } - catch(OggFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - } - - public AudioInputStream getAudioInputStream(InputStream stream) throws IOException, UnsupportedAudioFileException { - try { - return getAudioInputStream(new BasicStream(stream)); - } - catch(OggFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - } - - public AudioInputStream getAudioInputStream(URL url) throws IOException, UnsupportedAudioFileException { - try { - return getAudioInputStream(new UncachedUrlStream(url)); - } - catch(OggFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - } - - private AudioInputStream getAudioInputStream(PhysicalOggStream oggStream) throws IOException, UnsupportedAudioFileException { - try { - Collection streams=oggStream.getLogicalStreams(); - if(streams.size()!=1) { - throw new UnsupportedAudioFileException("Only Ogg files with one logical Vorbis stream are supported."); - } - - LogicalOggStream los=(LogicalOggStream)streams.iterator().next(); - if(los.getFormat()!=LogicalOggStream.FORMAT_VORBIS) { - throw new UnsupportedAudioFileException("Only Ogg files with one logical Vorbis stream are supported."); - } - - VorbisStream vs=new VorbisStream(los); - - AudioFormat audioFormat=new AudioFormat( - (float)vs.getIdentificationHeader().getSampleRate(), - 16, - vs.getIdentificationHeader().getChannels(), - true, true); - - return new AudioInputStream(new VorbisInputStream(vs), audioFormat, -1); - } - catch(OggFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - catch(VorbisFormatException e) { - throw new UnsupportedAudioFileException(e.getMessage()); - } - } - - - public static class VorbisFormatType extends AudioFileFormat.Type { - - private static final VorbisFormatType instance=new VorbisFormatType(); - - private VorbisFormatType() { - super("VORBIS", "ogg"); - } - - public static AudioFileFormat.Type getInstance() { - return instance; - } - } - - public static class VorbisInputStream extends InputStream { - - private VorbisStream source; - private byte[] buffer=new byte[8192]; - - public VorbisInputStream(VorbisStream source) { - this.source=source; - } - - public int read() throws IOException { - return 0; - } - - public int read(byte[] buffer) throws IOException { - return read(buffer, 0, buffer.length); - } - - public int read(byte[] buffer, int offset, int length) throws IOException { - try { - return source.readPcm(buffer, offset, length); - } - catch(EndOfOggStreamException e) { - return -1; - } - } - } - - -} \ No newline at end of file -- cgit v1.2.3