001package org.intellimate.izou.sdk.frameworks.music.player;
002
003import org.intellimate.izou.sdk.frameworks.music.Capabilities;
004import org.intellimate.izou.sdk.frameworks.permanentSoundOutput.output.PermanentSoundUsed;
005
006/**
007 * here are the methods for the interfaces to access all needed states.
008 * @author LeanderK
009 * @version 1.0
010 */
011public interface MusicProvider extends PermanentSoundUsed {
012    /**
013     * true if using the sound output and false if not
014     * @return true if  using the sound output
015     */
016    @Override
017    boolean isOutputRunning();
018
019    /**
020     * true if using java, false if not (and for example a C-library)
021     *
022     * @return true if using java
023     */
024    @Override
025    boolean isUsingJava();
026
027    /**
028     * true if playing and false if not
029     * @return tre if playing
030     */
031    boolean isPlaying();
032
033    /**
034     * gets the current Playlist
035     * @return the current Playlist
036     */
037    Playlist getCurrentPlaylist();
038
039    /**
040     * gets the Volume
041     * @return the volume
042     */
043    Volume getVolume();
044
045    /**
046     * gets the Progress
047     * @return the Progress
048     */
049    Progress getCurrentProgress();
050
051    /**
052     * gets the Capabilities of the Player
053     * @return and instance of Capabilities
054     */
055    Capabilities getCapabilities();
056
057    /**
058     * gets the PlaybackState of the Player
059     * @return the PlaybackState
060     */
061    PlaybackState getPlaybackState();
062}