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
47
//! Low-level FFI declarations matching `ladspa.h` (LADSPA SDK 1.13).
//!
//! This module is the **sole** location where the LADSPA C ABI is
//! declared. Per `CLAUDE.md` ยง Architectural Boundaries, every higher
//! layer of the framework consumes these definitions; nothing else in
//! the crate may redeclare a LADSPA type or constant.
//!
//! ## Naming
//!
//! Identifiers in `ladspa.h` use a `LADSPA_` prefix because C has no
//! namespaces. Inside this module the prefix is dropped: `Descriptor`
//! corresponds to `LADSPA_Descriptor`, `PORT_INPUT` to
//! `LADSPA_PORT_INPUT`, and so on. Documentation comments link each
//! item back to its upstream name.
//!
//! ## Integer types
//!
//! `ladspa.h` uses bare `int` and `unsigned long`. The mapping in this
//! module follows C semantics on the target platform:
//!
//! | C type | Rust type |
//! |-----------------|-----------------|
//! | `int` | [`c_int`] |
//! | `unsigned long` | [`c_ulong`] |
//! | `float` | [`f32`] |
//! | `void *` | `*mut c_void` |
//!
//! On Linux `c_ulong` is 64 bits for 64-bit targets and 32 bits for
//! 32-bit targets. LADSPA hosts and plugins must agree on this width,
//! which is automatically guaranteed when both sides are built for the
//! same target triple.
//!
//! [`c_int`]: core::ffi::c_int
//! [`c_ulong`]: core::ffi::c_ulong
pub use ;
pub use ;