diff options
-rw-r--r-- | Alc/alsa.c | 1 | ||||
-rw-r--r-- | Alc/dsound.c | 2 | ||||
-rw-r--r-- | Alc/oss.c | 1 | ||||
-rw-r--r-- | Alc/solaris.c | 2 | ||||
-rw-r--r-- | Alc/wave.c | 2 |
5 files changed, 8 insertions, 0 deletions
@@ -706,6 +706,7 @@ static void alsa_stop_playback(ALCdevice *device) StopThread(data->thread); data->thread = NULL; } + data->killNow = 0; free(data->buffer); data->buffer = NULL; } diff --git a/Alc/dsound.c b/Alc/dsound.c index 111183f3..374cb00c 100644 --- a/Alc/dsound.c +++ b/Alc/dsound.c @@ -445,6 +445,8 @@ static void DSoundStopPlayback(ALCdevice *device) StopThread(pData->thread); pData->thread = NULL; + pData->killNow = 0; + IDirectSoundBuffer_Release(pData->DSsbuffer); pData->DSsbuffer = NULL; if (pData->DSpbuffer) @@ -292,6 +292,7 @@ static void oss_stop_playback(ALCdevice *device) StopThread(data->thread); data->thread = NULL; + data->killNow = 0; if(ioctl(data->fd, SNDCTL_DSP_RESET) != 0) AL_PRINT("Error resetting device: %s\n", strerror(errno)); diff --git a/Alc/solaris.c b/Alc/solaris.c index 695f8f86..6cfaaa11 100644 --- a/Alc/solaris.c +++ b/Alc/solaris.c @@ -217,6 +217,8 @@ static void solaris_stop_playback(ALCdevice *device) StopThread(data->thread); data->thread = NULL; + data->killNow = 0; + free(data->mix_data); data->mix_data = NULL; } @@ -251,6 +251,8 @@ static void wave_stop_playback(ALCdevice *device) StopThread(data->thread); data->thread = NULL; + data->killNow = 0; + free(data->buffer); data->buffer = NULL; |