1use crate::range::ParamRange;
2
3#[derive(Clone, Debug)]
5pub struct ParamInfo {
6 pub id: u32,
7 pub name: &'static str,
8 pub short_name: &'static str,
9 pub group: &'static str,
10 pub range: ParamRange,
11 pub default_plain: f64,
12 pub flags: ParamFlags,
13 pub unit: ParamUnit,
14}
15
16bitflags::bitflags! {
17 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
18 pub struct ParamFlags: u32 {
19 const AUTOMATABLE = 0b0001;
20 const HIDDEN = 0b0010;
21 const READONLY = 0b0100;
22 const IS_BYPASS = 0b1000;
23 }
24}
25
26#[derive(Clone, Copy, Debug, PartialEq, Eq)]
27pub enum ParamUnit {
28 None,
29 Db,
30 Hz,
31 Milliseconds,
32 Seconds,
33 Percent,
34 Semitones,
35 Pan,
36}