package com.limegroup.gnutella.gui.mp3; import java.io.File; import java.io.IOException; import com.limegroup.gnutella.gui.RefreshListener; /** * This interface defines the required functionality of an audio player * component. */ public interface AudioPlayer extends RefreshListener { /** * Constant for the playing state. */ static final int STATUS_PLAYING = 0; /** * Constant for the paused state. */ static final int STATUS_PAUSED = 1; /** * Constant for the stopped state. */ static final int STATUS_STOPPED = 2; /** * Returns the current state of the player. * * @return the state of the player -- one of STATUS_PLAYING, STATUS_PAUSED, * STATUS_STOPPED */ int getStatus(); /** * Unpauses the player. */ void unpause(); /** * Pauses the player. */ void pause(); /** * Stops the player. */ void stop(); /** * Plays the specified file. * * @param file the <tt>File</tt> instance denoting the abstract pathname of * the file to play * @throws IOException Thrown if the playing encountered difficulties, ie * couldn't find file, etc. */ boolean play(File file) throws IOException; /** * Returns the frame seek position. * * @return the seek position of the seek bar */ int getFrameSeek(); /** * Adds a listener to the list of player listeners. */ void addAudioPlayerListener(AudioPlayerListener listener); }