refactor and cleanup (move impls)

This commit is contained in:
🪞👃🪞 2024-07-11 16:13:54 +03:00
parent c2d6f22e46
commit db25099268
4 changed files with 111 additions and 202 deletions

View file

@ -1,4 +1,4 @@
use crate::core::*;
use crate::{core::*, model::App};
/// Define a MIDI phrase.
#[macro_export] macro_rules! phrase {
@ -89,3 +89,22 @@ impl Phrase {
}
}
}
impl App {
pub fn phrase (&self) -> Option<&Phrase> {
let (track_id, track) = self.track()?;
let (_, scene) = self.scene()?;
track.phrases.get((*scene.clips.get(track_id)?)?)
}
pub fn phrase_mut (&mut self) -> Option<&mut Phrase> {
let (track_id, _) = self.track()?;
let (_, scene) = self.scene()?;
let clip = (*scene.clips.get(track_id)?)?;
self.track_mut()?.1.phrases.get_mut(clip)
}
pub fn phrase_id (&self) -> Option<usize> {
let (track_id, _) = self.track()?;
let (_, scene) = self.scene()?;
*scene.clips.get(track_id)?
}
}