Initialize ALC resources in the file they're used in
This commit is contained in:
parent
7daefd4e77
commit
af626fdded
12
router/alc.c
12
router/alc.c
@ -241,6 +241,9 @@ static const ALCint alcMajorVersion = 1;
|
||||
static const ALCint alcMinorVersion = 1;
|
||||
|
||||
|
||||
static almtx_t EnumerationLock;
|
||||
static almtx_t ContextSwitchLock;
|
||||
|
||||
static ATOMIC(ALCenum) LastError = ATOMIC_INIT_STATIC(ALC_NO_ERROR);
|
||||
static PtrIntMap DeviceIfaceMap = PTRINTMAP_STATIC_INITIALIZE;
|
||||
static PtrIntMap ContextIfaceMap = PTRINTMAP_STATIC_INITIALIZE;
|
||||
@ -320,6 +323,12 @@ static ALint GetDriverIndexForName(const EnumeratedList *list, const ALCchar *na
|
||||
return -1;
|
||||
}
|
||||
|
||||
void InitALC(void)
|
||||
{
|
||||
almtx_init(&EnumerationLock, almtx_recursive);
|
||||
almtx_init(&ContextSwitchLock, almtx_plain);
|
||||
}
|
||||
|
||||
void ReleaseALC(void)
|
||||
{
|
||||
ClearDeviceList(&DevicesList);
|
||||
@ -328,6 +337,9 @@ void ReleaseALC(void)
|
||||
|
||||
ResetPtrIntMap(&ContextIfaceMap);
|
||||
ResetPtrIntMap(&DeviceIfaceMap);
|
||||
|
||||
almtx_destroy(&ContextSwitchLock);
|
||||
almtx_destroy(&EnumerationLock);
|
||||
}
|
||||
|
||||
|
||||
|
@ -16,9 +16,6 @@ DriverIface *DriverList = NULL;
|
||||
int DriverListSize = 0;
|
||||
static int DriverListSizeMax = 0;
|
||||
|
||||
almtx_t EnumerationLock;
|
||||
almtx_t ContextSwitchLock;
|
||||
|
||||
enum LogLevel LogLevel = LogLevel_Error;
|
||||
FILE *LogFile;
|
||||
|
||||
@ -56,8 +53,8 @@ BOOL APIENTRY DllMain(HINSTANCE UNUSED(module), DWORD reason, void* UNUSED(reser
|
||||
LogLevel = l;
|
||||
}
|
||||
LoadDriverList();
|
||||
almtx_init(&EnumerationLock, almtx_recursive);
|
||||
almtx_init(&ContextSwitchLock, almtx_plain);
|
||||
|
||||
InitALC();
|
||||
break;
|
||||
|
||||
case DLL_THREAD_ATTACH:
|
||||
@ -67,8 +64,6 @@ BOOL APIENTRY DllMain(HINSTANCE UNUSED(module), DWORD reason, void* UNUSED(reser
|
||||
case DLL_PROCESS_DETACH:
|
||||
ReleaseALC();
|
||||
|
||||
almtx_destroy(&ContextSwitchLock);
|
||||
almtx_destroy(&EnumerationLock);
|
||||
for(i = 0;i < DriverListSize;i++)
|
||||
{
|
||||
if(DriverList[i].Module)
|
||||
|
@ -153,9 +153,7 @@ ALint RemovePtrIntMapKey(PtrIntMap *map, ALvoid *key);
|
||||
ALint LookupPtrIntMapKey(PtrIntMap *map, ALvoid *key);
|
||||
|
||||
|
||||
extern almtx_t EnumerationLock;
|
||||
extern almtx_t ContextSwitchLock;
|
||||
|
||||
void InitALC(void);
|
||||
void ReleaseALC(void);
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user