diff options
Diffstat (limited to 'songdbj/org/tritonus/share/sampled/file/TAudioFileFormat.java')
| -rw-r--r-- | songdbj/org/tritonus/share/sampled/file/TAudioFileFormat.java | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/songdbj/org/tritonus/share/sampled/file/TAudioFileFormat.java b/songdbj/org/tritonus/share/sampled/file/TAudioFileFormat.java new file mode 100644 index 0000000..fd9831e --- /dev/null +++ b/songdbj/org/tritonus/share/sampled/file/TAudioFileFormat.java @@ -0,0 +1,113 @@ +/* + * TAudioFileFormat.java + * + * This file is part of Tritonus: http://www.tritonus.org/ + */ + +/* + * Copyright (c) 1999 by Matthias Pfisterer + * + * + * 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.file; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import javax.sound.sampled.AudioFileFormat; +import javax.sound.sampled.AudioFormat; + + + +/** + * This class is just to have a public constructor taking the + * number of bytes of the whole file. The public constructor of + * AudioFileFormat doesn't take this parameter, the one who takes + * it is protected. + * + * @author Matthias Pfisterer + */ +public class TAudioFileFormat +extends AudioFileFormat +{ + private Map<String, Object> m_properties; + private Map<String, Object> m_unmodifiableProperties; + + + /* + * Note that the order of the arguments is different from + * the one in AudioFileFormat. + */ + public TAudioFileFormat(Type type, + AudioFormat audioFormat, + int nLengthInFrames, + int nLengthInBytes) + { + super(type, + nLengthInBytes, + audioFormat, + nLengthInFrames); + } + + + public TAudioFileFormat(Type type, + AudioFormat audioFormat, + int nLengthInFrames, + int nLengthInBytes, + Map<String, Object> properties) + { + super(type, + nLengthInBytes, + audioFormat, + nLengthInFrames); + initMaps(properties); + } + + + private void initMaps(Map<String, Object> properties) + { + /* Here, we make a shallow copy of the map. It's unclear if this + is sufficient (of if a deep copy should be made). + */ + m_properties = new HashMap<String, Object>(); + m_properties.putAll(properties); + m_unmodifiableProperties = Collections.unmodifiableMap(m_properties); + } + + + public Map<String, Object> properties() + { + return m_unmodifiableProperties; + } + + + + protected void setProperty(String key, Object value) + { + m_properties.put(key, value); + } +} + + + +/*** TAudioFileFormat.java ***/ |