- Replace rodio dependency with cpal in pmoaudio/Cargo.toml - Add AudioSink node using cpal for direct hardware access - Add SharedBuffer for async/callback communication - Convert all audio formats to F32 for cpal - Improve latency and control over audio stream - Add WHY_CPAL.md explaining the technical choice - Update INSTALL_NOTES.md with ALSA requirements - Export AudioSink in lib.rs and mod.rs Benefits: - Minimal latency (no extra layers) - Direct hardware control - Lighter binary (~3.8 MB less) - Same ALSA dependency as rodio on Linux - Cross-platform (ALSA/JACK on Linux, CoreAudio on macOS, WASAPI on Windows)
29 lines
603 B
TOML
Executable File
29 lines
603 B
TOML
Executable File
[package]
|
|
name = "pmoaudio"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[features]
|
|
default = []
|
|
simd = []
|
|
|
|
[dependencies]
|
|
tokio = { version = "1.42", features = ["full"] }
|
|
tokio-util = { version = "0.7", features = ["io"] }
|
|
async-trait = "0.1"
|
|
futures-util = "0.3"
|
|
pmoflac = { path = "../pmoflac" }
|
|
pmometadata = { path = "../pmometadata" }
|
|
paste = "1"
|
|
soxr = "0.6.0"
|
|
bytemuck = "1.24.0"
|
|
reqwest = { version = "0.12", features = ["stream"] }
|
|
tracing = "0.1"
|
|
cpal = "0.15"
|
|
|
|
[dev-dependencies]
|
|
tokio-test = "0.4"
|
|
tempfile = "3"
|
|
wiremock = "0.6"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|