extract Sequencer model

This commit is contained in:
🪞👃🪞 2024-07-13 17:11:28 +03:00
parent f347ca838b
commit aa478099d9
14 changed files with 211 additions and 348 deletions

View file

@ -58,10 +58,10 @@ impl Arranger {
self.selected.track_prev()
}
pub fn track_add (&mut self, name: Option<&str>) -> Usually<&mut Track> {
self.tracks.push(match name {
Some(name) => Track::new(name, None, None)?,
None => Track::new(&self.track_default_name(), None, None)?
});
self.tracks.push(name.map_or_else(
|| Track::new(&self.track_default_name()),
|name| Track::new(name),
)?);
let index = self.tracks.len() - 1;
Ok(&mut self.tracks[index])
}
@ -106,15 +106,15 @@ impl Arranger {
/// Phrase management methods
impl Arranger {
pub fn phrase (&self) -> Option<&Phrase> {
pub fn phrase (&self) -> Option<&Arc<RwLock<Phrase>>> {
let track_id = self.selected.track()?;
self.tracks.get(track_id)?.phrases.get((*self.scene()?.clips.get(track_id)?)?)
}
pub fn phrase_mut (&mut self) -> Option<&mut Phrase> {
let track_id = self.selected.track()?;
let clip = *self.scene()?.clips.get(track_id)?;
self.tracks.get_mut(track_id)?.phrases.get_mut(clip?)
}
//pub fn phrase_mut (&mut self) -> Option<&mut Phrase> {
//let track_id = self.selected.track()?;
//let clip = *self.scene()?.clips.get(track_id)?;
//self.tracks.get_mut(track_id)?.phrases.get_mut(clip?)
//}
pub fn phrase_next (&mut self) {
unimplemented!();
//if let Some((track_index, track)) = self.track_mut() {