From: Gordon M. <go...@us...> - 2006-04-14 07:40:17
|
Update of /cvsroot/bitcollider/jbitcollider/plugins/org.bitpedia.collider.vorbis/src/org/bitpedia/collider/vorbis In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20753/plugins/org.bitpedia.collider.vorbis/src/org/bitpedia/collider/vorbis Added Files: VorbisFormatHandler.java Log Message: initial commit from code drop of april 12 --- NEW FILE: VorbisFormatHandler.java --- package org.bitpedia.collider.vorbis; import java.io.File; import java.util.LinkedHashMap; import java.util.Map; import javax.sound.sampled.AudioFileFormat; import javax.sound.sampled.AudioFormat; import javazoom.spi.vorbis.sampled.file.VorbisAudioFileReader; import org.bitpedia.collider.core.FormatHandler; public class VorbisFormatHandler implements FormatHandler { private String errorString; public boolean supportsExtension(String ext) { return "ogg".equalsIgnoreCase(ext); } public boolean supportsMemAnalyze() { return false; } public boolean supportsFileAnalyze() { return true; } public void analyzeInit() { } public void analyzeUpdate(byte[] buf, int bufLen) { } public Map analyzeFinal() { return null; } private void extractParams(Map src, Map dest) { Object value = src.get("ogg.bitrate.nominal.bps"); if (null != value) { dest.put("tag.vorbis.bitrate", value.toString()); } value = src.get("duration"); if (null != value) { dest.put("tag.vorbis.duration", value.toString()); } value = src.get("ogg.frequency.hz"); if (null != value) { dest.put("tag.vorbis.samplerate", value.toString()); } value = src.get("ogg.channels"); if (null != value) { dest.put("tag.vorbis.channels", value.toString()); } value = src.get("title"); if (null != value) { dest.put("tag.audiotrack.title", value.toString()); } value = src.get("author"); if (null != value) { dest.put("tag.audiotrack.artist", value.toString()); } value = src.get("album"); if (null != value) { dest.put("tag.audiotrack.album", value.toString()); } value = src.get("ogg.comment.track"); if (null != value) { dest.put("tag.audiotrack.tracknumber", value.toString()); } value = src.get("comment"); if (null != value) { dest.put("tag.objective.description", value.toString()); } value = src.get("ogg.comment.genre"); if (null != value) { dest.put("tag.id3genre.genre", value.toString()); } } public Map analyzeFile(String fileName) { Map res = null; try { VorbisAudioFileReader vafr = new VorbisAudioFileReader(); AudioFileFormat baseFileFormat = vafr.getAudioFileFormat(new File(fileName)); AudioFormat baseFormat = baseFileFormat.getFormat(); res = new LinkedHashMap(); extractParams(baseFileFormat.properties(), res); extractParams(baseFormat.properties(), res); } catch (Exception e) { errorString = e.getMessage(); } return res; } public String getError() { return errorString; } } |