1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! `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`],
//! [`mod@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.
pub use ;
pub use ;
pub use Clsid;
pub use HResult;
pub use ;
/// Re-export of `windows_core::GUID` so the `register_apo!` macro's
/// emitted entry-point signatures resolve without users having to
/// add `windows-core` to their own `Cargo.toml`.
pub use GUID;
/// Re-export of `windows_core::HRESULT`. Same rationale as [`GUID`].
pub use HRESULT;