From 1b726e44ba73a43e080e9323fdd4ebfaef7232bf Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 10 Mar 2019 19:22:50 +0000 Subject: fixed mplayer plugin build git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8758 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Engines/mplayer/mplayerengine.cpp | 22 ++++++++++------------ src/plugins/Engines/mplayer/mplayerengine.h | 22 +++++++++++----------- 2 files changed, 21 insertions(+), 23 deletions(-) (limited to 'src/plugins/Engines') 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 #include #include +#include #include #include +#include #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 m_sources; - InputSource *m_source; + InputSource *m_source = nullptr; }; -- cgit v1.2.3-13-gbd6f