mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-09 05:06:43 +01:00
wip: back to 89 errors
This commit is contained in:
parent
f3c67f95b5
commit
57eff50973
5 changed files with 27 additions and 40 deletions
|
|
@ -79,20 +79,8 @@ handle!(TuiIn: |self: App, input|Ok(if let Some(command) = self.config.keys.comm
|
||||||
.transpose()?
|
.transpose()?
|
||||||
.flatten())
|
.flatten())
|
||||||
}
|
}
|
||||||
fn scene (app: &mut App, command: SceneCommand) -> Perhaps<Self> {
|
fn arrange (app: &mut App, command: ArrangementCommand) -> Perhaps<Self> {
|
||||||
Ok(command.delegate(app, |command|Self::Scene{command})?)
|
Ok(command.delegate(app, |command|Self::Arrange{command})?)
|
||||||
}
|
|
||||||
fn track (app: &mut App, command: TrackCommand) -> Perhaps<Self> {
|
|
||||||
Ok(command.delegate(app, |command|Self::Track{command})?)
|
|
||||||
}
|
|
||||||
fn input (app: &mut App, command: InputCommand) -> Perhaps<Self> {
|
|
||||||
Ok(command.delegate(app, |command|Self::Input{command})?)
|
|
||||||
}
|
|
||||||
fn output (app: &mut App, command: OutputCommand) -> Perhaps<Self> {
|
|
||||||
Ok(command.delegate(app, |command|Self::Output{command})?)
|
|
||||||
}
|
|
||||||
fn clip (app: &mut App, command: ClipCommand) -> Perhaps<Self> {
|
|
||||||
Ok(command.delegate(app, |command|Self::Clip{command})?)
|
|
||||||
}
|
}
|
||||||
fn clock (app: &mut App, command: ClockCommand) -> Perhaps<Self> {
|
fn clock (app: &mut App, command: ClockCommand) -> Perhaps<Self> {
|
||||||
Ok(command.execute(&mut app.clock)?.map(|command|Self::Clock{command}))
|
Ok(command.execute(&mut app.clock)?.map(|command|Self::Clock{command}))
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ pub trait AutoRemove:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/// Various possible dialog overlays
|
/// Various possible dialog overlays
|
||||||
#[derive(PartialEq, Clone, Copy, Debug)]
|
#[derive(PartialEq, Clone, Copy, Debug)]
|
||||||
|
|
@ -180,6 +180,9 @@ has_editor!(|self: App|{
|
||||||
|
|
||||||
#[tengri_proc::expose]
|
#[tengri_proc::expose]
|
||||||
impl App {
|
impl App {
|
||||||
|
fn _todo_u16_stub (&self) -> u16 {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
fn _todo_isize_stub (&self) -> isize {
|
fn _todo_isize_stub (&self) -> isize {
|
||||||
todo!()
|
todo!()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ impl App {
|
||||||
pub fn view_status (&self) -> impl Content<TuiOut> + use<'_> {
|
pub fn view_status (&self) -> impl Content<TuiOut> + use<'_> {
|
||||||
self.update_clock();
|
self.update_clock();
|
||||||
let cache = self.view_cache.read().unwrap();
|
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())
|
cache.sr.view.clone(), cache.buf.view.clone(), cache.lat.view.clone())
|
||||||
}
|
}
|
||||||
pub fn view_transport (&self) -> impl Content<TuiOut> + use<'_> {
|
pub fn view_transport (&self) -> impl Content<TuiOut> + use<'_> {
|
||||||
|
|
@ -54,24 +54,24 @@ impl App {
|
||||||
self.sampler().map(|s|s.view_meters_output())
|
self.sampler().map(|s|s.view_meters_output())
|
||||||
}
|
}
|
||||||
pub fn view_dialog (&self) -> impl Content<TuiOut> + use<'_> {
|
pub fn view_dialog (&self) -> impl Content<TuiOut> + 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(
|
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)))
|
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 =>
|
Dialog::Menu =>
|
||||||
app.view_dialog_menu().boxed(),
|
self.view_dialog_menu().boxed(),
|
||||||
Dialog::Help =>
|
Dialog::Help =>
|
||||||
app.view_dialog_help().boxed(),
|
self.view_dialog_help().boxed(),
|
||||||
Dialog::Save =>
|
Dialog::Save(browser) =>
|
||||||
app.view_dialog_save().boxed(),
|
self.view_dialog_save().boxed(),
|
||||||
Dialog::Load =>
|
Dialog::Load(browser) =>
|
||||||
app.view_dialog_load().boxed(),
|
self.view_dialog_load().boxed(),
|
||||||
Dialog::Options =>
|
Dialog::Options =>
|
||||||
app.view_dialog_options().boxed(),
|
self.view_dialog_options().boxed(),
|
||||||
Dialog::Device(index) =>
|
Dialog::Device(index) =>
|
||||||
app.view_dialog_device(*index).boxed(),
|
self.view_dialog_device(*index).boxed(),
|
||||||
Dialog::Message(message) =>
|
Dialog::Message(message) =>
|
||||||
app.view_dialog_message(message).boxed(),
|
self.view_dialog_message(message).boxed(),
|
||||||
}))
|
}))
|
||||||
)))
|
)))
|
||||||
))
|
))
|
||||||
|
|
|
||||||
|
|
@ -36,37 +36,37 @@ impl ArrangementCommand {
|
||||||
Ok(None)
|
Ok(None)
|
||||||
}
|
}
|
||||||
/// Set the color of the selected entity
|
/// Set the color of the selected entity
|
||||||
fn set_color (arranger: &mut Arrangement, palette: Option<ItemTheme>) -> Option<ItemTheme> {
|
fn set_color (arranger: &mut Arrangement, palette: Option<ItemTheme>) -> Perhaps<Self> {
|
||||||
use Selection::*;
|
use Selection::*;
|
||||||
let palette = palette.unwrap_or_else(||ItemTheme::random());
|
let palette = palette.unwrap_or_else(||ItemTheme::random());
|
||||||
Some(match arranger.selected {
|
Ok(Some(Self::SetColor { palette: match arranger.selected {
|
||||||
Some(Mix) => {
|
Some(Mix) => {
|
||||||
let old = arranger.color;
|
let old = arranger.color;
|
||||||
arranger.color = palette;
|
arranger.color = palette;
|
||||||
old
|
Some(old)
|
||||||
},
|
},
|
||||||
Some(Scene(s)) => {
|
Some(Scene(s)) => {
|
||||||
let old = arranger.scenes[s].color;
|
let old = arranger.scenes[s].color;
|
||||||
arranger.scenes[s].color = palette;
|
arranger.scenes[s].color = palette;
|
||||||
old
|
Some(old)
|
||||||
}
|
}
|
||||||
Some(Track(t)) => {
|
Some(Track(t)) => {
|
||||||
let old = arranger.tracks[t].color;
|
let old = arranger.tracks[t].color;
|
||||||
arranger.tracks[t].color = palette;
|
arranger.tracks[t].color = palette;
|
||||||
old
|
Some(old)
|
||||||
}
|
}
|
||||||
Some(TrackClip { track, scene }) => {
|
Some(TrackClip { track, scene }) => {
|
||||||
if let Some(ref clip) = arranger.scenes[scene].clips[track] {
|
if let Some(ref clip) = arranger.scenes[scene].clips[track] {
|
||||||
let mut clip = clip.write().unwrap();
|
let mut clip = clip.write().unwrap();
|
||||||
let old = clip.color;
|
let old = clip.color;
|
||||||
clip.color = palette;
|
clip.color = palette;
|
||||||
old
|
Some(old)
|
||||||
} else {
|
} else {
|
||||||
return None
|
None
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_ => todo!()
|
_ => todo!()
|
||||||
})
|
} }))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn track (arranger: &mut Arrangement, track: TrackCommand) -> Perhaps<Self> {
|
fn track (arranger: &mut Arrangement, track: TrackCommand) -> Perhaps<Self> {
|
||||||
|
|
|
||||||
|
|
@ -167,11 +167,7 @@ impl<'a> ArrangerView<'a> {
|
||||||
|
|
||||||
.left(*width_side, Map::new(
|
.left(*width_side, Map::new(
|
||||||
move||arrangement.scenes_with_sizes(
|
move||arrangement.scenes_with_sizes(
|
||||||
*is_editing,
|
*is_editing, Self::H_SCENE, Self::H_EDITOR, selected_track, selected_scene,
|
||||||
Self::H_SCENE,
|
|
||||||
Self::H_EDITOR,
|
|
||||||
selected_track,
|
|
||||||
selected_scene,
|
|
||||||
).map_while(|(s, scene, y1, y2)|if y2 as u16 > *scenes_height {
|
).map_while(|(s, scene, y1, y2)|if y2 as u16 > *scenes_height {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue