aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/wasapi.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use string_views for querying config parametersChris Robinson2023-12-211-3/+3
|
* Remove DEF_NEWDELChris Robinson2023-12-161-4/+0
| | | | | C++17 provides alignment-aware allocators for us, so we don't need to use our own to make sure classes/structs are properly aligned.
* Mostly finish cleanup for backendsChris Robinson2023-12-111-21/+27
| | | | Except CoreAudio and Solaris backends
* Fix some clang-tidy warningsChris Robinson2023-12-081-1/+1
|
* Replace a global function with a member functionChris Robinson2023-12-031-1/+1
|
* Fix some unused parameter and unhandled enum warningsChris Robinson2023-11-251-11/+14
|
* Add query fonction in ALC_SOFT_system_events unreleased extension (#938)MathiusD2023-11-261-1/+16
| | | | | | | | | | | | | | | | | | | * feat(ALC_SOFT_system_events): Add alcEventIsSupportedSOFT method in ALC_SOFT_system_events unreleased extension The purpose of this addition (to my collection) are allow to retrieve which events are supported and if events are fully supported or if some case isn't managed for some reason For exemple only some backends provide system events: * pipewire -> Full support of extension * wasapi -> Full support of extension * pulseaudio -> Support of add and remove devices events only * coreaudio -> Support of default device change only * feat(ALC_SOFT_system_events): Fix typo in alext.h Cf following review : https://github.com/kcat/openal-soft/pull/938#discussion_r1404509828 * feat(ALC_SOFT_system_events): Remove ALC_EVENT_NOT_SUPPORTED_SOFT token Cf following discussions between this comment : https://github.com/kcat/openal-soft/pull/938#issuecomment-1825876452 to this comment : https://github.com/kcat/openal-soft/pull/938#issuecomment-1826419406
* Declare a missing variableChris Robinson2023-10-011-1/+1
|
* Get the default WASAPI device on UWPChris Robinson2023-10-011-25/+14
|
* Add a wrapper for COM initializationChris Robinson2023-09-291-25/+21
| | | | | This helps ensure COM is initialized and deinitialized in order relative to other objects (e.g. ComPtr).
* Ensure the WASAPI resample buffer is cleared when mixing startsChris Robinson2023-09-291-9/+6
| | | | | Otherwise, stopping and restarting without resetting could leave it with invalid pointers.
* Set the appropriate padding sizeChris Robinson2023-09-261-1/+1
| | | | It's based on the original/stream size, not the ALCdevice's.
* Constify some pointers to indicate they won't changeChris Robinson2023-09-251-1/+1
|
* Honor the wasapi allow-resampler option with spatial sound outputChris Robinson2023-09-241-0/+4
|
* Match the output sample rate if not requesting oneChris Robinson2023-09-241-0/+4
|
* Support resampling with WASAPI spatial audio outputChris Robinson2023-09-241-14/+67
|
* Fix cppwinrt exception type capture (#918)Deal2023-09-231-1/+1
|
* UWP: migrate C++/CX to C++/WinRT (#916)Deal2023-09-221-66/+57
|
* Try to get the device period for spatial audio streamsChris Robinson2023-09-211-30/+52
|
* Don't assume the size of AudioObjectTypeChris Robinson2023-09-211-1/+1
|
* Again try to fix handling an enum typeChris Robinson2023-09-201-1/+2
|
* Don't assume an enum's underlying typeChris Robinson2023-09-201-1/+1
|
* Fix MSVC compilationChris Robinson2023-09-201-0/+2
| | | | MinGW's headers don't seem to define operator| for AudioObjectType.
* Preliminary implementation of WASAPI spatial audio playbackChris Robinson2023-09-201-161/+538
|
* Avoid putting strings in fixed arrays of char arraysChris Robinson2023-09-021-21/+22
|
* Handle a null string in DeviceHelper::OnDefaultDeviceChangedChris Robinson2023-08-311-6/+6
|
* Use a string_view for the backend open methodChris Robinson2023-08-061-26/+27
|
* [UWP] Fix crash when probe capture device fail (#868)Deal(一线灵)2023-06-281-1/+4
| | | | | * [UWP] Fix crash when probe capture device fail * [UWP] Also check openDevice to avoid crash
* Set the correct dev format when autodetecting 7.1.4 in WASAPIChris Robinson2023-06-271-1/+1
|
* Get the correct audio client interface with UWPChris Robinson2023-06-071-24/+16
|
* Remove a seemingly unnecessary C++/CLI wrapperChris Robinson2023-06-061-18/+9
|
* Directly inline a couple functionsChris Robinson2023-06-061-189/+174
|
* Avoid explicit definitions of some IIDsChris Robinson2023-06-051-3/+3
|
* Fix return value for UWP buildsChris Robinson2023-06-051-3/+3
|
* Handle device added/removed events with WASAPIChris Robinson2023-06-051-90/+181
| | | | | Non-UWP only for now. The device list is managed dynamically now so it doesn't need to be probed for each enumeration query.
* Better protect the WASAPI device list with a mutexChris Robinson2023-06-041-48/+82
|
* Use the correct IID for the interface we useChris Robinson2023-06-031-7/+9
|
* Try again to fix UWP buildsChris Robinson2023-06-021-2/+2
|
* Fix UWP buildsChris Robinson2023-06-021-26/+20
|
* Fix comment typoChris Robinson2023-06-021-1/+1
|
* Start the WASAPI COM thread when initializing the backendChris Robinson2023-06-021-125/+38
| | | | | | | | | | | | | COM doesn't make this easy. We want to be able to get device change notifications without an open device, but we need an IMMDeviceEnumerator object to register the notification client, which requires COM to be initialized. COM must then stay initialized while we have the IMMDeviceEnumerator object, which we can't assume for the calling thread so it has to be done in the COM thread. Consequently, the COM thread must stay alive and can't quit while the DLL is loaded if we want to get those notifications without an open device, and as there's no reliable way to make the thread quit during DLL unload, the DLL must stay pinned until process exit.
* Remove an unused lambdaChris Robinson2023-06-011-8/+2
|
* Move althrd_setname to its own sourceChris Robinson2023-06-011-1/+1
|
* Specify the device type for the event callbackChris Robinson2023-06-011-9/+29
|
* Initialize the WASAPI device helper earlierChris Robinson2023-05-311-2/+3
|
* Don't register per-device default change handlersChris Robinson2023-05-311-128/+83
| | | | | It's global state with a global callback. No need to associate it with each open device.
* Improve wasapi backend UWP support (#853)Deal(一线灵)2023-05-311-169/+520
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Avoid using al::vector unnecessarilyChris Robinson2023-05-121-9/+9
|
* Remove custom stuff for standardChris Robinson2023-05-041-2/+2
|
* Use std::byte instead of a custom al::byteChris Robinson2023-05-041-2/+2
|