mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 04:06:45 +01:00
wip: refactor pt.34 (35e) more traits, fewer structs
This commit is contained in:
parent
cbbecc5aba
commit
beca1a6ade
19 changed files with 361 additions and 379 deletions
|
|
@ -36,6 +36,9 @@ pub type ArrangerAppCommand = AppViewCommand<ArrangerViewCommand>;
|
|||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum ArrangerViewCommand {
|
||||
Scene(ArrangerSceneCommand),
|
||||
Track(ArrangerTrackCommand),
|
||||
Clip(ArrangerClipCommand),
|
||||
Edit(ArrangerCommand),
|
||||
Select(ArrangerSelection),
|
||||
Zoom(usize),
|
||||
|
|
@ -217,6 +220,9 @@ impl Command<ArrangerApp<Tui>> for ArrangerViewCommand {
|
|||
fn execute (self, state: &mut ArrangerApp<Tui>) -> Perhaps<Self> {
|
||||
use ArrangerViewCommand::*;
|
||||
match self {
|
||||
Scene(cmd) => { delegate(cmd, Scene, &mut state.app) },
|
||||
Track(cmd) => { delegate(cmd, Track, &mut state.app) },
|
||||
Clip(cmd) => { delegate(cmd, Clip, &mut state.app) },
|
||||
Phrases(cmd) => { delegate(cmd, Phrases, &mut state.app) },
|
||||
Editor(cmd) => { delegate(cmd, Editor, &mut state.app) },
|
||||
Transport(cmd) => { delegate(cmd, Transport, &mut state.app) },
|
||||
|
|
@ -256,6 +262,45 @@ pub struct ArrangerView<E: Engine> {
|
|||
size: Measure<E>,
|
||||
}
|
||||
|
||||
impl HasJack for ArrangerView<Tui> {
|
||||
fn jack (&self) -> &Arc<RwLock<JackClient>> {
|
||||
&self.transport.jack()
|
||||
}
|
||||
}
|
||||
|
||||
impl HasClock for ArrangerView<Tui> {
|
||||
fn clock (&self) -> &Arc<Clock> {
|
||||
&self.transport.clock()
|
||||
}
|
||||
}
|
||||
|
||||
impl HasPhrases for ArrangerView<Tui> {
|
||||
fn phrases (&self) -> &Vec<Arc<RwLock<Phrase>>> {
|
||||
&self.phrases
|
||||
}
|
||||
fn phrases_mut (&mut self) -> &mut Vec<Arc<RwLock<Phrase>>> {
|
||||
&mut self.phrases
|
||||
}
|
||||
}
|
||||
|
||||
impl HasTracks<ArrangerTrack> for ArrangerView<Tui> {
|
||||
fn tracks (&self) -> &Vec<ArrangerTrack> {
|
||||
&self.tracks
|
||||
}
|
||||
fn tracks_mut (&mut self) -> &mut Vec<ArrangerTrack> {
|
||||
&mut self.tracks
|
||||
}
|
||||
}
|
||||
|
||||
impl HasScenes<ArrangerScene> for ArrangerView<Tui> {
|
||||
fn scenes (&self) -> &Vec<ArrangerScene> {
|
||||
&self.scenes
|
||||
}
|
||||
fn scenes_mut (&mut self) -> &mut Vec<ArrangerScene> {
|
||||
&mut self.scenes
|
||||
}
|
||||
}
|
||||
|
||||
/// Display mode of arranger
|
||||
#[derive(Clone, PartialEq)]
|
||||
pub enum ArrangerMode {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue