package org.lysty.players; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class PlayerManager { public static PlayerManager self = null; private Map<String, AbstractPlayer> playerMap; private Set<String> supportedFormats; public static PlayerManager getInstance() { if (self == null) { self = new PlayerManager(); } return self; } private PlayerManager() { playerMap = new HashMap<String, AbstractPlayer>(); supportedFormats = new HashSet<String>(); loadPlayers(); } private void loadPlayers() { AbstractPlayer player = new Mp3Player(); List<String> supports = player.getSupportedFormats(); for (String format : supports) { playerMap.put(format.toLowerCase(), player); supportedFormats.add(format.toLowerCase()); } } public Set<String> getSupportedFormats() { return supportedFormats; } public AbstractPlayer getPlayer(String format) { return playerMap.get(format.toLowerCase()); } public AbstractPlayer getBackupPlayer() { return playerMap.get("mp3"); } }