mirror of
https://codeberg.org/unspeaker/tek.git
synced 2026-08-28 12:56:57 +02:00
This commit is contained in:
parent
7fcab73b04
commit
62f30daac6
6 changed files with 295 additions and 195 deletions
|
|
@ -56,29 +56,69 @@ impl App {
|
|||
}
|
||||
}
|
||||
|
||||
def_command!(MidiEditCommand: |editor: MidiEditor| {
|
||||
Show { clip: Option<Arc<RwLock<MidiClip>>> } => {
|
||||
editor.set_clip(clip.as_ref()); editor.redraw(); Ok(None) },
|
||||
DeleteNote => {
|
||||
editor.redraw(); todo!() },
|
||||
AppendNote { advance: bool } => {
|
||||
editor.put_note(*advance); editor.redraw(); Ok(None) },
|
||||
SetNotePos { pos: usize } => {
|
||||
editor.set_note_pos((*pos).min(127)); editor.redraw(); Ok(None) },
|
||||
SetNoteLen { len: usize } => {
|
||||
editor.set_note_len(*len); editor.redraw(); Ok(None) },
|
||||
SetNoteScroll { scroll: usize } => {
|
||||
editor.set_note_lo((*scroll).min(127)); editor.redraw(); Ok(None) },
|
||||
SetTimePos { pos: usize } => {
|
||||
editor.set_time_pos(*pos); editor.redraw(); Ok(None) },
|
||||
SetTimeScroll { scroll: usize } => {
|
||||
editor.set_time_start(*scroll); editor.redraw(); Ok(None) },
|
||||
SetTimeZoom { zoom: usize } => {
|
||||
editor.set_time_zoom(*zoom); editor.redraw(); Ok(None) },
|
||||
SetTimeLock { lock: bool } => {
|
||||
editor.set_time_lock(*lock); editor.redraw(); Ok(None) },
|
||||
#[tek_proc::commands(MidiEditCommand = "edit")]
|
||||
impl MidiEditor {
|
||||
#[command(Show = "show")]
|
||||
fn show (&mut self, clip: Option<Arc<RwLock<MidiClip>>>) -> Perhaps<MidiEditCommand> {
|
||||
self.set_clip(clip.as_ref());
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
#[command(DeleteNote = "delete")]
|
||||
fn note_delete (&mut self) -> Perhaps<MidiEditCommand> {
|
||||
self.redraw();
|
||||
todo!()
|
||||
}
|
||||
#[command(AppendNote = "append")]
|
||||
fn note_append (&mut self, advance: bool) -> Perhaps<MidiEditCommand> {
|
||||
self.put_note(advance);
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
#[command(SetNotePos = "note-pos")]
|
||||
fn note_set_pos (&mut self, pos: usize) -> Perhaps<MidiEditCommand> {
|
||||
self.set_note_pos((pos).min(127));
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
#[command(SetNoteLen = "note-len")]
|
||||
fn note_set_len (&mut self, len: usize) -> Perhaps<MidiEditCommand> {
|
||||
self.set_note_len(len);
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
#[command(SetNoteScroll = "note-scroll")]
|
||||
fn note_set_scroll (&mut self, scroll: usize) -> Perhaps<MidiEditCommand> {
|
||||
self.set_note_lo((scroll).min(127));
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
#[command(SetTimePos = "time-pos")]
|
||||
fn time_set_pos (&mut self, pos: usize) -> Perhaps<MidiEditCommand> {
|
||||
self.set_time_pos(pos);
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
#[command(SetTimeScroll = "time-scroll")]
|
||||
fn time_set_scroll (&mut self, scroll: usize) -> Perhaps<MidiEditCommand> {
|
||||
self.set_time_start(scroll);
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
#[command(SetTimeZoom = "time-zoom")]
|
||||
fn time_set_zoom (&mut self, zoom: usize) -> Perhaps<MidiEditCommand> {
|
||||
self.set_time_zoom(zoom);
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
#[command(SetTimeLock = "time-lock")]
|
||||
fn time_set_lock (&mut self, lock: bool) -> Perhaps<MidiEditCommand> {
|
||||
self.set_time_lock(lock);
|
||||
self.redraw();
|
||||
Ok(None)
|
||||
}
|
||||
// TODO: 1-9 seek markers that by default start every 8th of the clip
|
||||
});
|
||||
}
|
||||
|
||||
/// Contains state for viewing and editing a clip.
|
||||
///
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue