aboutsummaryrefslogtreecommitdiffstats
path: root/router
Commit message (Collapse)AuthorAgeFilesLines
* Remove void from empty parameter listsChris Robinson2023-12-123-15/+21
| | | | Also convert some functions to trailing return types and remove (void) casts.
* Make some global and static member variables inlineChris Robinson2023-09-113-24/+5
| | | | | This also seems to work around the problematic MinGW code generation, so the indirection to access it can be removed.
* Fix a type conversion warningChris Robinson2023-06-011-2/+1
|
* Improve wasapi backend UWP support (#853)Deal(一线灵)2023-05-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Improve wasapi, support uwp build * Fix compile errors * [UWP] Support ReadALConfig from app roaming * [UWP] Post disconnect event when default device changed * [UWP] Fix appveyor ci * [WIN32] Default device change notification support * Fix warnings * Add event to notify the app when the default device changes - Event type: AL_EVENT_TYPE_DEFAULT_DEVICE_CHANGED_SOFT=0x19A7 - Event callback parameters: void _onALSoftEvent(ALenum eventType, ALuint object, // dataFlow: 0(render), 1(capture) ALuint param, // 0 ALsizei length, // 0 const ALchar* message, // Default device changed:<deviceId> void* userParam); * Fix warnings * Fire default device changed event in mixerProc thread * Fix compile warning * [UWP] Improve cmake * Revert changes * Notify default device change by system event callback * Revert insignificant change * Remove duplicate call
* Make the router API functions noexceptChris Robinson2023-05-222-28/+28
|
* 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-184-75/+237
| | | | | 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.
* Forward the DriverIface constructor's nameChris Robinson2022-02-261-4/+6
|
* Don't handle EFX functions in the routerChris Robinson2022-02-264-140/+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-204-15/+31
| | | | | | | | | | 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-274-1/+141
|
* Use a recursive_mutex for the router enumeration lockChris Robinson2020-09-051-38/+34
|
* Fix up some more uses of [AL[C]]voidChris Robinson2020-04-283-15/+15
|
* 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
|
* Cleanup some router warningsChris Robinson2019-09-201-19/+19
|
* Add and use custom string types and functionsChris Robinson2019-09-161-1/+2
|
* Remove the UNUSED macroChris Robinson2019-07-282-13/+1
|
* Fix an MSVC warningChris Robinson2018-12-121-1/+1
|
* Simplify some binary search lookupsChris Robinson2018-11-261-69/+27
|
* Clean up the DriverIface in its destructorChris Robinson2018-10-302-10/+13
|
* Add a missing include for arrayChris Robinson2018-10-301-0/+1
|
* Remove an unnecessary includeChris Robinson2018-10-301-1/+0
|
* Clean up the router's PtrIntMapChris Robinson2018-10-303-137/+96
|
* Use std::array instead of raw arraysChris Robinson2018-10-301-25/+19
|
* Use std::wstring in place of some fixed WCHAR arraysChris Robinson2018-10-302-114/+114
|
* Use std::vector instead of custom dynamic arraysChris Robinson2018-10-303-149/+123
|
* Use C++ atomics and mutexes in the routerChris Robinson2018-10-304-99/+86
|
* Convert the router to C++Chris Robinson2018-10-303-93/+100
|
* Add extern "C" for router.hChris Robinson2018-10-301-0/+8
|
* Simplify some statementsFilip Gawin2018-10-291-3/+3
|
* Avoid duplicate path searches in the routerChris Robinson2018-03-211-18/+39
| | | | | And avoid inadvertently increasing the priority of the system path over the executable's path, or either of them over the current working directory.
* Add methods to clean up althrd and altss dataChris Robinson2018-03-101-0/+4
|
* Use a typedef to declare extern atomic variablesChris Robinson2017-10-072-2/+3
| | | | | Some systems use anonymous structs for atomic storage, and extern declarations need to have the same type as their non-extern definition.
* Don't trace for every GetDriverIndexForName callChris Robinson2017-07-111-4/+6
|
* Trace a version for the routerChris Robinson2017-07-111-0/+3
|
* Support ALC_EXT_thread_local_context in the routerChris Robinson2017-07-071-1/+5
| | | | | 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.
* Add methods for thread-local contexts to the routerChris Robinson2017-07-074-12/+110
|
* Revert "Try all drivers for an unknown device name"Chris Robinson2017-07-051-14/+10
| | | | This reverts commit dadf7a4cf2bb008fc9e20251f6e8895c0f5bf0d4.
* Try all drivers for an unknown device nameChris Robinson2017-07-051-10/+14
|
* Trace if a driver was found for a device nameChris Robinson2017-07-051-0/+4
|
* Open a device only when a driver index is foundChris Robinson2017-07-031-14/+18
|
* Flush the log file after writingChris Robinson2017-07-011-0/+9
|
* Use a weaker memory order for the current context ifaceChris Robinson2017-07-011-11/+11
|
* Initialize ALC resources in the file they're used inChris Robinson2017-07-013-10/+15
|
* Use the al alloc functions instead of standardChris Robinson2017-07-012-12/+14
|
* Add tracing capabilities to the routerChris Robinson2017-06-303-4/+74
|
* Add special handling for alGerError in the routerChris Robinson2017-06-301-4/+11
|
* Clear initial ALC version vars before querying itChris Robinson2017-06-291-1/+1
|
* Don't assume the first driver has the default deviceChris Robinson2017-06-291-2/+47
|