From 67d3146229b4ef2073b2cf72a95367572b350ced Mon Sep 17 00:00:00 2001 From: Bart van Strien Date: Fri, 2 Dec 2016 13:57:20 +0100 Subject: [PATCH] Fix love.audio.play{sources...} so it can resume paused sources --HG-- branch : minor --- src/modules/audio/openal/Source.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/audio/openal/Source.cpp b/src/modules/audio/openal/Source.cpp index 448661d0c..56c2f661a 100644 --- a/src/modules/audio/openal/Source.cpp +++ b/src/modules/audio/openal/Source.cpp @@ -901,12 +901,17 @@ bool Source::playAtomic(const std::vector &sources, const toPlay.reserve(sources.size()); for (size_t i = 0; i < sources.size(); i++) { + Source *source = (Source*) sources[i]; + // Paused sources have wasPlaying set to true, so do this first + if (!source->isPlaying()) + toPlay.push_back(ids[i]); + + // If it wasn't playing (nor paused), we have just allocated a new + // source if (wasPlaying[i]) continue; - Source *source = (Source*) sources[i]; source->source = ids[i]; source->prepareAtomic(); - toPlay.push_back(ids[i]); } alGetError();