X-Git-Url: http://git.maemo.org/git/?p=someplayer;a=blobdiff_plain;f=src%2Fplayer%2Fplayer.h;h=a2fdbf72d15159388f23a2ddd3de8663924617df;hp=78e5ff4ee7d6c518b8033a5266c5e0ac4857c61e;hb=c5dac101a0ecbf2872c00fa48b95f59ce39ef9cf;hpb=f51c4ea03daed5d168cacb15335023ba441cd7c0 diff --git a/src/player/player.h b/src/player/player.h index 78e5ff4..a2fdbf7 100644 --- a/src/player/player.h +++ b/src/player/player.h @@ -2,19 +2,25 @@ #define PLAYER_H #include -#include "someplayer.h" -#include "track.h" +#include "../someplayer.h" +#include "../track.h" +#include "../trackmetainformation.h" +#include "../playlist.h" #include #include +#include +#include // represents player using SomePlayer::DataObjects::Track; +using SomePlayer::DataObjects::TrackMetadata; +using SomePlayer::DataObjects::Playlist; namespace SomePlayer { namespace Playback { - enum PlayerState { PLAYER_STOPPED, PLAYER_PLAYING, PLAYER_PAUSED, PLAYER_LOADING, PLAYER_DONE }; + enum PlayerState { PLAYER_STOPPED, PLAYER_PLAYING, PLAYER_PAUSED, PLAYER_LOADING, PLAYER_DONE, PLAYER_ERROR }; class Player : public QObject { @@ -22,22 +28,46 @@ namespace SomePlayer { public: explicit Player(QObject *parent = 0); + bool random() {return _random;} + bool repeat() {return _repeat;} + Phonon::MediaObject* mediaObject() {return _player;} + signals: void stateChanged (PlayerState); + void trackChanged (Track); void tick (int, int); // played | all (seconds) + void trackDone(Track); public slots: - void setTrack(Track&); + void setTrackId(int id); + void enqueue(int id); + void toggle(); void play(); - void pause(); void stop(); + void next(); + void prev(); + void setPlaylist(Playlist); + void toggleRandom() {_random = !_random;} + void toggleRepeat() {_repeat = !_repeat;} + void seek(int); private slots: void _stateChanged(Phonon::State, Phonon::State); void _tick(qint64); private: - Track _current_track; + int _current; + Track _track; // current track (workaround) + bool _random; + bool _repeat; + QStack _history; + QQueue _queue; + QStack _prev_history; + Playlist _playlist; Phonon::MediaObject *_player; - void _create_player(); + Phonon::AudioOutput *_output; + PlayerState _state; + + void _set_source(); + }; }; };