1
0
mirror of https://github.com/mitb-archive/filebot synced 2024-08-13 17:03:45 -04:00
filebot/source/net/filebot/ui/rename/AudioFingerprintMatcher.java
2014-08-13 15:56:58 +00:00

45 lines
1.3 KiB
Java

package net.filebot.ui.rename;
import static net.filebot.MediaTypes.*;
import static net.filebot.util.FileUtilities.*;
import java.awt.Component;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map.Entry;
import net.filebot.similarity.Match;
import net.filebot.web.AudioTrack;
import net.filebot.web.MusicIdentificationService;
import net.filebot.web.SortOrder;
class AudioFingerprintMatcher implements AutoCompleteMatcher {
private MusicIdentificationService service;
public AudioFingerprintMatcher(MusicIdentificationService service) {
this.service = service;
}
@Override
public List<Match<File, ?>> match(List<File> files, boolean strict, SortOrder order, Locale locale, boolean autodetection, Component parent) throws Exception {
List<Match<File, ?>> matches = new ArrayList<Match<File, ?>>();
List<File> audioFiles = filter(files, AUDIO_FILES, VIDEO_FILES);
// check audio files against AcoustID
if (audioFiles.size() > 0) {
for (Entry<File, AudioTrack> it : service.lookup(audioFiles).entrySet()) {
if (it.getKey().exists() && it.getValue() != null) {
AudioTrack track = it.getValue().clone();
matches.add(new Match<File, AudioTrack>(it.getKey(), track));
}
}
}
return matches;
}
}