X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fplayer%2Fplayer.h;h=ab26c9dc2a193ac644f6a8ad7723e7d034034be9;hb=3b5ba650989f08b43bd23ab371824b94765ef3be;hp=50ab1f8d5fd09f8c7a609d49d77441ed984eded7;hpb=1d213a9db9b725dc285e92021f35e2f83a813080;p=someplayer diff --git a/src/player/player.h b/src/player/player.h index 50ab1f8..ab26c9d 100644 --- a/src/player/player.h +++ b/src/player/player.h @@ -27,7 +27,6 @@ #include "../playlist.h" #include #include -#include #include #include #include @@ -38,37 +37,43 @@ using SomePlayer::DataObjects::Track; using SomePlayer::DataObjects::TrackMetadata; using SomePlayer::DataObjects::Playlist; +using SomePlayer::DataObjects::LastPlayed; using SomePlayer::Storage::Config; namespace SomePlayer { namespace Playback { enum PlayerState { PLAYER_STOPPED, PLAYER_PLAYING, PLAYER_PAUSED, PLAYER_LOADING, PLAYER_DONE, PLAYER_ERROR }; + enum RepeatRule {REPEAT_NO, REPEAT_ALL, REPEAT_ONE}; class Player : public QObject { Q_OBJECT public: explicit Player(QObject *parent = 0); - + ~Player(); bool random() {return _random;} - bool repeat() {return _repeat;} - int volume() {return (int)(_output->volume()*100 + 0.5);} + RepeatRule repeat() {return _repeat;} Phonon::MediaObject* mediaObject() {return _player;} bool equalizerEnabled() {return _equalizer_enabled;} bool equalizerAvailable() {return _equalizer != NULL;} - + 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(); @@ -76,23 +81,27 @@ namespace SomePlayer { void toggleRandom(); void toggleRepeat(); void seek(int); - void setVolume(int); void enableEqualizer(); void disableEqualizer(); void setEqualizerValue(int band, double value); void equalizerValue(int band, double *); + 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: - int _current; - Track _track; // current track (workaround) + Track _track; // current track bool _random; - bool _repeat; + RepeatRule _repeat; bool _equalizer_enabled; - QStack _history; - QQueue _queue; - QStack _prev_history; + QList _history; + QList _queue; Playlist _playlist; Phonon::MediaObject *_player; Phonon::AudioOutput *_output; @@ -100,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; }; }; };