From 57eff509733394bb070d9ea3f80d2bc7cbaf537c Mon Sep 17 00:00:00 2001 From: unspeaker Date: Wed, 14 May 2025 15:16:43 +0300 Subject: [PATCH] wip: back to 89 errors --- crates/app/src/api.rs | 16 ++------------ crates/app/src/model.rs | 5 ++++- crates/app/src/view.rs | 24 ++++++++++----------- crates/device/src/arranger/arranger_api.rs | 16 +++++++------- crates/device/src/arranger/arranger_view.rs | 6 +----- 5 files changed, 27 insertions(+), 40 deletions(-) diff --git a/crates/app/src/api.rs b/crates/app/src/api.rs index 430a520b..f2fe97f5 100644 --- a/crates/app/src/api.rs +++ b/crates/app/src/api.rs @@ -79,20 +79,8 @@ handle!(TuiIn: |self: App, input|Ok(if let Some(command) = self.config.keys.comm .transpose()? .flatten()) } - fn scene (app: &mut App, command: SceneCommand) -> Perhaps { - Ok(command.delegate(app, |command|Self::Scene{command})?) - } - fn track (app: &mut App, command: TrackCommand) -> Perhaps { - Ok(command.delegate(app, |command|Self::Track{command})?) - } - fn input (app: &mut App, command: InputCommand) -> Perhaps { - Ok(command.delegate(app, |command|Self::Input{command})?) - } - fn output (app: &mut App, command: OutputCommand) -> Perhaps { - Ok(command.delegate(app, |command|Self::Output{command})?) - } - fn clip (app: &mut App, command: ClipCommand) -> Perhaps { - Ok(command.delegate(app, |command|Self::Clip{command})?) + fn arrange (app: &mut App, command: ArrangementCommand) -> Perhaps { + Ok(command.delegate(app, |command|Self::Arrange{command})?) } fn clock (app: &mut App, command: ClockCommand) -> Perhaps { Ok(command.execute(&mut app.clock)?.map(|command|Self::Clock{command})) diff --git a/crates/app/src/model.rs b/crates/app/src/model.rs index ad036139..6cd4f34e 100644 --- a/crates/app/src/model.rs +++ b/crates/app/src/model.rs @@ -141,7 +141,7 @@ pub trait AutoRemove: } } } -} + /// Various possible dialog overlays #[derive(PartialEq, Clone, Copy, Debug)] @@ -180,6 +180,9 @@ has_editor!(|self: App|{ #[tengri_proc::expose] impl App { + fn _todo_u16_stub (&self) -> u16 { + todo!() + } fn _todo_isize_stub (&self) -> isize { todo!() } diff --git a/crates/app/src/view.rs b/crates/app/src/view.rs index ff8a7c07..d9d5fd0e 100644 --- a/crates/app/src/view.rs +++ b/crates/app/src/view.rs @@ -17,7 +17,7 @@ impl App { pub fn view_status (&self) -> impl Content + use<'_> { self.update_clock(); let cache = self.view_cache.read().unwrap(); - view_status(self.selected.describe(&self.tracks, &self.scenes), + view_status(self.selected.describe(self.tracks(), self.scenes()), cache.sr.view.clone(), cache.buf.view.clone(), cache.lat.view.clone()) } pub fn view_transport (&self) -> impl Content + use<'_> { @@ -54,24 +54,24 @@ impl App { self.sampler().map(|s|s.view_meters_output()) } pub fn view_dialog (&self) -> impl Content + use<'_> { - When(app.dialog.is_some(), Bsp::b( "", + When(self.dialog.is_some(), Bsp::b( "", Fixed::xy(70, 23, Tui::fg_bg(Rgb(255,255,255), Rgb(16,16,16), Bsp::b( Repeat(" "), Outer(true, Style::default().fg(Tui::g(96))) - .enclose(app.dialog.as_ref().map(|dialog|match dialog { + .enclose(self.dialog.as_ref().map(|dialog|match dialog { Dialog::Menu => - app.view_dialog_menu().boxed(), + self.view_dialog_menu().boxed(), Dialog::Help => - app.view_dialog_help().boxed(), - Dialog::Save => - app.view_dialog_save().boxed(), - Dialog::Load => - app.view_dialog_load().boxed(), + self.view_dialog_help().boxed(), + Dialog::Save(browser) => + self.view_dialog_save().boxed(), + Dialog::Load(browser) => + self.view_dialog_load().boxed(), Dialog::Options => - app.view_dialog_options().boxed(), + self.view_dialog_options().boxed(), Dialog::Device(index) => - app.view_dialog_device(*index).boxed(), + self.view_dialog_device(*index).boxed(), Dialog::Message(message) => - app.view_dialog_message(message).boxed(), + self.view_dialog_message(message).boxed(), })) ))) )) diff --git a/crates/device/src/arranger/arranger_api.rs b/crates/device/src/arranger/arranger_api.rs index 6180a5d1..44d9fdd8 100644 --- a/crates/device/src/arranger/arranger_api.rs +++ b/crates/device/src/arranger/arranger_api.rs @@ -36,37 +36,37 @@ impl ArrangementCommand { Ok(None) } /// Set the color of the selected entity - fn set_color (arranger: &mut Arrangement, palette: Option) -> Option { + fn set_color (arranger: &mut Arrangement, palette: Option) -> Perhaps { use Selection::*; let palette = palette.unwrap_or_else(||ItemTheme::random()); - Some(match arranger.selected { + Ok(Some(Self::SetColor { palette: match arranger.selected { Some(Mix) => { let old = arranger.color; arranger.color = palette; - old + Some(old) }, Some(Scene(s)) => { let old = arranger.scenes[s].color; arranger.scenes[s].color = palette; - old + Some(old) } Some(Track(t)) => { let old = arranger.tracks[t].color; arranger.tracks[t].color = palette; - old + Some(old) } Some(TrackClip { track, scene }) => { if let Some(ref clip) = arranger.scenes[scene].clips[track] { let mut clip = clip.write().unwrap(); let old = clip.color; clip.color = palette; - old + Some(old) } else { - return None + None } }, _ => todo!() - }) + } })) } fn track (arranger: &mut Arrangement, track: TrackCommand) -> Perhaps { diff --git a/crates/device/src/arranger/arranger_view.rs b/crates/device/src/arranger/arranger_view.rs index 37b8e593..0375819b 100644 --- a/crates/device/src/arranger/arranger_view.rs +++ b/crates/device/src/arranger/arranger_view.rs @@ -167,11 +167,7 @@ impl<'a> ArrangerView<'a> { .left(*width_side, Map::new( move||arrangement.scenes_with_sizes( - *is_editing, - Self::H_SCENE, - Self::H_EDITOR, - selected_track, - selected_scene, + *is_editing, Self::H_SCENE, Self::H_EDITOR, selected_track, selected_scene, ).map_while(|(s, scene, y1, y2)|if y2 as u16 > *scenes_height { None } else {