mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 04:06:45 +01:00
wip: fixing refactor errors pt.1
This commit is contained in:
parent
84aacfea82
commit
a6d6f5f06d
3 changed files with 28 additions and 16 deletions
|
|
@ -22,8 +22,11 @@ impl Scene {
|
||||||
},
|
},
|
||||||
_ => panic!("unexpected in scene '{name:?}': {edn:?}")
|
_ => panic!("unexpected in scene '{name:?}': {edn:?}")
|
||||||
});
|
});
|
||||||
let scene = Self::new(name.unwrap_or(""), clips);
|
Ok(Scene {
|
||||||
Ok(scene)
|
name: Arc::new(name.unwrap_or("").to_string().into()),
|
||||||
|
color: ItemColor::random(),
|
||||||
|
clips,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -35,9 +38,13 @@ impl MixerTrack {
|
||||||
const SYM_LV2: &'static str = "lv2";
|
const SYM_LV2: &'static str = "lv2";
|
||||||
pub fn from_edn <'a, 'e> (jack: &Arc<RwLock<JackClient>>, args: &[Edn<'e>]) -> Usually<Self> {
|
pub fn from_edn <'a, 'e> (jack: &Arc<RwLock<JackClient>>, args: &[Edn<'e>]) -> Usually<Self> {
|
||||||
let mut _gain = 0.0f64;
|
let mut _gain = 0.0f64;
|
||||||
let mut track = Self::new("")?;
|
let mut track = MixerTrack {
|
||||||
|
name: String::new(),
|
||||||
|
ports: JackPorts::default(),
|
||||||
|
devices: vec![],
|
||||||
|
};
|
||||||
#[allow(unused_mut)]
|
#[allow(unused_mut)]
|
||||||
let mut devices: Vec<JackDevice> = vec![];
|
let mut devices: Vec<JackClient> = vec![];
|
||||||
edn!(edn in args {
|
edn!(edn in args {
|
||||||
Edn::Map(map) => {
|
Edn::Map(map) => {
|
||||||
if let Some(Edn::Str(n)) = map.get(&Edn::Key(Self::SYM_NAME)) {
|
if let Some(Edn::Str(n)) = map.get(&Edn::Key(Self::SYM_NAME)) {
|
||||||
|
|
@ -81,7 +88,7 @@ impl MixerTrack {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl LV2Plugin {
|
impl LV2Plugin {
|
||||||
pub fn from_edn <'e> (jack: &Arc<RwLock<JackClient>>, args: &[Edn<'e>]) -> Usually<JackDevice> {
|
pub fn from_edn <'e> (jack: &Arc<RwLock<JackClient>>, args: &[Edn<'e>]) -> Usually<JackClient> {
|
||||||
let mut name = String::new();
|
let mut name = String::new();
|
||||||
let mut path = String::new();
|
let mut path = String::new();
|
||||||
edn!(edn in args {
|
edn!(edn in args {
|
||||||
|
|
@ -100,7 +107,7 @@ impl LV2Plugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Sampler {
|
impl Sampler {
|
||||||
pub fn from_edn <'e> (jack: &Arc<RwLock<JackClient>>, args: &[Edn<'e>]) -> Usually<JackDevice> {
|
pub fn from_edn <'e> (jack: &Arc<RwLock<JackClient>>, args: &[Edn<'e>]) -> Usually<Sampler> {
|
||||||
let mut name = String::new();
|
let mut name = String::new();
|
||||||
let mut dir = String::new();
|
let mut dir = String::new();
|
||||||
let mut samples = BTreeMap::new();
|
let mut samples = BTreeMap::new();
|
||||||
|
|
@ -126,7 +133,16 @@ impl Sampler {
|
||||||
},
|
},
|
||||||
_ => panic!("unexpected in sampler {name}: {edn:?}")
|
_ => panic!("unexpected in sampler {name}: {edn:?}")
|
||||||
});
|
});
|
||||||
Self::new(jack, &name, Some(samples))
|
Ok(Sampler {
|
||||||
|
jack: jack.clone(),
|
||||||
|
name: name.into(),
|
||||||
|
mapped: samples,
|
||||||
|
unmapped: Default::default(),
|
||||||
|
voices: Default::default(),
|
||||||
|
ports: Default::default(),
|
||||||
|
buffer: Default::default(),
|
||||||
|
output_gain: 0.
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -148,7 +148,7 @@ pub struct Phrase {
|
||||||
/// MIDI message structural
|
/// MIDI message structural
|
||||||
pub type PhraseData = Vec<Vec<MidiMessage>>;
|
pub type PhraseData = Vec<Vec<MidiMessage>>;
|
||||||
|
|
||||||
#[derive(Default, Debug, Clone)]
|
#[derive(Debug)]
|
||||||
pub struct Mixer {
|
pub struct Mixer {
|
||||||
/// JACK client handle (needs to not be dropped for standalone mode to work).
|
/// JACK client handle (needs to not be dropped for standalone mode to work).
|
||||||
pub jack: Arc<RwLock<JackClient>>,
|
pub jack: Arc<RwLock<JackClient>>,
|
||||||
|
|
@ -159,30 +159,25 @@ pub struct Mixer {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A mixer track.
|
/// A mixer track.
|
||||||
#[derive(Default, Debug, Clone)]
|
#[derive(Debug)]
|
||||||
pub struct MixerTrack {
|
pub struct MixerTrack {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
/// Inputs and outputs of 1st and last device
|
/// Inputs and outputs of 1st and last device
|
||||||
pub ports: JackPorts,
|
pub ports: JackPorts,
|
||||||
/// Device chain
|
/// Device chain
|
||||||
pub devices: Vec<JackDevice>,
|
pub devices: Vec<JackClient>,
|
||||||
/// Device selector
|
|
||||||
pub device: usize,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The sampler plugin plays sounds.
|
/// The sampler plugin plays sounds.
|
||||||
#[derive(Default, Debug, Clone)]
|
#[derive(Debug)]
|
||||||
pub struct Sampler {
|
pub struct Sampler {
|
||||||
pub jack: Arc<RwLock<JackClient>>,
|
pub jack: Arc<RwLock<JackClient>>,
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub cursor: (usize, usize),
|
|
||||||
pub editing: Option<Arc<RwLock<Sample>>>,
|
|
||||||
pub mapped: BTreeMap<u7, Arc<RwLock<Sample>>>,
|
pub mapped: BTreeMap<u7, Arc<RwLock<Sample>>>,
|
||||||
pub unmapped: Vec<Arc<RwLock<Sample>>>,
|
pub unmapped: Vec<Arc<RwLock<Sample>>>,
|
||||||
pub voices: Arc<RwLock<Vec<Voice>>>,
|
pub voices: Arc<RwLock<Vec<Voice>>>,
|
||||||
pub ports: JackPorts,
|
pub ports: JackPorts,
|
||||||
pub buffer: Vec<Vec<f32>>,
|
pub buffer: Vec<Vec<f32>>,
|
||||||
pub modal: Arc<Mutex<Option<Box<dyn Exit + Send>>>>,
|
|
||||||
pub output_gain: f32
|
pub output_gain: f32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ pub trait AudioEngine {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// Wraps [Client] or [DynamicAsyncClient] in place.
|
/// Wraps [Client] or [DynamicAsyncClient] in place.
|
||||||
|
#[derive(Debug)]
|
||||||
pub enum JackClient {
|
pub enum JackClient {
|
||||||
/// Before activation.
|
/// Before activation.
|
||||||
Inactive(Client),
|
Inactive(Client),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue