wip: p.56, e=86

This commit is contained in:
🪞👃🪞 2024-11-18 22:17:22 +01:00
parent 37ac7823af
commit 0964ad3be4
4 changed files with 108 additions and 72 deletions

View file

@ -5,12 +5,18 @@ impl TryFrom<&Arc<RwLock<JackClient>>> for TransportTui {
type Error = Box<dyn std::error::Error>;
fn try_from (jack: &Arc<RwLock<JackClient>>) -> Usually<Self> {
Ok(Self {
metronome: false,
transport: jack.read().unwrap().transport(),
jack: jack.clone(),
focused: false,
current: Instant::default(),
cursor: (0, 0),
focus: TransportFocus::PlayPause,
focused: false,
jack: jack.clone(),
metronome: false,
playing: RwLock::new(None),
quant: Quantize::default(),
size: Measure::new(),
started: RwLock::new(None),
sync: LaunchSync::default(),
transport: jack.read().unwrap().transport(),
})
}
}
@ -18,14 +24,35 @@ impl TryFrom<&Arc<RwLock<JackClient>>> for TransportTui {
impl TryFrom<&Arc<RwLock<JackClient>>> for SequencerTui {
type Error = Box<dyn std::error::Error>;
fn try_from (jack: &Arc<RwLock<JackClient>>) -> Usually<Self> {
Ok(Self::new(SequencerTui {
phrases: vec![],
metronome: false,
transport: jack.read().unwrap().transport(),
jack: jack.clone(),
focused: false,
size: Measure::new(),
}.into(), None, None))
Ok(Self {
current: Instant::default(),
cursor: (0, 0),
entered: false,
jack: jack.clone(),
metronome: false,
midi_buf: vec![],
midi_inputs: vec![],
midi_outputs: vec![],
monitoring: true,
next_phrase: None,
note_buf: vec![],
notes_in: RwLock::new([false;128]).into(),
notes_out: RwLock::new([false;128]).into(),
overdub: true,
phrases: vec![],
phrases_mode: None,
play_phrase: None,
playing: RwLock::new(None),
quant: Quantize::default(),
recording: true,
reset: false,
size: Measure::new(),
split: 20,
started: RwLock::new(None),
sync: LaunchSync::default(),
transport: jack.read().unwrap().transport(),
view_phrase: 0,
})
}
}
@ -33,33 +60,32 @@ impl TryFrom<&Arc<RwLock<JackClient>>> for ArrangerTui {
type Error = Box<dyn std::error::Error>;
fn try_from (jack: &Arc<RwLock<JackClient>>) -> Usually<Self> {
Ok(Self {
name: Arc::new(RwLock::new(String::new())),
phrases: vec![],
phrase: 0,
scenes: vec![],
tracks: vec![],
metronome: false,
playing: None.into(),
started: None.into(),
transport: jack.read().unwrap().transport(),
current: Instant::default(),
jack: jack.clone(),
selected: ArrangerSelection::Clip(0, 0),
mode: ArrangerMode::Vertical(2),
color: Color::Rgb(28, 35, 25).into(),
size: Measure::new(),
entered: false,
quant: Default::default(),
sync: Default::default(),
splits: [20, 20],
note_buf: vec![],
midi_buf: vec![],
cursor: (0, 0),
entered: false,
history: vec![],
size: Measure::new(),
menu_bar: None,
status_bar: None,
color: Color::Rgb(28, 35, 25).into(),
current: Instant::default(),
cursor: (0, 0),
entered: false,
history: vec![],
jack: jack.clone(),
menu_bar: None,
metronome: false,
midi_buf: vec![],
mode: ArrangerMode::Vertical(2),
name: Arc::new(RwLock::new(String::new())),
note_buf: vec![],
phrase: 0,
phrases: vec![],
phrases_mode: None,
playing: None.into(),
quant: Default::default(),
scenes: vec![],
selected: ArrangerSelection::Clip(0, 0),
size: Measure::new(),
splits: [20, 20],
started: None.into(),
status_bar: None,
sync: Default::default(),
tracks: vec![],
transport: jack.read().unwrap().transport(),
})
}
}