diff --git a/include/Nazara/Audio/Music.hpp b/include/Nazara/Audio/Music.hpp index f31882890..29e71fab7 100644 --- a/include/Nazara/Audio/Music.hpp +++ b/include/Nazara/Audio/Music.hpp @@ -73,6 +73,7 @@ namespace Nz bool FillAndQueueBuffer(unsigned int buffer); void MusicThread(); + void StopThread(); static MusicLoader::LoaderList s_loaders; }; diff --git a/src/Nazara/Audio/Music.cpp b/src/Nazara/Audio/Music.cpp index d47ee8f0f..b2b0e7e3b 100644 --- a/src/Nazara/Audio/Music.cpp +++ b/src/Nazara/Audio/Music.cpp @@ -91,7 +91,7 @@ namespace Nz { if (m_impl) { - Stop(); + StopThread(); delete m_impl; m_impl = nullptr; @@ -339,13 +339,8 @@ namespace Nz { NazaraAssert(m_impl, "Music not created"); - if (m_impl->streaming) - { - m_impl->streaming = false; - m_impl->thread.Join(); - - SetPlayingOffset(0); - } + StopThread(); + SetPlayingOffset(0); } bool Music::FillAndQueueBuffer(unsigned int buffer) @@ -444,5 +439,14 @@ namespace Nz alDeleteBuffers(NAZARA_AUDIO_STREAMED_BUFFER_COUNT, buffers); } + void Music::StopThread() + { + if (m_impl->streaming) + { + m_impl->streaming = false; + m_impl->thread.Join(); + } + } + MusicLoader::LoaderList Music::s_loaders; }