Add audio manager with input and output device managers #39
Labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
puregarlic/microclimate!39
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue/34"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds an
audiomodule that is responsible for handling input and output audio streams. Everything uses default devices and configurations by default, and the module has commands for starting/stopping audio loopback for testing purposes and as a usage example.The code is based on the similar implementation for
petite, but exhaustively handles signal precisions and doesn't include resampling to 16Khz. An agent was used to expand the output manager to have an API beyond returning just the output device, and add support for multiple output audio streams mixed and clamped to (hopefully) mitigate peaking.Closes #34, #35
@ -0,0 +214,4 @@// --- 2. Evict stopped / exhausted signals -----------------------entries.retain_mut(|e| {let keep = e.active.load(Ordering::Relaxed) && !e.signal.is_exhausted();Do our signals get exhausted? The docs for this say that infinite signals will always return false
LGTM