Skip to main content

maolan_engine/plugins/vst3/
port.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub enum PortBinding {
5    AudioInput {
6        bus_index: usize,
7        channel_index: usize,
8    },
9    AudioOutput {
10        bus_index: usize,
11        channel_index: usize,
12    },
13    Parameter {
14        param_id: u32,
15        index: usize, // index in scalar_values vec
16    },
17    EventInput {
18        bus_index: usize,
19    },
20    EventOutput {
21        bus_index: usize,
22    },
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26pub struct BusInfo {
27    pub index: usize,
28    pub name: String,
29    pub channel_count: usize,
30    pub is_active: bool,
31}
32
33#[derive(Clone, Debug, Serialize, Deserialize)]
34pub struct ParameterInfo {
35    pub id: u32, // VST3 ParamID
36    pub title: String,
37    pub short_title: String,
38    pub units: String,
39    pub step_count: i32, // 0 = continuous, >0 = discrete
40    pub default_value: f64,
41    pub flags: i32, // ParameterFlags (read-only, etc.)
42}