aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Use cinttypes instead of inttypes.h in C++Chris Robinson2023-06-012-2/+2
|
* Rename threads.cpp/h to alsem.cpp/hChris Robinson2023-06-013-3/+3
|
* Move althrd_setname to its own sourceChris Robinson2023-06-0111-9/+12
|
* Specify the device type for the event callbackChris Robinson2023-06-014-30/+64
|
* Handle device added/removed events with PulseAudioChris Robinson2023-06-011-0/+42
|
* Add a context to PulseMainloopChris Robinson2023-06-011-84/+64
|
* Add a comment explaining the DeviceAdded logic for PipeWireChris Robinson2023-06-011-1/+10
|
* Report device change events from CoreAudio (#856)Deal(一线灵)2023-06-011-1/+50
| | | | | | | | | * Report device change events from CoreAudio * Fix compile error * Use optional * Use optional, no unique_ptr
* Include IOAudioTypes.h only when neededChris Robinson2023-05-311-4/+3
|
* Report device change events from PipeWireChris Robinson2023-05-311-34/+91
|
* 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
* Don't throw when failing to stop Oboe captureChris Robinson2023-05-301-2/+1
|
* Don't throw when failing to stop Oboe playbackChris Robinson2023-05-251-2/+1
|
* Improve oboe backend (#848)Deal(一线灵)2023-05-251-1/+9
| | | | | | | * Improve oboe backend This change should handle handphone call event properly and fix crash at stop (because the mStream was disconnected by system when handphone call income) * Invoke mDevice->handleDisconnect when AAudio stream disconnected
* Avoid using al::vector unnecessarilyChris Robinson2023-05-1210-40/+42
|
* Clean up some more includesChris Robinson2023-05-128-18/+19
|
* Use some more standard functionsChris Robinson2023-05-051-6/+6
|
* Remove custom stuff for standardChris Robinson2023-05-043-5/+5
|
* Avoid defining separate wrapper functionsChris Robinson2023-05-041-32/+16
|
* Use std::byte instead of a custom al::byteChris Robinson2023-05-0416-59/+54
|
* Make and use a bit_cast functionChris Robinson2023-05-047-12/+18
| | | | Instead of reinterpret_casting between incompatible types
* Update ComPtr and use an out_ptr() functionChris Robinson2023-05-042-50/+32
|
* Replace al::optional with std::optionalChris Robinson2023-05-045-10/+7
|
* Handle signed int values holding FourCC codesChris Robinson2023-04-261-0/+1
|
* Print CoreAudio errors as FourCC codes when possibleChris Robinson2023-04-261-43/+58
|
* Check the correct device property to detect headphonesChris Robinson2023-04-251-3/+3
|
* Try to detect headphones with CoreAudioChris Robinson2023-04-241-0/+18
|
* Recognize I24 and I32 formats from OboeChris Robinson2023-03-151-1/+15
|
* Allow Oboe to resample when requesting a sample rateChris Robinson2023-03-151-0/+3
|
* Use macros for the likely/unlikely attributesChris Robinson2023-03-014-69/+70
| | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places.
* Check a string for NULL before calling strtoullChris Robinson2023-02-111-8/+9
|
* Distinguish a couple log messagesChris Robinson2023-01-301-3/+3
| | | | And downgrade an ERR to a WARN
* Use the object serial ID from PipeWire when availableChris Robinson2023-01-241-21/+47
| | | | | | | | | | | Using the node ID as a target is deprecated in newer versions of PipeWire. The serial ID is a monotonic 64-bit integer ID, incremeneted for every object created, so is guaranteed to always refer to the same target (until it wraps around, which I suppose isn't expected/allowed to happen), compared to the 32-bit node ID which I guess allows reuse. We could instead use the target node's name instead of the serial ID, but an integer is nicer to manage than a string.
* Change a couple macros to constexpr variablesChris Robinson2023-01-161-2/+2
|
* clang-tidy cleanups (#800)Rosen Penev2023-01-154-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * clang-tidy: use bool literals Found with modernize-use-bool-literals Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: replace std::bind with lambdas Found with modernize-avoid-bind Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: use data() instead of pointer stuff Found with readability-container-data-pointe Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: use empty() Found with readability-container-size-empty Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: remove static in anon namespace Found with readability-static-definition-in-anonymous-namespace Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: remove const return Found with readability-const-return-type Signed-off-by: Rosen Penev <[email protected]> Signed-off-by: Rosen Penev <[email protected]>
* Don't explicitly try to spawn servers by defaultChris Robinson2023-01-142-2/+2
|
* Avoid using a non-0 span length over nullptrChris Robinson2023-01-131-17/+32
|
* Write proper samples when starting the PulseAudio streamChris Robinson2023-01-131-17/+3
| | | | | Instead of silence, to ensure the number of samples written to PulseAudio is the same as the number mixed/rendered.