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
//! # Signal I/O — generic multi‑channel real‑time I/O abstraction
use AtomicBool;
use Arc;
use crateScalar;
/// Result alias for signal I/O operations.
pub type IoResult<T> = ;
/// Generic multi‑channel real‑time signal I/O backend.
///
/// Lifecycle (called by `rill-patchbay` or `rill-adrift` which own the audio thread):
/// 1. `set_process_callback(cb)` — register the graph processing callback
/// 2. `run(running)` — called on the pre‑created audio thread; blocks for
/// poll‑driven backends (ALSA, PipeWire) or returns immediately for
/// callback‑driven ones (JACK, CPAL). Checks `running` to know when to exit.
/// 3. `stop()` — signals shutdown; tears down resources.