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
//! Host transport snapshot passed into [`crate::Plugin::process`].
//!
//! Mirrors `truce_core::TransportInfo`. Plugin-side and host-side
//! types are intentionally separate (per the v2 design decision)
//! but field-compatible — copying a value across is a struct
//! literal, not a conversion.
/// One block's worth of host transport state.
///
/// `Option`s express "host doesn't report this field" — a
/// CLAP host without a transport extension, or VST3
/// `ProcessContext` flags not set, leave the corresponding
/// field as `None`. Plugins should fall back gracefully (default
/// 120 BPM, free-running phase) when fields are missing.