package com.quiltplayer.core.player; import java.awt.event.ActionEvent; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Component; import com.quiltplayer.controller.PlayerController; import com.quiltplayer.controller.PlayerListener; import com.quiltplayer.core.player.tasks.PlayTask; import com.quiltplayer.model.Song; /** * Factory for players. * * @author Vlado Palczynski * */ @Component public class PlayerFactory { @Autowired private PlayerListener playerListener; @Autowired private TaskExecutor taskExecutor; @Autowired private PlayerSelector playerSelector; /* * (non-Javadoc) * * @see com.quiltplayer.core.player.Player#getElapsedTime() */ public long getElapsedTime() { return playerSelector.getElapsedTime(); } /* * (non-Javadoc) * * @see com.quiltplayer.core.player.Player#removeCurrentSong() */ public void removeCurrentSong() { playerSelector.removeCurrentSong(); } /* * (non-Javadoc) * * @see com.quiltplayer.core.player.Player#pause() */ public void pause() { playerSelector.pause(); playerListener.actionPerformed(new ActionEvent("", 0, PlayerController.PlayerEvents.PAUSEED.toString())); } /* * (non-Javadoc) * * @see com.quiltplayer.core.player.Player#stop() */ public void stop() { playerSelector.stop(); playerListener.actionPerformed(new ActionEvent("", 0, PlayerController.PlayerEvents.STOPPED.toString())); } /* * (non-Javadoc) * * @see com.quiltplayer.core.player.Player#play(com.quiltplayer.model.Song) */ public void play(Song song) { taskExecutor.execute(new PlayTask(song, playerSelector)); } public void seek(int i) { playerSelector.seek(i); } }