Chris Robinson
b3f7df6f5b
Use a typedef to declare extern atomic variables
...
Some systems use anonymous structs for atomic storage, and extern declarations
need to have the same type as their non-extern definition.
2017-10-07 14:58:35 -07:00
Chris Robinson
67ab9ec466
Don't trace for every GetDriverIndexForName call
2017-07-11 22:43:22 -07:00
Chris Robinson
0da55fd912
Trace a version for the router
2017-07-11 00:43:15 -07:00
Chris Robinson
e4e240fa9b
Support ALC_EXT_thread_local_context in the router
...
Note that a given context's device must also support the extension to work. The
router's support simply lets a driver's capabilities through.
2017-07-07 18:41:03 -07:00
Chris Robinson
6be752a9b1
Add methods for thread-local contexts to the router
2017-07-07 18:33:54 -07:00
Chris Robinson
faefa1d554
Revert "Try all drivers for an unknown device name"
...
This reverts commit dadf7a4cf2bb008fc9e20251f6e8895c0f5bf0d4.
2017-07-05 14:18:16 -07:00
Chris Robinson
dadf7a4cf2
Try all drivers for an unknown device name
2017-07-05 12:23:08 -07:00
Chris Robinson
3af2ff7b25
Trace if a driver was found for a device name
2017-07-05 12:16:28 -07:00
Chris Robinson
72ce0d1e9c
Open a device only when a driver index is found
2017-07-03 22:14:15 -07:00
Chris Robinson
a14f651034
Flush the log file after writing
2017-07-01 15:34:42 -07:00
Chris Robinson
958fa34272
Use a weaker memory order for the current context iface
2017-07-01 15:25:39 -07:00
Chris Robinson
af626fdded
Initialize ALC resources in the file they're used in
2017-07-01 15:25:11 -07:00
Chris Robinson
7daefd4e77
Use the al alloc functions instead of standard
2017-07-01 12:22:25 -07:00
Chris Robinson
32bda7b94c
Add tracing capabilities to the router
2017-06-30 17:22:15 -07:00
Chris Robinson
77e317609b
Add special handling for alGerError in the router
2017-06-30 17:21:26 -07:00
Chris Robinson
ce9222b686
Clear initial ALC version vars before querying it
2017-06-29 23:21:07 -07:00
Chris Robinson
d874b6bb27
Don't assume the first driver has the default device
2017-06-29 15:59:16 -07:00
Chris Robinson
00694826ef
Protect context switches with a lock in the router
2017-06-29 10:56:32 -07:00
Chris Robinson
058d57ef03
Protect device enumeration in the router with a mutex
2017-06-29 10:39:27 -07:00
Chris Robinson
cee2d226d2
Return the extension list in the router
2017-06-29 08:55:44 -07:00
Chris Robinson
f08a7b341f
Prepare the new driver in a local variable
2017-06-29 08:46:06 -07:00
Chris Robinson
15e6821147
Avoid unnecessary reenumeration in the router
2017-06-29 08:35:21 -07:00
Chris Robinson
3a16fed279
Handle the ALC version for some extension capabilities
...
Also fix some improper parenthesis.
2017-06-28 23:18:39 -07:00
Chris Robinson
ef7eced7a7
Properly clean up allocated memory at exit
2017-06-28 22:39:11 -07:00
Chris Robinson
a729007887
Implement setting a context current in the router
2017-06-28 21:54:44 -07:00
Chris Robinson
323162c49f
Implement creating and destroying contexts
2017-06-28 21:15:30 -07:00
Chris Robinson
ea4379c5b7
Implement opening and closing devices in the router
2017-06-28 21:10:02 -07:00
Chris Robinson
6124f447cd
Implement enumeration in the router
2017-06-28 20:45:23 -07:00
Chris Robinson
47f1db36a7
Partially implement ALC functions in the router
2017-06-28 20:03:36 -07:00
Chris Robinson
b88b57868a
Add a ptr-to-int map
2017-06-28 19:09:38 -07:00
Chris Robinson
9fd7349220
Add forwarding for the AL functions
2017-06-28 17:02:43 -07:00
Chris Robinson
cfec20830b
Load driver dlls in the router
2017-06-28 16:41:38 -07:00
Chris Robinson
ebee8da05c
Start a router DLL
...
Experimental, Windows only. This is intended as an alternative to Creative's
router DLL, fixing a few issues with it (falsely reporting extensions that
aren't supported, not being able to query the ALC version without a device, and
not being able to use ALC extension functions).
When enabled OpenAL Soft's DLL is built as soft_oal.dll, while the router is
OpenAL32.dll.
2017-06-28 12:42:20 -07:00