00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _PLAYSTATE_H
00022 #define _PLAYSTATE_H
00023
00024 #include "playlistmodel.h"
00025
00030 class PlayState
00031 {
00032 public:
00036 virtual bool next() = 0;
00037
00041 virtual bool previous() = 0;
00045 virtual int nextIndex() = 0;
00049 virtual void resetState()
00050 {
00051 ;
00052 }
00056 virtual void prepare()
00057 {
00058 ;
00059 }
00060 virtual ~PlayState()
00061 {
00062 ;
00063 }
00064 PlayState(PlayListModel* model) : m_model(model)
00065 {
00066 ;
00067 }
00068 protected:
00069
00071 PlayListModel* m_model;
00072 };
00073
00078 class NormalPlayState : public PlayState
00079 {
00080 public:
00081 virtual bool next();
00082 virtual bool previous();
00083 virtual int nextIndex();
00084 NormalPlayState(PlayListModel* model);
00085 };
00086
00091 class ShufflePlayState : public PlayState
00092 {
00093 public:
00094 virtual bool next();
00095 virtual bool previous();
00096 virtual int nextIndex();
00097 virtual void prepare();
00098 ShufflePlayState(PlayListModel* model);
00099 virtual void resetState();
00100 private:
00101
00103 int m_shuffled_current;
00104
00106 QList<int> m_shuffled_indexes;
00107 };
00108
00109
00110 #endif