Skip to main content

Crate tympan_apo

Crate tympan_apo 

Source
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 the windows crate (Windows-only).
  • realtime — allocation-free, lock-free primitives intended for use from the APOProcess realtime 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 the aec Cargo 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
HRESULT wrapper and APO-specific error constants.
format
PCM audio stream format and format negotiation.
fx_properties
Endpoint-binding helpers for the audio engine’s FxProperties registry surface.
inf
INF file generation for APO deployment.
instance
Framework-side wrapper around a user ProcessingObject.
realtime
Realtime-safe primitives.