aboutsummaryrefslogtreecommitdiff
path: root/src/ui/display.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/display.cpp')
-rw-r--r--src/ui/display.cpp357
1 files changed, 0 insertions, 357 deletions
diff --git a/src/ui/display.cpp b/src/ui/display.cpp
deleted file mode 100644
index 9b54306d2..000000000
--- a/src/ui/display.cpp
+++ /dev/null
@@ -1,357 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2006-2011 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 <QApplication>
-#include <QSettings>
-#include <QMenu>
-#include <qmmp/soundcore.h>
-#include <qmmpui/mediaplayer.h>
-#include <qmmpui/playlistmanager.h>
-#include "skin.h"
-#include "mainvisual.h"
-#include "button.h"
-#include "titlebar.h"
-#include "positionbar.h"
-#include "number.h"
-#include "togglebutton.h"
-#include "symboldisplay.h"
-#include "textscroller.h"
-#include "monostereo.h"
-#include "playstatus.h"
-#include "volumebar.h"
-#include "balancebar.h"
-#include "mainwindow.h"
-#include "timeindicator.h"
-#include "actionmanager.h"
-#include "display.h"
-
-MainDisplay::MainDisplay (QWidget *parent)
- : PixmapWidget (parent)
-{
- m_shaded = false;
- m_skin = Skin::instance();
- setPixmap (m_skin->getMain());
- setCursor(m_skin->getCursor(Skin::CUR_NORMAL));
- m_mw = qobject_cast<MainWindow*>(parent);
- m_titlebar = new TitleBar(this);
- m_titlebar->move(0,0);
- m_titlebar->setActive(true);
- m_previous = new Button (this, Skin::BT_PREVIOUS_N, Skin::BT_PREVIOUS_P, Skin::CUR_NORMAL);
- m_previous->setToolTip(tr("Previous"));
- connect (m_previous, SIGNAL (clicked()), parent, SLOT (previous()));
-
- m_play = new Button (this, Skin::BT_PLAY_N, Skin::BT_PLAY_P, Skin::CUR_NORMAL);
- m_play->setToolTip(tr("Play"));
- connect (m_play, SIGNAL (clicked()),parent,SLOT (play()));
- m_pause = new Button (this, Skin::BT_PAUSE_N,Skin::BT_PAUSE_P, Skin::CUR_NORMAL);
- m_pause->setToolTip(tr("Pause"));
- connect (m_pause,SIGNAL (clicked()),parent,SLOT (pause()));
- m_stop = new Button (this, Skin::BT_STOP_N,Skin::BT_STOP_P, Skin::CUR_NORMAL);
- m_stop->setToolTip(tr("Stop"));
- connect (m_stop,SIGNAL (clicked()),parent,SLOT (stop()));
- m_next = new Button (this, Skin::BT_NEXT_N,Skin::BT_NEXT_P, Skin::CUR_NORMAL);
- m_next->setToolTip(tr("Next"));
- connect (m_next,SIGNAL (clicked()),parent,SLOT (next()));
- m_eject = new Button (this, Skin::BT_EJECT_N,Skin::BT_EJECT_P, Skin::CUR_NORMAL);
- m_eject->setToolTip(tr("Add file"));
- connect (m_eject,SIGNAL (clicked()),parent,SLOT (addFile()));
- connect (m_skin, SIGNAL (skinChanged()), this, SLOT (updateSkin()));
- m_vis = new MainVisual (this);
-
- m_eqButton = new ToggleButton (this,Skin::BT_EQ_ON_N,Skin::BT_EQ_ON_P,
- Skin::BT_EQ_OFF_N,Skin::BT_EQ_OFF_P);
- m_eqButton->setToolTip(tr("Equalizer"));
- m_plButton = new ToggleButton (this,Skin::BT_PL_ON_N,Skin::BT_PL_ON_P,
- Skin::BT_PL_OFF_N,Skin::BT_PL_OFF_P);
- m_plButton->setToolTip(tr("Playlist"));
-
- m_repeatButton = new ToggleButton (this,Skin::REPEAT_ON_N,Skin::REPEAT_ON_P,
- Skin::REPEAT_OFF_N,Skin::REPEAT_OFF_P);
- connect(m_repeatButton,SIGNAL(clicked(bool)),this,SIGNAL(repeatableToggled(bool)));
- m_repeatButton->setToolTip(tr("Repeat playlist"));
- m_shuffleButton = new ToggleButton (this,Skin::SHUFFLE_ON_N,Skin::SHUFFLE_ON_P,
- Skin::SHUFFLE_OFF_N,Skin::SHUFFLE_OFF_P);
- m_shuffleButton->setToolTip(tr("Shuffle"));
- connect(m_shuffleButton,SIGNAL(clicked(bool)),this,SIGNAL(shuffleToggled(bool)));
-
- m_kbps = new SymbolDisplay(this,3);
- m_freq = new SymbolDisplay(this,2);
- m_text = new TextScroller (this);
- m_monoster = new MonoStereo (this);
- m_playstatus = new PlayStatus(this);
-
- m_volumeBar = new VolumeBar(this);
- m_volumeBar->setToolTip(tr("Volume"));
- connect(m_volumeBar, SIGNAL(sliderMoved(int)),SLOT(updateVolume()));
- connect(m_volumeBar, SIGNAL(sliderPressed()),SLOT(updateVolume()));
- connect(m_volumeBar, SIGNAL(sliderReleased()),m_text,SLOT(clear()));
-
- m_balanceBar = new BalanceBar(this);
- m_balanceBar->setToolTip(tr("Balance"));
- connect(m_balanceBar, SIGNAL(sliderMoved(int)),SLOT(updateVolume()));
- connect(m_balanceBar, SIGNAL(sliderPressed()),SLOT(updateVolume()));
- connect(m_balanceBar, SIGNAL(sliderReleased()),m_text,SLOT(clear()));
-
- m_posbar = new PositionBar(this);
- connect(m_posbar, SIGNAL(sliderPressed()),SLOT(showPosition()));
- connect(m_posbar, SIGNAL(sliderMoved(qint64)),SLOT(showPosition()));
- connect(m_posbar, SIGNAL(sliderReleased()),SLOT(updatePosition()));
-
- m_timeIndicator = new TimeIndicator(this);
- m_aboutWidget = new QWidget(this);
- m_core = SoundCore::instance();
- connect(m_core, SIGNAL(elapsedChanged(qint64)), SLOT(setTime(qint64)));
- connect(m_core, SIGNAL(bitrateChanged(int)), m_kbps, SLOT(display(int)));
- connect(m_core, SIGNAL(frequencyChanged(quint32)), SLOT(setSampleRate(quint32)));
- connect(m_core, SIGNAL(channelsChanged(int)), m_monoster, SLOT(setChannels(int)));
- connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(setState(Qmmp::State)));
- connect(m_core, SIGNAL(volumeChanged(int,int)), SLOT(setVolume(int, int)));
- connect(m_core, SIGNAL(elapsedChanged(qint64)),m_titlebar, SLOT(setTime(qint64)));
- PlayListManager *pl_manager = MediaPlayer::instance()->playListManager();
- connect(pl_manager, SIGNAL(repeatableListChanged(bool)), m_repeatButton, SLOT(setON(bool)));
- connect(pl_manager, SIGNAL(shuffleChanged(bool)), m_shuffleButton, SLOT(setON(bool)));
- updatePositions();
- updateMask();
-}
-
-MainDisplay::~MainDisplay()
-{
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- settings.setValue ("Playlist/visible",m_plButton->isChecked());
- settings.setValue ("Equalizer/visible",m_eqButton->isChecked());
-}
-
-void MainDisplay::updatePositions()
-{
- int r = m_skin->ratio();
- m_previous->move (r*16, r*88);
- m_play->move (r*39, r*88);
- m_pause->move (r*62, r*88);
- m_vis->move(r*24, r*43);
- m_stop->move (r*85, r*88);
- m_next->move (r*108, r*88);
- m_eject->move (r*136, r*89);
- m_posbar->move (r*16, r*72);
- m_eqButton->move (r*219, r*58);
- m_plButton->move (r*241, r*58);
- m_repeatButton->move (r*210, r*89);
- m_shuffleButton->move (r*164, r*89);
- m_kbps->move (r*111, r*43);
- m_freq->move (r*156, r*43);
- m_text->resize (r*154, r*15);
- m_text->move (r*109, r*23);
- m_monoster->move (r*212, r*41);
- m_playstatus->move(r*24, r*28);
- m_volumeBar->move(r*107, r*57);
- m_balanceBar->move(r*177, r*57);
- m_timeIndicator->move(r*34, r*26);
- m_aboutWidget->setGeometry(r*247,r*83,r*20,r*25);
-}
-
-void MainDisplay::setTime (qint64 t)
-{
- m_posbar->setValue (t);
- m_timeIndicator->setTime(t/1000);
-}
-void MainDisplay::setDuration(qint64 t)
-{
- m_posbar->setMaximum (t);
- m_timeIndicator->setSongDuration(t/1000);
-}
-
-void MainDisplay::setState(Qmmp::State state)
-{
- switch ((int) state)
- {
- case Qmmp::Playing:
- m_playstatus->setStatus(PlayStatus::PLAY);
- m_timeIndicator->setNeedToShowTime(true);
- setDuration(m_core->totalTime());
- break;
- case Qmmp::Paused:
- m_playstatus->setStatus(PlayStatus::PAUSE);
- break;
- case Qmmp::Stopped:
- m_playstatus->setStatus(PlayStatus::STOP);
- m_monoster->setChannels (0);
- m_timeIndicator->setNeedToShowTime(false);
- m_posbar->setValue (0);
- m_posbar->setMaximum (0);
- m_titlebar->setTime(-1);
- }
-}
-
-void MainDisplay::setVolume(int left, int right)
-{
- int maxVol = qMax(left, right);
- m_volumeBar->setValue(maxVol);
- if (maxVol && !m_volumeBar->isPressed())
- m_balanceBar->setValue((right - left) * 100/maxVol);
-}
-
-void MainDisplay::updateSkin()
-{
- setPixmap (m_skin->getMain());
- m_mw->resize(size());
- setCursor(m_skin->getCursor(Skin::CUR_NORMAL));
- setMinimalMode(m_shaded);
- updatePositions();
-}
-
-void MainDisplay::updateMask()
-{
- m_mw->clearMask();
- m_mw->setMask(QRegion(0,0,m_mw->width(),m_mw->height()));
- QRegion region = m_skin->getRegion(m_shaded? Skin::WINDOW_SHADE : Skin::NORMAL);
- if (!region.isEmpty())
- m_mw->setMask(region);
-}
-
-void MainDisplay::setMinimalMode(bool b)
-{
- m_shaded = b;
- int r = m_skin->ratio();
-
- if(m_shaded)
- m_mw->resize(r*275,r*14);
- else
- m_mw->resize(r*275,r*116);
- updateMask();
-}
-
-void MainDisplay::setActive(bool b)
-{
- m_titlebar->setActive(b);
-}
-
-void MainDisplay::setSampleRate(quint32 rate)
-{
- m_freq->display((int) rate/1000);
-}
-//TODO optimize this connections
-void MainDisplay::setEQ (QWidget* w)
-{
- m_equlizer = w;
- m_eqButton->setON (m_equlizer->isVisible());
- ACTION(ActionManager::SHOW_EQUALIZER)->setChecked(m_equlizer->isVisible());
-
- connect (ACTION(ActionManager::SHOW_EQUALIZER), SIGNAL(triggered(bool)),
- m_equlizer, SLOT (setVisible (bool)));
- connect (ACTION(ActionManager::SHOW_EQUALIZER), SIGNAL(triggered(bool)),
- m_eqButton, SLOT (setON (bool)));
-
- connect (m_eqButton, SIGNAL(clicked(bool)),
- ACTION(ActionManager::SHOW_EQUALIZER), SLOT(setChecked (bool)));
- connect (m_eqButton, SIGNAL(clicked(bool)), m_equlizer, SLOT (setVisible (bool)));
- connect (m_equlizer, SIGNAL(closed ()), m_eqButton, SLOT (click()));
-}
-
-void MainDisplay::setPL (QWidget* w)
-{
- m_playlist = w;
- m_plButton->setON (m_playlist->isVisible());
- ACTION(ActionManager::SHOW_PLAYLIST)->setChecked(m_playlist->isVisible());
-
- connect (ACTION(ActionManager::SHOW_PLAYLIST), SIGNAL(triggered(bool)),
- m_playlist, SLOT (setVisible (bool)));
- connect (ACTION(ActionManager::SHOW_PLAYLIST), SIGNAL(triggered(bool)),
- m_plButton, SLOT (setON (bool)));
-
- connect (m_plButton, SIGNAL(clicked(bool)),
- ACTION(ActionManager::SHOW_PLAYLIST), SLOT(setChecked (bool)));
- connect (m_plButton, SIGNAL (clicked (bool)), m_playlist, SLOT (setVisible (bool)));
- connect (m_playlist, SIGNAL (closed ()), m_plButton, SLOT (click()));
-}
-
-bool MainDisplay::isPlaylistVisible() const
-{
- return m_plButton->isChecked();
-}
-
-bool MainDisplay::isEqualizerVisible() const
-{
- return m_eqButton->isChecked();
-}
-
-void MainDisplay::updateVolume()
-{
- if(sender() == m_volumeBar)
- m_text->setText(tr("Volume: %1%").arg(m_volumeBar->value()));
- if(sender() == m_balanceBar)
- {
- if(m_balanceBar->value() > 0)
- m_text->setText(tr("Balance: %1% right").arg(m_balanceBar->value()));
- else if(m_balanceBar->value() < 0)
- m_text->setText(tr("Balance: %1% left").arg(-m_balanceBar->value()));
- else
- m_text->setText(tr("Balance: center"));
- }
- m_mw->setVolume(m_volumeBar->value(), m_balanceBar->value());
-}
-
-void MainDisplay::showPosition()
-{
- int sec = m_posbar->value() / 1000;
- if(sec > 3600)
- sec /= 60;
- QString time = QString("%1:%2").arg(sec/60, 2, 10, QChar('0')).arg(sec%60, 2, 10, QChar('0'));
- m_text->setText(tr("Seek to: %1").arg(time));
-}
-
-void MainDisplay::updatePosition()
-{
- m_text->clear();
- m_core->seek(m_posbar->value());
-}
-
-void MainDisplay::wheelEvent (QWheelEvent *e)
-{
- m_mw->setVolume(m_volumeBar->value()+e->delta()/10, m_balanceBar->value());
-}
-
-bool MainDisplay::isRepeatable() const
-{
- return m_repeatButton->isChecked();
-}
-
-bool MainDisplay::isShuffle() const
-{
- return m_shuffleButton->isChecked();
-}
-
-void MainDisplay::setIsRepeatable(bool yes)
-{
- m_repeatButton->setON(yes);
-}
-
-void MainDisplay::setIsShuffle(bool yes)
-{
- m_shuffleButton->setON(yes);
-}
-
-void MainDisplay::mousePressEvent(QMouseEvent *e)
-{
- if (e->button() == Qt::RightButton)
- m_mw->menu()->exec(e->globalPos());
- else if(e->button() == Qt::LeftButton && m_aboutWidget->underMouse())
- m_mw->about();
- PixmapWidget::mousePressEvent(e);
-}
-