| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Non-UWP only for now. The device list is managed dynamically now so it doesn't
need to be probed for each enumeration query.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Report device change events from CoreAudio
* Fix compile error
* Use optional
* Use optional, no unique_ptr
|
| |
|
| |
|
| |
|
|
|
|
|
| |
It's global state with a global callback. No need to associate it with each
open device.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Instead of reinterpret_casting between incompatible types
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The syntax parser for GCC 8 (and earlier?) fails when these attributes are in
certain places.
|
| |
|
|
|
|
| |
And downgrade an ERR to a WARN
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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]>
|