aboutsummaryrefslogtreecommitdiffstats
path: root/router/router.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix router not loading on Creative's hardware OpenAL (#773)Felipe2022-11-161-12/+22
| | | | | | | | | | | | | | | According to the programming guide and the specification, those functions may be used by extensions. However, Creative's hardware OpenAL chose to not implement stub functions for those that they do not use. Currently they use only alBufferi for X-RAM related functions. Other implementations, such as OpenAL Soft and wrap_oal implement stub functions for those methods therefore they work. This commit turns those functions optional, just like they were in the old FOSS router. Consumers of the router will receive a nullptr as expected for not implemented methods if they load them using alGetProcAddress, which I believe is the correct way to do so. That is, the context must be current before loading al* functions.
* Add EFX functions back to the routerChris Robinson2022-06-181-5/+5
| | | | | 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.
* Don't handle EFX functions in the routerChris Robinson2022-02-261-36/+3
| | | | | | 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.
* Work around a MinGW thread_local bugChris Robinson2021-12-201-0/+5
| | | | | | | | | | 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.
* Export EFX functions from the routerChris Robinson2021-01-271-0/+36
|
* Fix up some more uses of [AL[C]]voidChris Robinson2020-04-281-8/+8
|
* Silence some warnings from GCC in the routerChris Robinson2019-10-011-4/+4
|
* Use al::getenv to get the router env varsChris Robinson2019-10-011-42/+40
|
* Remove the UNUSED macroChris Robinson2019-07-281-1/+1
|
* Simplify some binary search lookupsChris Robinson2018-11-261-69/+27
|
* Clean up the DriverIface in its destructorChris Robinson2018-10-301-8/+1
|
* Clean up the router's PtrIntMapChris Robinson2018-10-301-76/+55
|
* Use std::wstring in place of some fixed WCHAR arraysChris Robinson2018-10-301-13/+12
|
* Use std::vector instead of custom dynamic arraysChris Robinson2018-10-301-41/+16
|
* Use C++ atomics and mutexes in the routerChris Robinson2018-10-301-5/+1
|
* Convert the router to C++Chris Robinson2018-10-301-0/+541