X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fplayer%2Fplayer.h;h=ab26c9dc2a193ac644f6a8ad7723e7d034034be9;hb=3b5ba650989f08b43bd23ab371824b94765ef3be;hp=f756ac16314415c2b270b51ff29a3978b931d98b;hpb=aef3af72d3bf587c3d6487d9fed6f5a71fe98afb;p=someplayer diff --git a/src/player/player.h b/src/player/player.h index f756ac1..ab26c9d 100644 --- a/src/player/player.h +++ b/src/player/player.h @@ -37,6 +37,7 @@ using SomePlayer::DataObjects::Track; using SomePlayer::DataObjects::TrackMetadata; using SomePlayer::DataObjects::Playlist; +using SomePlayer::DataObjects::LastPlayed; using SomePlayer::Storage::Config; namespace SomePlayer { @@ -45,42 +46,34 @@ namespace SomePlayer { enum PlayerState { PLAYER_STOPPED, PLAYER_PLAYING, PLAYER_PAUSED, PLAYER_LOADING, PLAYER_DONE, PLAYER_ERROR }; enum RepeatRule {REPEAT_NO, REPEAT_ALL, REPEAT_ONE}; - class Randomizer { - public: - void setPlaylist(QList); - int next(); - void removeId(int); - private: - QList _playlist; - QList _rand; - void _shuffle(); - int _last; - }; - class Player : public QObject { Q_OBJECT public: explicit Player(QObject *parent = 0); - + ~Player(); bool random() {return _random;} RepeatRule repeat() {return _repeat;} Phonon::MediaObject* mediaObject() {return _player;} bool equalizerEnabled() {return _equalizer_enabled;} bool equalizerAvailable() {return _equalizer != NULL;} - PlayerState state() {return _state;} - + Track current(); + void setAwaitingSeek(int pos) {_awaiting_seek = true; _awaiting_seek_pos = pos;} signals: void stateChanged (PlayerState); void trackChanged (Track); void tick (int, int); // played | all (seconds) void trackDone(Track); + void startPlaylist(); + void saveLastPlayed(LastPlayed); public slots: void setTrackId(int id); - void enqueue(int id); + void enqueue(int id); // refactor void toggle(); void play(); + void pause(); + void playIfPaused(); void stop(); void next(); void prev(); @@ -95,19 +88,20 @@ namespace SomePlayer { QString artist(); QString album(); QString title(); + PlayerState state() {return _state;} + QString stateText(); + QString albumart() {return _albumart;} + void setAlbumart(QString albumart) {_albumart = albumart;} private slots: void _stateChanged(Phonon::State, Phonon::State); void _tick(qint64); private: - Randomizer _randomizer; - int _current; - Track _track; // current track (workaround) + Track _track; // current track bool _random; RepeatRule _repeat; bool _equalizer_enabled; - QStack _history; - QQueue _queue; - QStack _prev_history; + QList _history; + QList _queue; Playlist _playlist; Phonon::MediaObject *_player; Phonon::AudioOutput *_output; @@ -115,9 +109,12 @@ namespace SomePlayer { Phonon::Effect *_equalizer; PlayerState _state; Config _config; - void _set_source(); - + void _to_history(Track t); + void _truncate_history(); + int _awaiting_seek_pos; + bool _awaiting_seek; + QString _albumart; }; }; };