Chris Robinson
0e7d5736c0
Add EFX functions back to the router
...
They're necessary for proper exports whem building the router. And if there's
ever a spec update that standardizes them, they'll be needed anyway.
2022-06-18 08:20:34 -07:00
Chris Robinson
410f08c4e4
Forward the DriverIface constructor's name
2022-02-26 12:06:12 -08:00
Chris Robinson
c2d2ef2c0e
Don't handle EFX functions in the router
...
Creative's wrapper driver doesn't handle them through alcGetProcAddress, at
least with a null device. For this to work properly, they'd have to be loaded
per-context instead of per-driver.
2022-02-26 10:41:06 -08:00
Chris Robinson
633c332dee
Work around a MinGW thread_local bug
...
MinGW-w64 generates bad code when accessing extern thread_local objects.
Wrapper functions are used to ensure it only accesses them from the same place
they're defined. This unfortunately adds a bit of overhead for what should be a
relatively simple thing.
These functions are inlined for non-MinGW targets, avoiding the overhead on
non-affected targets.
2021-12-20 10:27:39 -08:00
Chris Robinson
27e8807a5b
Export EFX functions from the router
2021-01-27 21:24:03 -08:00
Chris Robinson
cf64dc1103
Fix up some more uses of [AL[C]]void
2020-04-28 14:48:12 -07:00
Chris Robinson
b4d56d3fdf
Remove the UNUSED macro
2019-07-28 17:15:34 -07:00
Chris Robinson
da150572f9
Clean up the DriverIface in its destructor
2018-10-30 17:03:21 -07:00
Chris Robinson
08aa9d898b
Remove an unnecessary include
2018-10-30 16:32:25 -07:00
Chris Robinson
f747ac8882
Clean up the router's PtrIntMap
2018-10-30 14:28:19 -07:00
Chris Robinson
e2a1dd4503
Use std::wstring in place of some fixed WCHAR arrays
2018-10-30 09:31:52 -07:00
Chris Robinson
c17e59f63a
Use std::vector instead of custom dynamic arrays
2018-10-30 08:33:40 -07:00
Chris Robinson
e75e0a342e
Use C++ atomics and mutexes in the router
2018-10-30 07:30:46 -07:00
Chris Robinson
f17b930638
Add extern "C" for router.h
2018-10-30 06:45:44 -07:00
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
6be752a9b1
Add methods for thread-local contexts to the router
2017-07-07 18:33:54 -07:00
Chris Robinson
a14f651034
Flush the log file after writing
2017-07-01 15:34:42 -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
32bda7b94c
Add tracing capabilities to the router
2017-06-30 17:22:15 -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
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
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