diff options
| author | vovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-02-07 13:36:34 +0000 |
|---|---|---|
| committer | vovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-02-07 13:36:34 +0000 |
| commit | 06d1877811fa6aa97dddc0e03bcde4e766928c87 (patch) | |
| tree | c25462d0e58c3d58c728664440412bf4f16a49ec /src/playstate.cpp | |
| parent | 3f6b60f23c44a8ba8dd97ca6f41a16e2af7ef2f7 (diff) | |
| download | qmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.tar.gz qmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.tar.bz2 qmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.zip | |
new directory structure
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@232 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/playstate.cpp')
| -rw-r--r-- | src/playstate.cpp | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/src/playstate.cpp b/src/playstate.cpp deleted file mode 100644 index 373619574..000000000 --- a/src/playstate.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006 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. * - ***************************************************************************/ - -#include <playstate.h> - -ShufflePlayState::ShufflePlayState(PlayListModel * model) : PlayState(model) -{ - prepare(); -} - -bool ShufflePlayState::next() -{ - int itm_count = m_model->items().count(); - - if (itm_count > 0) - { - if (m_shuffled_current >= m_shuffled_indexes.count() -1 ) - { - if (!m_model->isRepeatableList()) - return FALSE; - else - prepare(); - } - - if (m_shuffled_current < m_shuffled_indexes.count() - 1)m_shuffled_current++; - - return m_model->setCurrent(m_shuffled_indexes.at(m_shuffled_current)); - } - return FALSE; -} - -bool ShufflePlayState::previous() -{ - int itm_count = m_model->items().count(); - - if (itm_count > 0) - { - if (m_shuffled_current <= 0) - { - if (!m_model->isRepeatableList()) - return FALSE; - else - { - prepare(); - m_shuffled_current = m_shuffled_indexes.count() - 1; - } - } - - if (itm_count > 1) m_shuffled_current --; - - m_model->setCurrent(m_shuffled_indexes.at(m_shuffled_current)); - return TRUE; - } - return FALSE; -} - -void ShufflePlayState::prepare() -{ - resetState(); - for (int i = 0;i < m_model->items().count();i++) - { - if (i != m_model->currentRow()) - m_shuffled_indexes << i; - } - - for (int i = 0;i < m_shuffled_indexes.count();i++) - m_shuffled_indexes.swap(qrand()%m_shuffled_indexes.size(),qrand()%m_shuffled_indexes.size()); - - m_shuffled_indexes.prepend(m_model->currentRow()); -} - -void ShufflePlayState::resetState() -{ - m_shuffled_indexes.clear(); - m_shuffled_current = 0; -} - - - - - -NormalPlayState::NormalPlayState(PlayListModel * model) : PlayState(model) -{} - - -bool NormalPlayState::next() -{ - int itm_count = m_model->items().count(); - - if (itm_count > 0) - { - if ( m_model->currentRow() == itm_count - 1) - { - if (m_model->isRepeatableList()) - return m_model->setCurrent(0); - else - return FALSE; - } - return m_model->setCurrent(m_model->currentRow() + 1); - } - else - return FALSE; -} - -bool NormalPlayState::previous() -{ - int itm_count = m_model->items().count(); - - if (itm_count > 0) - { - if ( m_model->currentRow() < 1 && !m_model->isRepeatableList()) - return FALSE; - else if (m_model->setCurrent(m_model->currentRow() - 1)) - return TRUE; - else if (m_model->isRepeatableList()) - return m_model->setCurrent(m_model->items().count() - 1); - } - - return FALSE; -} - |
