aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALc.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-08-15 09:39:18 -0700
committerChris Robinson <[email protected]>2009-08-15 09:39:18 -0700
commit510ccc7f1786bffd183f5a30c7e2e3f8e8026371 (patch)
tree8e4c33cc52d872ae50eb32debfcf6119c5791f1d /Alc/ALc.c
parent43067ed2b8d4ab9c3f46b8ee002d6c3f6480cc4f (diff)
Store the effect and filter lists in the device
Diffstat (limited to 'Alc/ALc.c')
-rw-r--r--Alc/ALc.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index 492bed92..ece52782 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -216,8 +216,6 @@ BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
if(!init_done)
break;
ReleaseALC();
- ReleaseALEffects();
- ReleaseALFilters();
FreeALConfig();
ALTHUNK_EXIT();
DeleteCriticalSection(&g_csMutex);
@@ -235,8 +233,6 @@ static void my_deinit()
once = AL_TRUE;
ReleaseALC();
- ReleaseALEffects();
- ReleaseALFilters();
FreeALConfig();
ALTHUNK_EXIT();
DeleteCriticalSection(&g_csMutex);
@@ -1376,6 +1372,20 @@ ALCAPI ALCboolean ALCAPIENTRY alcCloseDevice(ALCdevice *pDevice)
#endif
ReleaseALBuffers(pDevice);
}
+ if(pDevice->EffectCount > 0)
+ {
+#ifdef _DEBUG
+ AL_PRINT("alcCloseDevice(): deleting %d Effect(s)\n", pDevice->EffectCount);
+#endif
+ ReleaseALEffects(pDevice);
+ }
+ if(pDevice->FilterCount > 0)
+ {
+#ifdef _DEBUG
+ AL_PRINT("alcCloseDevice(): deleting %d Filter(s)\n", pDevice->FilterCount);
+#endif
+ ReleaseALFilters(pDevice);
+ }
//Release device structure
memset(pDevice, 0, sizeof(ALCdevice));