mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-09 05:06:43 +01:00
wip: p.51, e=7, collecting tui by layer
This commit is contained in:
parent
b3ac9e60e3
commit
7b3c013aa7
26 changed files with 786 additions and 799 deletions
68
crates/tek_tui/src/tui_init.rs
Normal file
68
crates/tek_tui/src/tui_init.rs
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
use crate::*;
|
||||
|
||||
/// Create app state from JACK handle.
|
||||
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,
|
||||
focus: TransportFocus::PlayPause,
|
||||
size: Measure::new(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
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,
|
||||
focus: TransportFocus::PlayPause,
|
||||
size: Measure::new(),
|
||||
phrases: vec![],
|
||||
}.into(), None, None))
|
||||
}
|
||||
}
|
||||
|
||||
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,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue