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
//! flexaudio-core — OS 非依存コア。
//!
//! デスクトップ音声キャプチャ抽象化ライブラリ `flexaudio` の OS 非依存部分。
//! リングバッファ / SR 変換 / チャンネル mix / 20ms チャンク化 / クロック正規化 /
//! イベント・型定義を提供する。OS 固有のキャプチャは [`backend::CaptureBackend`] を
//! 実装する別 crate(`flexaudio-os-*`)が担い、facade 層が両者を配線する。
//!
//! # 固定契約
//! 内部処理はすべて interleaved `f32` / 48000 Hz / ステレオ 2ch / 20ms = 960
//! frames/chunk で行う。外部へ出すレート/チャンネルは [`OutputFormat`] で変えられ
//! (Normalizer 第 2 段が再変換。例 16k/1ch は 320 frames/chunk)、出力チャンクは
//! レートに依らず時間ベースで 20ms。
//!
//! 公開 API にコールバックは無い。RT スレッドは push のみ、消費側は poll する。
//! RT 経路は非ブロッキング(満杯時は DROP_OLDEST / overflow ドロップ)。PTS は
//! デバイス由来で、ギャップを検知する。
//!
//! # 2 段リングバッファ構成
//! ```text
//! [RT cb] --push--> RawRing (rtrb, RT安全) --pop--> [取り込み/加工スレッド]
//! |
//! Normalizer (mix + rubato SRC + 960切出)
//! |
//! v
//! ChunkRing (ringbuf, DROP_OLDEST) --try_pop--> [poll]
//! ```
// 主要型をクレート直下へ再エクスポート。
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;