summaryrefslogtreecommitdiff
path: root/songdbj/org/tritonus/share/sampled/convert/TEncodingFormatConversionProvider.java
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2007-01-08 23:53:00 +0000
committerBjörn Stenberg <bjorn@haxx.se>2007-01-08 23:53:00 +0000
commit7039a05147b8bbfc829babea1c65bd436450b505 (patch)
tree4ba555eb84ed97b72b0575034d5b0530a393713e /songdbj/org/tritonus/share/sampled/convert/TEncodingFormatConversionProvider.java
parent6d4c19707ef95942e323cbdc89fbbfdbe45e7cc5 (diff)
downloadrockbox-7039a05147b8bbfc829babea1c65bd436450b505.zip
rockbox-7039a05147b8bbfc829babea1c65bd436450b505.tar.gz
rockbox-7039a05147b8bbfc829babea1c65bd436450b505.tar.bz2
rockbox-7039a05147b8bbfc829babea1c65bd436450b505.tar.xz
Splitting out songdbj
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11953 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'songdbj/org/tritonus/share/sampled/convert/TEncodingFormatConversionProvider.java')
-rw-r--r--songdbj/org/tritonus/share/sampled/convert/TEncodingFormatConversionProvider.java129
1 files changed, 0 insertions, 129 deletions
diff --git a/songdbj/org/tritonus/share/sampled/convert/TEncodingFormatConversionProvider.java b/songdbj/org/tritonus/share/sampled/convert/TEncodingFormatConversionProvider.java
deleted file mode 100644
index 6b83403..0000000
--- a/songdbj/org/tritonus/share/sampled/convert/TEncodingFormatConversionProvider.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * TEncodingFormatConversionProvider.java
- *
- * This file is part of Tritonus: http://www.tritonus.org/
- */
-
-/*
- * Copyright (c) 2000 by Florian Bomers <http://www.bomers.de>
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-/*
-|<--- this code is formatted to fit into 80 columns --->|
-*/
-
-package org.tritonus.share.sampled.convert;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import javax.sound.sampled.AudioFormat;
-import javax.sound.sampled.AudioSystem;
-
-import org.tritonus.share.TDebug;
-import org.tritonus.share.ArraySet;
-
-
-// this class depends on handling of AudioSystem.NOT_SPECIFIED in AudioFormat.matches()
-
-/**
- * This is a base class for FormatConversionProviders that only
- * change the encoding, i.e. they never
- * <ul>
- * <li> change the sample size in bits without changing the encoding
- * <li> change the sample rate
- * <li> change the number of channels
- * </ul>
- * <p>It is assumed that each source format can be encoded to all
- * target formats.
- * <p>In the sourceFormats and targetFormats collections that are passed to
- * the constructor of this class, fields may be set to AudioSystem.NOT_SPECIFIED.
- * This means that it handles all values of that field, but cannot change it.
- * <p>This class prevents that a conversion is done (e.g. for sample rates),
- * because the overriding class specified AudioSystem.NOT_SPECIFIED as sample rate,
- * meaning it handles all sample rates.
- * <p>Overriding classes must implement at least
- * <code>AudioInputStream getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream)</code>
- * and provide a constructor that calls the protected constructor of this class.
- *
- * @author Florian Bomers
- */
-public abstract class TEncodingFormatConversionProvider
-extends TSimpleFormatConversionProvider
-{
- protected TEncodingFormatConversionProvider(
- Collection<AudioFormat> sourceFormats,
- Collection<AudioFormat> targetFormats)
- {
- super(sourceFormats, targetFormats);
- }
-
-
-
- /**
- * This implementation assumes that the converter can convert
- * from each of its source formats to each of its target
- * formats. If this is not the case, the converter has to
- * override this method.
- * <p>When conversion is supported, for every target encoding,
- * the fields sample size in bits, channels and sample rate are checked:
- * <ul>
- * <li>When a field in both the source and target format is AudioSystem.NOT_SPECIFIED,
- * one instance of that targetFormat is returned with this field set to AudioSystem.NOT_SPECIFIED.
- * <li>When a field in sourceFormat is set and it is AudioSystem.NOT_SPECIFIED in the target format,
- * the value of the field of source format is set in the returned format.
- * <li>The same applies for the other way round.
- * </ul>
- * For this, <code>replaceNotSpecified(sourceFormat, targetFormat)</code> in the base
- * class TSimpleFormatConversionProvider is used - and accordingly, the frameSize
- * is recalculated with <code>getFrameSize(...)</code> if a field with AudioSystem.NOT_SPECIFIED
- * is replaced. Inheriting classes may wish to override this method if the
- * default mode of calculating the frame size is not appropriate.
- */
- public AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat) {
- if (TDebug.TraceAudioConverter) {
- TDebug.out(">TEncodingFormatConversionProvider.getTargetFormats(AudioFormat.Encoding, AudioFormat):");
- TDebug.out("checking if conversion possible");
- TDebug.out("from: " + sourceFormat);
- TDebug.out("to: " + targetEncoding);
- }
- if (isConversionSupported(targetEncoding, sourceFormat)) {
- // TODO: check that no duplicates may occur...
- ArraySet<AudioFormat> result=new ArraySet<AudioFormat>();
- Iterator<AudioFormat> iterator = getCollectionTargetFormats().iterator();
- while (iterator.hasNext()) {
- AudioFormat targetFormat = iterator.next();
- targetFormat=replaceNotSpecified(sourceFormat, targetFormat);
- result.add(targetFormat);
- }
- if (TDebug.TraceAudioConverter) {
- TDebug.out("< returning "+result.size()+" elements.");
- }
- return result.toArray(EMPTY_FORMAT_ARRAY);
- } else {
- if (TDebug.TraceAudioConverter) {
- TDebug.out("< returning empty array.");
- }
- return EMPTY_FORMAT_ARRAY;
- }
- }
-
-}
-
-/*** TEncodingFormatConversionProvider.java ***/