//! Chanora PoC — audio capture / playback spike.
//!
//! Authority:
//!   * `docs/architecture/proof-of-concept-plan.md` §2 — Audio
//!     capture/playback spike. Exit criterion: "Capture/playback works
//!     on at least one desktop and one mobile target."
//!   * DEC-011 — platform-native first; Rust/WebRTC-style as fallback.
//!   * SysDes audio subsystem.
//!
//! Honest scope:
//!   * Linux desktop is verified here via `cpal` against the system
//!     audio stack (PipeWire / Pulse / ALSA, whichever is active).
//!   * **Mobile targets are NOT verified by this PoC.** That is a
//!     documented gap, not a passed criterion.
//!
//! What the PoC shows:
//!   * `AudioCapture` — opens the default input device and writes
//!     16-bit PCM samples to a WAV file via `hound`.
//!   * `AudioPlayback` — opens the default output device and plays
//!     back a WAV file end-to-end.
//!   * `synth_sine_wav` — when no input device is available
//!     (genuinely headless box), the PoC can still exercise the
//!     playback path against a synthesised waveform. This is what
//!     keeps the spike useful in CI.
//!
//! Production code (`chanora_audio`) will own the real DSP chain
//! (HPF, NS, AEC, AGC, Opus encode/decode, jitter buffer, mixer).
//! None of that lives here.

pub mod capture;
pub mod playback;
pub mod synth;

pub use capture::{AudioCapture, AudioError};
pub use playback::AudioPlayback;
pub use synth::synth_sine_wav;
