package vazkii.minetunes.playlist; import java.io.File; import vazkii.minetunes.MineTunes; import vazkii.minetunes.gui.GuiDevTools; import vazkii.minetunes.playlist.provider.IProviderStateCallback; public class ThreadPlaylistCreator extends Thread implements IProviderStateCallback { private volatile String state; File file; String name; public ThreadPlaylistCreator(File file, String name) { this.file = file; this.name = name; setDaemon(true); setName("mineTunes Playlist Generator Thread"); start(); } @Override public void run() { while(PlaylistList.playlistNames.contains(name)) name += "_"; GuiDevTools.debugLog("Building Playlist with name " + name); Playlist playlist = Playlist.build(file, this); if(playlist != null && playlist.metadataList.size() > 0) { GuiDevTools.debugLog("Valid Playlist, adding to set"); GuiDevTools.debugLog("MP3 Count: " + playlist.metadataList.size()); PlaylistList.playlistNames.add(name); PlaylistList.playlists.put(name, playlist); } else GuiDevTools.debugLog("Not adding Playlist to set, null or empty."); PlaylistList.findCompoundAndWrite(); MineTunes.playlistCreatorThread = null; } @Override public void setState(String state) { this.state = state; GuiDevTools.debugLog(state); } public synchronized String getProgressState() { return state; } }