Expand description
tympan-apo — Rust framework for Windows Audio Processing Objects.
See docs/overview.md and docs/architecture.md for the design
that drives this crate.
The crate is organised into four conceptual layers, isolated by module boundary:
raw— low-level COM bindings via thewindowscrate (Windows-only).realtime— allocation-free, lock-free primitives intended for use from theAPOProcessrealtime callback. Cross-platform so that the realtime invariants can be unit-tested on any host.- Public API (this module plus
apo,instance,format, and the other crate-root modules) — safe, idiomatic wrappers users implement against. aec— Windows 11 Acoustic Echo Cancellation APO support. Windows-only and gated behind theaecCargo feature.
§Realtime safety
Any code reachable from the APOProcess callback must be
allocation-free, lock-free, and free of blocking syscalls. The
realtime module exposes a RealtimeContext marker that acts
as a compile-time witness for the realtime context.
Re-exports§
pub use apo::ApoCategory;pub use apo::ProcessInput;pub use apo::ProcessingObject;pub use apo::SystemEffect;pub use apo::SystemEffectState;pub use buffer::BufferFlags;pub use buffer::ConnectionProperty;pub use buffer::CONNECTION_PROPERTY_SIGNATURE;pub use clsid::Clsid;pub use error::HResult;pub use format::Format;pub use format::FormatNegotiation;
Modules§
- apo
- Top-level Audio Processing Object surface.
- buffer
- Audio buffer types — flags and connection properties.
- clsid
- COM Class Identifier.
- error
HRESULTwrapper and APO-specific error constants.- format
- PCM audio stream format and format negotiation.
- fx_
properties - Endpoint-binding helpers for the audio engine’s
FxPropertiesregistry surface. - inf
- INF file generation for APO deployment.
- instance
- Framework-side wrapper around a user
ProcessingObject. - realtime
- Realtime-safe primitives.