package com.limegroup.gnutella.metadata.audio.reader;
import java.io.File;
import java.io.IOException;
import com.limegroup.gnutella.metadata.ASFParser;
import com.limegroup.gnutella.metadata.MetaReader;
import com.limegroup.gnutella.metadata.audio.AudioMetaData;
/**
* Sets WMA metadata using the ASF parser.
*/
public class WMAReader implements MetaReader {
@Override
public AudioMetaData parse(File f) throws IOException {
return parse(new ASFParser(f));
}
public AudioMetaData parse(ASFParser parser) throws IOException {
AudioMetaData audioData = new AudioMetaData();
set(audioData, parser);
return audioData;
}
/** Sets data based on an ASF Parser. */
private void set(AudioMetaData audioData, ASFParser data) throws IOException {
if(data.hasVideo())
throw new IOException("use WMV instead!");
if(!data.hasAudio())
throw new IOException("no audio data!");
audioData.setTitle(data.getTitle());
audioData.setAlbum(data.getAlbum());
audioData.setArtist(data.getArtist());
audioData.setYear(data.getYear());
audioData.setComment(data.getComment());
audioData.setTrack(String.valueOf(data.getTrack()));
audioData.setBitrate(data.getBitrate());
audioData.setLength(data.getLength());
audioData.setGenre(data.getGenre());
audioData.setLicense(data.getCopyright());
if(data.getLicenseInfo() != null)
audioData.setLicenseType(data.getLicenseInfo());
}
@Override
public String[] getSupportedExtensions() {
return new String[] { "wma" };
}
}