create input/output per track

This commit is contained in:
🪞👃🪞 2024-11-03 07:51:11 +02:00
parent b1ff549514
commit bc9be689a8
7 changed files with 93 additions and 84 deletions

View file

@ -393,9 +393,11 @@ impl Eq for Phrase {}
impl PhrasePlayer {
pub fn new (
jack: &Arc<RwLock<JackClient>>,
clock: &Arc<TransportTime>
) -> Self {
Self {
clock: &Arc<TransportTime>,
name: &str
) -> Usually<Self> {
let jack = jack.read().unwrap();
Ok(Self {
clock: clock.clone(),
phrase: None,
next_phrase: None,
@ -404,11 +406,15 @@ impl PhrasePlayer {
monitoring: false,
recording: false,
overdub: true,
midi_inputs: vec![],
midi_outputs: vec![],
midi_inputs: vec![
jack.client().register_port(format!("{name}_in0").as_str(), MidiIn::default())?
],
midi_outputs: vec![
jack.client().register_port(format!("{name}_out0").as_str(), MidiOut::default())?
],
midi_out_buf: vec![Vec::with_capacity(16);16384],
reset: true,
}
})
}
pub fn toggle_monitor (&mut self) { self.monitoring = !self.monitoring; }
pub fn toggle_record (&mut self) { self.recording = !self.recording; }