aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-08-19 13:27:36 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-08-19 13:27:36 +0000
commit17b5ec3eb9c85836d1f3d832b6f27507de983b2b (patch)
tree31dbddfb2823b88ecbf4d3995e08ce00be536bdb /src/plugins
parent602d179076a6b4b478296b4b93fecd7d06fdf5ef (diff)
downloadqmmp-17b5ec3eb9c85836d1f3d832b6f27507de983b2b.tar.gz
qmmp-17b5ec3eb9c85836d1f3d832b6f27507de983b2b.tar.bz2
qmmp-17b5ec3eb9c85836d1f3d832b6f27507de983b2b.zip
qsui: reduced cpu usage (patch by Hong Jen Yee)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5428 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Ui/qsui/mainwindow.cpp2
-rw-r--r--src/plugins/Ui/qsui/qsuianalyzer.cpp17
-rw-r--r--src/plugins/Ui/qsui/qsuianalyzer.h3
3 files changed, 21 insertions, 1 deletions
diff --git a/src/plugins/Ui/qsui/mainwindow.cpp b/src/plugins/Ui/qsui/mainwindow.cpp
index 399eff06a..794e4505e 100644
--- a/src/plugins/Ui/qsui/mainwindow.cpp
+++ b/src/plugins/Ui/qsui/mainwindow.cpp
@@ -214,6 +214,7 @@ void MainWindow::showState(Qmmp::State state)
case Qmmp::Playing:
{
updateStatus();
+ m_analyzer->start();
m_analyzer->setCover(MetaDataManager::instance()->getCover(m_core->url()));
CoverWidget *cw = qobject_cast<CoverWidget *>(m_ui.coverDockWidget->widget());
cw->setCover(MetaDataManager::instance()->getCover(m_core->url()));
@@ -224,6 +225,7 @@ void MainWindow::showState(Qmmp::State state)
break;
case Qmmp::Stopped:
updateStatus();
+ m_analyzer->stop();
m_timeLabel->clear();
m_slider->setValue(0);
m_analyzer->clearCover();
diff --git a/src/plugins/Ui/qsui/qsuianalyzer.cpp b/src/plugins/Ui/qsui/qsuianalyzer.cpp
index 3df0b7935..04c867ce7 100644
--- a/src/plugins/Ui/qsui/qsuianalyzer.cpp
+++ b/src/plugins/Ui/qsui/qsuianalyzer.cpp
@@ -45,6 +45,7 @@ QSUiAnalyzer::QSUiAnalyzer (QWidget *parent) : Visual (parent)
m_offset = 0;
m_update = false;
m_show_cover = false;
+ m_running = false;
m_pixLabel = new QLabel(this);
createMenu();
@@ -156,7 +157,8 @@ void QSUiAnalyzer::hideEvent (QHideEvent *)
void QSUiAnalyzer::showEvent (QShowEvent *)
{
- m_timer->start();
+ if(m_running)
+ m_timer->start();
}
void QSUiAnalyzer::resizeEvent(QResizeEvent *)
@@ -402,3 +404,16 @@ void QSUiAnalyzer::writeSettings()
settings.setValue("vis_show_cover", m_coverAction->isChecked());
settings.endGroup();
}
+
+void QSUiAnalyzer::start()
+{
+ m_running = true;
+ if(isVisible())
+ m_timer->start();
+}
+
+void QSUiAnalyzer::stop()
+{
+ m_running = false;
+ m_timer->stop();
+}
diff --git a/src/plugins/Ui/qsui/qsuianalyzer.h b/src/plugins/Ui/qsui/qsuianalyzer.h
index c2032f402..1c68e84f9 100644
--- a/src/plugins/Ui/qsui/qsuianalyzer.h
+++ b/src/plugins/Ui/qsui/qsuianalyzer.h
@@ -42,6 +42,8 @@ public:
void clear();
void clearCover();
QSize sizeHint() const;
+ void start();
+ void stop();
public slots:
void readSettings();
@@ -91,6 +93,7 @@ private:
QActionGroup *m_fpsGroup;
QActionGroup *m_analyzerFalloffGroup;
QActionGroup *m_peaksFalloffGroup;
+ bool m_running;
};