From 173999804594a7a2fbc7ee93e0dfd5d0b20a0f59 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Wed, 15 Jan 2014 15:14:25 -0800 Subject: Stop the OpenSL buffer queue when stopping the device --- Alc/backends/opensl.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Alc') diff --git a/Alc/backends/opensl.c b/Alc/backends/opensl.c index 4e260879..ed5ce3f6 100644 --- a/Alc/backends/opensl.c +++ b/Alc/backends/opensl.c @@ -401,6 +401,16 @@ static ALCboolean opensl_start_playback(ALCdevice *Device) static void opensl_stop_playback(ALCdevice *Device) { osl_data *data = Device->ExtraData; + SLPlayItf player; + SLresult result; + + result = SLObjectItf_GetInterface(data->bufferQueueObject, SL_IID_PLAY, &player); + PRINTERR(result, "bufferQueue->GetInterface"); + if(SL_RESULT_SUCCESS == result) + { + result = SLPlayItf_SetPlayState(player, SL_PLAYSTATE_STOPPED); + PRINTERR(result, "player->SetPlayState"); + } free(data->buffer); data->buffer = NULL; -- cgit v1.2.3