From c159889ad86ea9778c9de80194fa76241d11b02f Mon Sep 17 00:00:00 2001 From: unspeaker Date: Mon, 6 Jan 2025 21:18:10 +0100 Subject: [PATCH] fix sequencer --- src/groovebox/groovebox_tui.rs | 22 +++++++++++----------- src/sequencer.rs | 13 +++++++++++-- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/groovebox/groovebox_tui.rs b/src/groovebox/groovebox_tui.rs index f8ddb10b..8786f4b2 100644 --- a/src/groovebox/groovebox_tui.rs +++ b/src/groovebox/groovebox_tui.rs @@ -6,19 +6,19 @@ use EdnItem::*; const EDN: &'static str = include_str!("groovebox.edn"); -impl Content for Groovebox { - fn content (&self) -> impl Render { - self.size.of(EdnView::from_source(self, EDN)) - } -} +//impl Content for Groovebox { + //fn content (&self) -> impl Render { + //self.size.of(EdnView::from_source(self, EDN)) + //} +//} // this works: -//render!(TuiOut: (self: Groovebox) => self.size.of( - //Bsp::s(self.toolbar_view(), - //Bsp::n(self.selector_view(), - //Bsp::n(self.sample_view(), - //Bsp::n(self.status_view(), - //Bsp::w(self.pool_view(), Fill::xy(Bsp::e(self.sampler_view(), &self.editor))))))))); +render!(TuiOut: (self: Groovebox) => self.size.of( + Bsp::s(self.toolbar_view(), + Bsp::n(self.selector_view(), + Bsp::n(self.sample_view(), + Bsp::n(self.status_view(), + Bsp::w(self.pool_view(), Fill::xy(Bsp::e(self.sampler_view(), &self.editor))))))))); impl Groovebox { fn toolbar_view (&self) -> impl Content + use<'_> { diff --git a/src/sequencer.rs b/src/sequencer.rs index d55265f9..9880ec6a 100644 --- a/src/sequencer.rs +++ b/src/sequencer.rs @@ -49,17 +49,26 @@ from_jack!(|jack|Sequencer { }); render!(TuiOut: (self: Sequencer) => self.size.of( Bsp::s(self.toolbar_view(), + Bsp::n(self.selector_view(), Bsp::n(self.status_view(), - Bsp::w(self.pool_view(), Fill::xy(&self.editor)))))); + Bsp::w(self.pool_view(), Fill::xy(&self.editor))))))); impl Sequencer { fn toolbar_view (&self) -> impl Content + use<'_> { - self.transport.then(||TransportView::new(true, &self.clock)) + Fill::x(Fixed::y(2, Align::x(TransportView::new(true, &self.player.clock)))) } fn status_view (&self) -> impl Content + use<'_> { let edit_clip = MidiEditClip(&self.editor); let selectors = When(self.selectors, Bsp::e(ClipSelected::play_phrase(&self.player), ClipSelected::next_phrase(&self.player))); row!(selectors, edit_clip, MidiEditStatus(&self.editor)) } + fn selector_view (&self) -> impl Content + use<'_> { + row!( + ClipSelected::play_phrase(&self.player), + ClipSelected::next_phrase(&self.player), + MidiEditClip(&self.editor), + MidiEditStatus(&self.editor), + ) + } fn pool_view (&self) -> impl Content + use<'_> { let w = self.size.w(); let phrase_w = if w > 60 { 20 } else if w > 40 { 15 } else { 10 };