From 182107bfa5e9537f43dcbec0f940865f9498e2e1 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Wed, 14 May 2025 22:37:14 +0300 Subject: [PATCH] arranger (sorta. sizing woes) --- config/config_arranger.edn | 2 +- crates/device/src/arranger/arranger_model.rs | 9 --------- crates/device/src/arranger/arranger_port.rs | 4 ++-- crates/device/src/arranger/arranger_view.rs | 12 +++++------- 4 files changed, 8 insertions(+), 19 deletions(-) diff --git a/config/config_arranger.edn b/config/config_arranger.edn index 1f93c270..fcfdf972 100644 --- a/config/config_arranger.edn +++ b/config/config_arranger.edn @@ -20,6 +20,6 @@ (view (bsp/a :view-dialog (bsp/e (fill/y (align/n (bsp/s :view-status-v (bsp/s - (bsp/s :view-midi-ports-status :view-audio-ports-status) + :view-audio-ports-status (bsp/n :view-editor-status :view-pool))))) :view-arranger))) diff --git a/crates/device/src/arranger/arranger_model.rs b/crates/device/src/arranger/arranger_model.rs index ba43caf2..a34134d7 100644 --- a/crates/device/src/arranger/arranger_model.rs +++ b/crates/device/src/arranger/arranger_model.rs @@ -70,15 +70,6 @@ impl Arrangement { pub fn h (&self) -> u16 { self.size.h() as u16 } - /// Height available to display track headers. - pub fn h_tracks_area (&self) -> u16 { - 5 // FIXME - //self.h().saturating_sub(self.h_inputs() + self.h_outputs()) - } - /// Height available to display tracks. - pub fn h_scenes_area (&self) -> u16 { - 20 // FIXME - } /// Height taken by all scenes. pub fn h_scenes (&self, is_editing: bool) -> u16 { self.scenes_with_sizes( diff --git a/crates/device/src/arranger/arranger_port.rs b/crates/device/src/arranger/arranger_port.rs index 152edc73..a5a1a586 100644 --- a/crates/device/src/arranger/arranger_port.rs +++ b/crates/device/src/arranger/arranger_port.rs @@ -3,7 +3,7 @@ use crate::*; impl<'a> ArrangerView<'a> { pub(crate) fn input_routes (&'a self) -> impl Content + 'a { - Tryptich::top(self.inputs_height) + Tryptich::top(self.arrangement.h_inputs()) .left(self.width_side, io_ports(Tui::g(224), Tui::g(32), ||self.arrangement.midi_ins_with_sizes())) .middle(self.width_mid, @@ -127,7 +127,7 @@ impl<'a> ArrangerView<'a> { } pub(crate) fn output_conns (&'a self) -> impl Content + 'a { - Tryptich::top(self.outputs_height) + Tryptich::top(self.arrangement.h_outputs()) .left(self.width_side, io_ports( Tui::g(224), Tui::g(32), ||self.arrangement.midi_outs_with_sizes())) .middle(self.width_mid, per_track_top( diff --git a/crates/device/src/arranger/arranger_view.rs b/crates/device/src/arranger/arranger_view.rs index 6119df7b..64eb5065 100644 --- a/crates/device/src/arranger/arranger_view.rs +++ b/crates/device/src/arranger/arranger_view.rs @@ -6,14 +6,14 @@ pub struct ArrangerView<'a> { pub width: u16, pub width_mid: u16, pub width_side: u16, - pub inputs_height: u16, - pub outputs_height: u16, pub scene_last: usize, pub scene_scroll: Fill>, pub scene_selected: Option, + /// Height available to display scene/track content. pub scenes_height: u16, pub track_scroll: Fill>, pub track_selected: Option, + /// Height available to display track headers. pub tracks_height: u16, } @@ -23,8 +23,8 @@ impl<'a> ArrangerView<'a> { editor: Option<&'a MidiEditor> ) -> Self { let is_editing = editor.is_some(); - let h_tracks_area = arrangement.h_tracks_area(); - let h_scenes_area = arrangement.h_scenes_area(); + let h_tracks_area = 5; + let h_scenes_area = (arrangement.height() as u16).saturating_sub(50); let h_scenes = arrangement.h_scenes(is_editing); Self { arrangement, @@ -32,8 +32,6 @@ impl<'a> ArrangerView<'a> { width: arrangement.w_tracks_area(is_editing), width_mid: arrangement.w_tracks_area(is_editing).saturating_sub(20), width_side: 20, - inputs_height: arrangement.h_inputs(), - outputs_height: arrangement.h_outputs(), scenes_height: h_scenes_area, scene_selected: arrangement.selection().scene(), scene_last: arrangement.scenes.len().saturating_sub(1), @@ -62,7 +60,7 @@ impl<'a> Content for ArrangerView<'a> { let bg = |x|Tui::bg(Reset, x); //let track_scroll = |x|Bsp::s(&self.track_scroll, x); //let scene_scroll = |x|Bsp::e(&self.scene_scroll, x); - outs(tracks(devices(ins(bg(self.scenes(&None)))))) + self.arrangement.size.of(outs(tracks(devices(ins(bg(self.scenes(&None))))))) } }