package com.quiltplayer.internal.id3.impl;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import org.cmc.music.metadata.IMusicMetadata;
import org.cmc.music.metadata.MusicMetadata;
import org.cmc.music.metadata.MusicMetadataSet;
import org.cmc.music.myid3.MyID3;
import org.springframework.stereotype.Component;
import com.quiltplayer.internal.id3.Id3Modifier;
import com.quiltplayer.internal.id3.model.Id3DataModel;
/**
* General ID3 modifier.
*
* @author Vlado Palczynski
*/
@Component
public class MyId3Modifier implements Id3Modifier {
/**
* The MyID3 instance.
*/
private MyID3 myID3 = new MyID3();
/*
* (non-Javadoc)
*
* @see com.quiltplayer.id3utils.Id3Modifier#modifyId3Tags(java.util.List)
*/
public void modifyId3Tags(final Collection<Id3DataModel> models) throws IOException {
for (Id3DataModel model : models) {
try {
File src = model.getPath();
MusicMetadataSet src_set = myID3.read(src);
/* perhaps no metadata */
if (src_set != null) {
IMusicMetadata metadata = src_set.getSimplified();
metadata.setArtist(model.getArtistName());
metadata.setAlbum(model.getAlbumTitle());
myID3.update(src, src_set, (MusicMetadata) metadata);
}
}
catch (Exception e) {
throw new IOException(e);
}
}
}
}