use crate::*; /// Create app state from JACK handle. impl TryFrom<&Arc>> for TransportTui { type Error = Box; fn try_from (jack: &Arc>) -> Usually { Ok(Self { jack: jack.clone(), state: TransportModel::from(jack.read().unwrap().transport()), size: Measure::new(), cursor: (0, 0), }) } } impl TryFrom<&Arc>> for SequencerTui { type Error = Box; fn try_from (jack: &Arc>) -> Usually { Ok(Self { jack: jack.clone(), transport: TransportModel::from(jack.read().unwrap().transport()), phrases: PhrasesModel::default(), player: PhrasePlayerModel::default(), editor: PhraseEditorModel::default(), size: Measure::new(), cursor: (0, 0), entered: false, split: 20, midi_buf: vec![], note_buf: vec![], }) } } impl TryFrom<&Arc>> for ArrangerTui { type Error = Box; fn try_from (jack: &Arc>) -> Usually { Ok(Self { jack: jack.clone(), transport: TransportModel::from(jack.read().unwrap().transport()), phrases: PhrasesModel::default(), selected: ArrangerSelection::Clip(0, 0), scenes: vec![], tracks: vec![], color: Color::Rgb(28, 35, 25).into(), history: vec![], mode: ArrangerMode::Vertical(2), name: Arc::new(RwLock::new(String::new())), size: Measure::new(), cursor: (0, 0), splits: [20, 20], entered: false, menu_bar: None, status_bar: None, midi_buf: vec![], note_buf: vec![], }) } }