This commit is contained in:
i do not exist 2026-09-23 12:06:38 +03:00
parent 0a89fab28a
commit 9e3cc1139d
18 changed files with 450 additions and 414 deletions

View file

@ -1,11 +1,10 @@
use crate::*;
pub trait HasProject: AsRef<Option<Project>> + AsMut<Option<Project>> {}
impl<T: AsRef<Option<Project>> + AsMut<Option<Project>>> HasProject for T {}
/// Arranger.
///
/// ```
/// let arranger = tek::Project::default();
/// ```
#[namespace(ClipPool ClipPool::eval)]
#[derive(Default, Debug)] pub struct Project {
/// JACK client handle.
pub jack: Jack<'static>,
@ -204,6 +203,35 @@ impl ClipLength {
self.pulses % self.ppq
}
}
impl HasTrackScroll for &mut Project {
fn track_scroll (&self) -> usize {
self.track_scroll
}
fn tracks_last (&self) -> usize {
self.track_last
}
fn tracks_last_mut (&mut self) -> &mut usize {
&mut self.track_last
}
}
impl HasTrackScroll for Project {
fn track_scroll (&self) -> usize {
self.track_scroll
}
fn tracks_last (&self) -> usize {
self.track_last
}
fn tracks_last_mut (&mut self) -> &mut usize {
&mut self.track_last
}
}
impl HasSceneScroll for Project {
fn scene_scroll (&self) -> usize { self.scene_scroll }
}
//impl_from!(Pool<MidiClip>: |clip:&Arc<RwLock<MidiClip>>|{
//let model = Self::default();
//model.clips.try_write().unwrap().push(clip.clone());