aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/qmmp/inputsource.cpp3
-rw-r--r--src/qmmp/inputsource.h1
-rw-r--r--src/qmmp/qmmpaudioengine.cpp5
3 files changed, 9 insertions, 0 deletions
diff --git a/src/qmmp/inputsource.cpp b/src/qmmp/inputsource.cpp
index 59c257c80..cc3c7c353 100644
--- a/src/qmmp/inputsource.cpp
+++ b/src/qmmp/inputsource.cpp
@@ -41,6 +41,9 @@ QString InputSource::contentType() const
return QString();
}
+void InputSource::stop()
+{}
+
const QString InputSource::path() const
{
return m_path;
diff --git a/src/qmmp/inputsource.h b/src/qmmp/inputsource.h
index a1bc7d018..b40a48277 100644
--- a/src/qmmp/inputsource.h
+++ b/src/qmmp/inputsource.h
@@ -69,6 +69,7 @@ public:
* Returns content type of the input stream. Default implementation returns empty string.
*/
virtual QString contentType() const;
+ virtual void stop();
/*!
* Returns input source path or url.
*/
diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp
index be4f1a16e..ea5cb9d71 100644
--- a/src/qmmp/qmmpaudioengine.cpp
+++ b/src/qmmp/qmmpaudioengine.cpp
@@ -247,7 +247,12 @@ void QmmpAudioEngine::stop()
m_output->recycler()->cond()->wakeAll();
if(isRunning())
+ {
+ if(m_decoder && m_inputs[m_decoder])
+ m_inputs[m_decoder]->stop();
+
wait();
+ }
if (m_output)
{