diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-06-27 17:32:13 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-06-27 17:32:13 +0000 |
| commit | 6ba4fc48fd35f5c0ea53739cce79fae84014aeeb (patch) | |
| tree | 470f61c8e107dc03621ab05dda8de3c7552a4ca1 /src/qmmpui/playstate_p.h | |
| parent | 40fb51b6a7e292f66a97fe414493d9441c4702ab (diff) | |
| download | qmmp-6ba4fc48fd35f5c0ea53739cce79fae84014aeeb.tar.gz qmmp-6ba4fc48fd35f5c0ea53739cce79fae84014aeeb.tar.bz2 qmmp-6ba4fc48fd35f5c0ea53739cce79fae84014aeeb.zip | |
renamed private headers
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2240 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playstate_p.h')
| -rw-r--r-- | src/qmmpui/playstate_p.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/qmmpui/playstate_p.h b/src/qmmpui/playstate_p.h new file mode 100644 index 000000000..011a02848 --- /dev/null +++ b/src/qmmpui/playstate_p.h @@ -0,0 +1,110 @@ +/*************************************************************************** + * Copyright (C) 2007-2009 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef _PLAYSTATE_H +#define _PLAYSTATE_H + +#include "playlistmodel.h" + +/*! @internal + * @brief Abstract class that represents data model playing states. + * @author Vladimir Kuznetsov <vovanec@gmail.com> + */ +class PlayState +{ +public: + /*! Makes single step forward through songs list. + * If the step has done returns \b true, otherwise returns \b false + */ + virtual bool next() = 0; + + /*! Makes single step back through songs list. + * If the step has done returns \b true, otherwise returns \b false + */ + virtual bool previous() = 0; + /*! + * Returns next item index. + */ + virtual int nextIndex() = 0; + /*! + * Service method, resets state to it's defaults. + */ + virtual void resetState() + { + ; + } + /*! + * Service method, can be used for state initializing. + */ + virtual void prepare() + { + ; + } + virtual ~PlayState() + { + ; + } + PlayState(PlayListModel* model) : m_model(model) + { + ; + } +protected: + + /// Data model + PlayListModel* m_model; +}; + +/*! @internal + * @brief Represents normal playing state. + * @author Vladimir Kuznetsov <vovanec@gmail.com> + */ +class NormalPlayState : public PlayState +{ +public: + virtual bool next(); + virtual bool previous(); + virtual int nextIndex(); + NormalPlayState(PlayListModel* model); +}; + +/*! @internal + * @brief Represents shuffle playing state. + * @author Vladimir Kuznetsov <vovanec@gmail.com> + */ +class ShufflePlayState : public PlayState +{ +public: + virtual bool next(); + virtual bool previous(); + virtual int nextIndex(); + virtual void prepare(); + ShufflePlayState(PlayListModel* model); + virtual void resetState(); +private: + + /// Current shuffled index. + int m_shuffled_current; + + /// List of indexes used for shuffled playing. + QList<int> m_shuffled_indexes; +}; + + +#endif |
