auto launch default phrase

This commit is contained in:
🪞👃🪞 2024-12-10 19:32:39 +01:00
parent 6705585f91
commit 387bc711e5

View file

@ -9,32 +9,41 @@ use SequencerFocus::*;
impl TryFrom<&Arc<RwLock<JackClient>>> for SequencerTui { impl TryFrom<&Arc<RwLock<JackClient>>> for SequencerTui {
type Error = Box<dyn std::error::Error>; type Error = Box<dyn std::error::Error>;
fn try_from (jack: &Arc<RwLock<JackClient>>) -> Usually<Self> { fn try_from (jack: &Arc<RwLock<JackClient>>) -> Usually<Self> {
let clock = ClockModel::from(jack); let clock = ClockModel::from(jack);
let mut phrase = Phrase::default(); let mut phrase = Phrase::default();
phrase.name = "New".into(); phrase.name = "New".into();
phrase.color = ItemColor::random().into(); phrase.color = ItemColor::random().into();
phrase.set_length(384); phrase.set_length(384);
let mut phrases = PhraseListModel::default(); let mut phrases = PhraseListModel::default();
let phrase = Arc::new(RwLock::new(phrase)); let phrase = Arc::new(RwLock::new(phrase));
phrases.phrases.push(phrase.clone()); phrases.phrases.push(phrase.clone());
phrases.phrase.store(1, Ordering::Relaxed); phrases.phrase.store(1, Ordering::Relaxed);
let mut editor = PhraseEditorModel::default(); let mut editor = PhraseEditorModel::default();
editor.show_phrase(Some(phrase)); editor.show_phrase(Some(phrase.clone()));
let mut player = PhrasePlayerModel::from(&clock);
player.play_phrase = Some((Moment::zero(&clock.timebase), Some(phrase)));
Ok(Self { Ok(Self {
clock,
phrases,
player,
editor,
jack: jack.clone(), jack: jack.clone(),
phrases: phrases,
player: PhrasePlayerModel::from(&clock),
editor: editor,
size: Measure::new(), size: Measure::new(),
cursor: (0, 0), cursor: (0, 0),
entered: false, entered: false,
split: 20, split: 20,
midi_buf: vec![vec![];65536], midi_buf: vec![vec![];65536],
note_buf: vec![], note_buf: vec![],
clock,
perf: PerfModel::default(), perf: PerfModel::default(),
focus: FocusState::Focused(SequencerFocus::PhraseEditor) focus: FocusState::Focused(SequencerFocus::PhraseEditor)
}) })
} }
} }