cpal
cpal copied to clipboard
Cross-platform audio I/O library in pure Rust
While experimenting with `cargo clippy` I noticed that multiple versions of some dependencies are in use: ``` warning: multiple versions for dependency `bitflags`: 1.3.2, 2.9.1 warning: multiple versions for dependency...
Hello, I tried to build a project that uses `cpal` and it fails when building with the `asio` feature. I think the error is within the library itself and I...
Hello, I tried to build a static version of my project by using the aforementioned Rust target and there is no way to make it compile, as it doesn't find...
Fixes #259. I finally got around to this after promising to PR it in #259 a year ago. :sweat_smile: This is based on https://github.com/colinmarc/pulseaudio-rs/pull/2, which obviously needs to land before...
This is initial work to enable getting the current latency in samples from a Stream. The `latency() -> Option` method returns `None` by default, so this will already compile with...
Allow constructing a CoreAudioDevice (Device on MacOS) given just its ID. This is useful for accessing hidden devices. A hidden device is a device that is not visible to user...
In KDE, there's this widget which lets me select the default audio device for applications:  This doesn't seem to impact what cpal chooses as the default, though. I have...
CPAL Callback Stops Firing with Inter-Thread Communication on Windows Description The CPAL input callback stops firing when it includes operations for inter-thread communication, such as ringbuf::Producer::push, ringbuf::Producer::push_slice, or std::sync::mpsc::Sender::try_send. A...
Click me  This `available_hosts()` works correctly in other platforms, but Android returns duplicate entries. I investigated it and it turns out it calls the [getDevices](https://developer.android.com/reference/android/media/AudioManager#getDevices(int)) in the `AudioManager` API....
PipeWire implementation based on pipewire/pipewire-rs/doc and others draft PRs in this repository (thanks to them). There is two additional crates, one for the PW client and one for SPA utils...