14 Commits

Author SHA1 Message Date
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
7e3fed42ed Use a recursive_mutex for the router enumeration lock 2020-09-05 12:41:28 -07:00
Chris Robinson
cf64dc1103 Fix up some more uses of [AL[C]]void 2020-04-28 14:48:12 -07:00
Chris Robinson
8907a4fb04 Cleanup some router warnings 2019-09-20 15:45:59 -07:00
Chris Robinson
2c5c5a5397 Add and use custom string types and functions 2019-09-16 13:45:14 -07:00
Chris Robinson
b37bc9f8b7 Fix an MSVC warning 2018-12-12 19:24:06 -08:00
Chris Robinson
615c025b67 Add a missing include for array 2018-10-30 16:35:14 -07:00
Chris Robinson
f747ac8882 Clean up the router's PtrIntMap 2018-10-30 14:28:19 -07:00
Chris Robinson
44f91760b5 Use std::array instead of raw arrays 2018-10-30 10:01:49 -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
a0d03e50e8 Convert the router to C++ 2018-10-30 07:06:03 -07:00