aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Engines
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-03-10 19:22:50 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-03-10 19:22:50 +0000
commit1b726e44ba73a43e080e9323fdd4ebfaef7232bf (patch)
tree576b6a0f11da04c087aa4307b04be88ce6037df2 /src/plugins/Engines
parent52c005f14da27b0c6161be2011216c147f0d4236 (diff)
downloadqmmp-1b726e44ba73a43e080e9323fdd4ebfaef7232bf.tar.gz
qmmp-1b726e44ba73a43e080e9323fdd4ebfaef7232bf.tar.bz2
qmmp-1b726e44ba73a43e080e9323fdd4ebfaef7232bf.zip
fixed mplayer plugin build
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8758 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Engines')
-rw-r--r--src/plugins/Engines/mplayer/mplayerengine.cpp22
-rw-r--r--src/plugins/Engines/mplayer/mplayerengine.h22
2 files changed, 21 insertions, 23 deletions
diff --git a/src/plugins/Engines/mplayer/mplayerengine.cpp b/src/plugins/Engines/mplayer/mplayerengine.cpp
index 418b3fcba..70c2097b5 100644
--- a/src/plugins/Engines/mplayer/mplayerengine.cpp
+++ b/src/plugins/Engines/mplayer/mplayerengine.cpp
@@ -27,8 +27,10 @@
#include <QRegExp>
#include <QSettings>
#include <QFileInfo>
+#include <QDebug>
#include <qmmp/trackinfo.h>
#include <qmmp/inputsource.h>
+#include <qmmp/volumehandler.h>
#include "mplayerengine.h"
//#define MPLAYER_DEBUG
@@ -97,16 +99,7 @@ QStringList MplayerInfo::filters()
MplayerEngine::MplayerEngine(QObject *parent)
: AbstractEngine(parent)
{
- m_source = nullptr;
- m_bitrate = 0;
- m_samplerate = 0;
- m_channels = 0;
- m_bitsPerSample = 0;
- m_length = 0;
- m_currentTime = 0;
- m_muted = false;
- m_user_stop = false;
- m_process = nullptr;
+ connect(VolumeHandler::instance(), SIGNAL(mutedChanged(bool)), SLOT(setMuted(bool)));
}
MplayerEngine::~MplayerEngine()
@@ -282,6 +275,12 @@ void MplayerEngine::onError(QProcess::ProcessError error)
qWarning("MplayerEngine: process error: %d", error);
}
+void MplayerEngine::onStateChanged(QProcess::ProcessState state)
+{
+ if(state == QProcess::Running)
+ setMuted(VolumeHandler::instance()->isMuted());
+}
+
void MplayerEngine::startMplayerProcess()
{
initialize();
@@ -290,6 +289,7 @@ void MplayerEngine::startMplayerProcess()
m_process = new QProcess(this);
connect(m_process, SIGNAL(readyReadStandardOutput()), SLOT(readStdOut()));
connect(m_process, SIGNAL(error(QProcess::ProcessError)), SLOT(onError(QProcess::ProcessError)));
+ connect(m_process, SIGNAL(stateChanged(QProcess::ProcessState)), SLOT(onStateChanged(QProcess::ProcessState)));
m_process->start ("mplayer", m_args);
StateHandler::instance()->dispatch(Qmmp::Playing);
StateHandler::instance()->dispatch(m_length);
@@ -299,6 +299,4 @@ void MplayerEngine::startMplayerProcess()
m_source->deleteLater();
m_source = nullptr;
m_currentTime = 0;
- if(m_muted)
- setMuted(true);
}
diff --git a/src/plugins/Engines/mplayer/mplayerengine.h b/src/plugins/Engines/mplayer/mplayerengine.h
index 0b890e3f5..8b51d1605 100644
--- a/src/plugins/Engines/mplayer/mplayerengine.h
+++ b/src/plugins/Engines/mplayer/mplayerengine.h
@@ -55,26 +55,26 @@ public:
void seek(qint64) override;
void stop() override;
void pause() override;
- void setMuted(bool muted) override;
private slots:
+ void setMuted(bool muted);
void readStdOut();
void onError(QProcess::ProcessError error);
+ void onStateChanged(QProcess::ProcessState state);
void startMplayerProcess();
private:
QStringList m_args;
- QProcess *m_process;
- int m_bitrate;
- int m_samplerate;
- int m_channels;
- int m_bitsPerSample;
- bool m_muted;
- bool m_user_stop;
- qint64 m_currentTime;
- qint64 m_length;
+ QProcess *m_process = nullptr;
+ int m_bitrate = 0;
+ int m_samplerate = 0;
+ int m_channels = 0;
+ int m_bitsPerSample = 0;
+ bool m_user_stop = false;
+ qint64 m_currentTime = 0;
+ qint64 m_length = 0;
QQueue <InputSource*> m_sources;
- InputSource *m_source;
+ InputSource *m_source = nullptr;
};