mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 04:06:45 +01:00
last small wave of 15 errors?
This commit is contained in:
parent
4fe51b5267
commit
872c2d94d6
11 changed files with 181 additions and 189 deletions
|
|
@ -33,7 +33,7 @@ pub struct Arrangement {
|
|||
/// Scroll offset of scenes
|
||||
pub scene_scroll: usize,
|
||||
/// Selected UI element
|
||||
pub selected: Option<Selection>,
|
||||
pub selection: Selection,
|
||||
/// Contains a render of the project arrangement, redrawn on update.
|
||||
/// TODO rename to "render_cache" or smth
|
||||
pub arranger: Arc<RwLock<Buffer>>,
|
||||
|
|
@ -43,13 +43,13 @@ pub struct Arrangement {
|
|||
pub pool: Pool,
|
||||
}
|
||||
|
||||
has!(Option<Selection>: |self: Arrangement|self.selected);
|
||||
has!(Vec<JackMidiIn>: |self: Arrangement|self.midi_ins);
|
||||
has!(Vec<JackMidiOut>: |self: Arrangement|self.midi_outs);
|
||||
has!(Vec<Scene>: |self: Arrangement|self.scenes);
|
||||
has!(Vec<Track>: |self: Arrangement|self.tracks);
|
||||
has!(Jack: |self: Arrangement|self.jack);
|
||||
has!(Clock: |self: Arrangement|self.clock);
|
||||
has!(Jack: |self: Arrangement|self.jack);
|
||||
has!(Clock: |self: Arrangement|self.clock);
|
||||
has!(Selection: |self: Arrangement|self.selection);
|
||||
has!(Vec<JackMidiIn>: |self: Arrangement|self.midi_ins);
|
||||
has!(Vec<JackMidiOut>: |self: Arrangement|self.midi_outs);
|
||||
has!(Vec<Scene>: |self: Arrangement|self.scenes);
|
||||
has!(Vec<Track>: |self: Arrangement|self.tracks);
|
||||
|
||||
impl Arrangement {
|
||||
/// Width of display
|
||||
|
|
@ -62,7 +62,7 @@ impl Arrangement {
|
|||
}
|
||||
/// Width taken by all tracks.
|
||||
pub fn w_tracks (&self) -> u16 {
|
||||
self.tracks_with_sizes(&self.selected, None).last()
|
||||
self.tracks_with_sizes(&self.selection(), None).last()
|
||||
.map(|(_, _, _, x)|x as u16).unwrap_or(0)
|
||||
}
|
||||
/// Width available to display tracks.
|
||||
|
|
@ -90,18 +90,12 @@ impl Arrangement {
|
|||
}
|
||||
/// Height taken by all scenes.
|
||||
pub fn h_scenes (&self, is_editing: bool) -> u16 {
|
||||
let (selected_track, selected_scene) = match Has::<Option<Selection>>::get(self) {
|
||||
Some(Selection::Track(t)) => (Some(*t), None),
|
||||
Some(Selection::Scene(s)) => (None, Some(*s)),
|
||||
Some(Selection::TrackClip { track, scene }) => (Some(*track), Some(*scene)),
|
||||
_ => (None, None)
|
||||
};
|
||||
self.scenes_with_sizes(
|
||||
is_editing,
|
||||
ArrangerView::H_SCENE,
|
||||
ArrangerView::H_EDITOR,
|
||||
selected_track,
|
||||
selected_scene
|
||||
self.selection().track(),
|
||||
self.selection().scene(),
|
||||
)
|
||||
.last()
|
||||
.map(|(_, _, _, y)|y as u16).unwrap_or(0)
|
||||
|
|
@ -121,27 +115,27 @@ impl Arrangement {
|
|||
}
|
||||
/// Get the active track
|
||||
fn get_track (&self) -> Option<&Track> {
|
||||
let index = self.selection()?.track()?;
|
||||
let index = self.selection().track()?;
|
||||
Has::<Vec<Track>>::get(self).get(index)
|
||||
}
|
||||
/// Get a mutable reference to the active track
|
||||
fn get_track_mut (&mut self) -> Option<&mut Track> {
|
||||
let index = self.selection()?.track()?;
|
||||
let index = self.selection().track()?;
|
||||
Has::<Vec<Track>>::get_mut(self).get_mut(index)
|
||||
}
|
||||
/// Get the active scene
|
||||
fn get_scene (&self) -> Option<&Scene> {
|
||||
let index = self.selection()?.scene()?;
|
||||
let index = self.selection().scene()?;
|
||||
Has::<Vec<Scene>>::get(self).get(index)
|
||||
}
|
||||
/// Get a mutable reference to the active scene
|
||||
fn get_scene_mut (&mut self) -> Option<&mut Scene> {
|
||||
let index = self.selection()?.scene()?;
|
||||
let index = self.selection().scene()?;
|
||||
Has::<Vec<Scene>>::get_mut(self).get_mut(index)
|
||||
}
|
||||
/// Get the active clip
|
||||
fn get_clip (&self) -> Option<Arc<RwLock<MidiClip>>> {
|
||||
self.get_scene()?.clips.get(self.selection()?.track()?)?.clone()
|
||||
self.get_scene()?.clips.get(self.selection().track()?)?.clone()
|
||||
}
|
||||
/// Put a clip in a slot
|
||||
pub fn clip_put (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue