mirror of
https://github.com/love2d/love.git
synced 2026-08-20 12:40:20 +02:00
Improve stop and rewind logic for openal
This commit is contained in:
@@ -89,6 +89,7 @@ namespace openal
|
|||||||
if(!i->first->update())
|
if(!i->first->update())
|
||||||
{
|
{
|
||||||
i->first->stopAtomic();
|
i->first->stopAtomic();
|
||||||
|
i->first->rewindAtomic();
|
||||||
i->first->release();
|
i->first->release();
|
||||||
available.push(i->second);
|
available.push(i->second);
|
||||||
playing.erase(i);
|
playing.erase(i);
|
||||||
|
|||||||
@@ -153,9 +153,7 @@ namespace openal
|
|||||||
alSourcei(source, AL_LOOPING, isLooping() ? AL_TRUE : AL_FALSE);
|
alSourcei(source, AL_LOOPING, isLooping() ? AL_TRUE : AL_FALSE);
|
||||||
return !isStopped();
|
return !isStopped();
|
||||||
}
|
}
|
||||||
else if (type == TYPE_STREAM)
|
else if (type == TYPE_STREAM && (isLooping() || !isFinished()))
|
||||||
{
|
|
||||||
if (isLooping() || !isFinished())
|
|
||||||
{
|
{
|
||||||
// Number of processed buffers.
|
// Number of processed buffers.
|
||||||
ALint processed;
|
ALint processed;
|
||||||
@@ -192,17 +190,6 @@ namespace openal
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
// Actually stop the source,
|
|
||||||
// 'just running out' is bad
|
|
||||||
// practice, and prevents
|
|
||||||
// rewinds.
|
|
||||||
stopAtomic();
|
|
||||||
rewindAtomic();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user