Expand description
Helpers shared across format wrappers (CLAP, VST3, VST2, AU, AAX, LV2).
Each wrapper still owns its format-specific descriptor types and
callback tables; those don’t unify cleanly. What unifies is the
“boring” boundary glue: building CStrings from ParamInfo
fields, picking the default bus layout, and resolving install-time
name overrides.
Each helper is a single small function so the wrappers stay
greppable - the per-format vtable construction code reads as
“for each param, get cstrings, build descriptor” without inlined
CString::new(...).unwrap_or_default() boilerplate.
Adding a new format wrapper? Reach for these first; only fall back
to direct CString::new etc. when the format genuinely needs
something none of the other formats does.
Structs§
- ParamC
Strings CStringsderived from a singleParamInfo. All four conversions follow the same pattern (unwrap_or_default()so a\0in metadata degrades to an empty C string instead of panicking the host); pulling them into one struct keeps the per-format vtable loops uniform.
Functions§
- default_
io_ channels (input_channels, output_channels)for the plugin’s default bus layout, orNonewhen the plugin declares no layouts. Used by every format’s vtable / descriptor to advertise channel counts at registration time.- first_
bus_ layout - Pick the plugin’s first bus layout, or
Nonewhen the plugin declares no layouts. Used by wrappers (AAX, VST2) that need to read the layout before host-side bus-config negotiation, where a missing layout would otherwise produce silently-misreported channel counts. - log_
missing_ bus_ layout - Standard diagnostic emitted by
register_*whenfirst_bus_layoutordefault_io_channelsreturnsNone. Centralised so every wrapper prints the same actionable message. - run_
audio_ block - Run a per-block audio-thread
bodyunderstd::panic::catch_unwind. - run_
audio_ block_ with - Like
run_audio_blockbut for callbacks that return a status code. Returnsbody’s value on a clean exit,fallbackif the body panicked. Used by the CLAP wrapper, whose process callback returns aclap_process_statusi32. - run_
extern_ callback_ with - Run a generic
extern "C"callback body understd::panic::catch_unwind. Returnsbody’s value on a clean exit,fallbackif the body panicked. - run_
register - Run a
register_*body understd::panic::catch_unwind.