mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-09 05:06:43 +01:00
scale grid rows; one/two still missing
This commit is contained in:
parent
9cd9131d5d
commit
ec81cbf2f1
3 changed files with 34 additions and 25 deletions
|
|
@ -76,7 +76,7 @@ pub struct ArrangementTrack<E: Engine> {
|
|||
/// Identifying color of track
|
||||
pub color: Color,
|
||||
}
|
||||
#[derive(Default)]
|
||||
#[derive(Default, Debug)]
|
||||
pub struct Scene {
|
||||
/// Name of scene
|
||||
pub name: Arc<RwLock<String>>,
|
||||
|
|
@ -251,7 +251,9 @@ impl<E: Engine> Arrangement<E> {
|
|||
ArrangementFocus::Track(_) => self.track_width_inc(),
|
||||
ArrangementFocus::Scene(_) => self.scene_next(),
|
||||
ArrangementFocus::Clip(_, _) => self.phrase_next(),
|
||||
_ => {}
|
||||
ArrangementFocus::Mix => if let ArrangementViewMode::Vertical(factor) = self.mode {
|
||||
self.mode = ArrangementViewMode::Vertical(factor + 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
pub fn decrement (&mut self) {
|
||||
|
|
@ -259,7 +261,9 @@ impl<E: Engine> Arrangement<E> {
|
|||
ArrangementFocus::Track(_) => self.track_width_dec(),
|
||||
ArrangementFocus::Scene(_) => self.scene_prev(),
|
||||
ArrangementFocus::Clip(_, _) => self.phrase_prev(),
|
||||
_ => {}
|
||||
ArrangementFocus::Mix => if let ArrangementViewMode::Vertical(factor) = self.mode {
|
||||
self.mode = ArrangementViewMode::Vertical(factor.saturating_sub(1))
|
||||
}
|
||||
}
|
||||
}
|
||||
pub fn is_first_row (&self) -> bool {
|
||||
|
|
@ -675,15 +679,22 @@ impl Scene {
|
|||
None => true
|
||||
})
|
||||
}
|
||||
pub fn ppqs (scenes: &[Self]) -> Vec<(usize, usize)> {
|
||||
pub fn ppqs (scenes: &[Self], factor: usize) -> Vec<(usize, usize)> {
|
||||
let mut total = 0;
|
||||
let mut scenes: Vec<(usize, usize)> = scenes.iter().map(|scene|{
|
||||
let pulses = scene.pulses().max(PPQ);
|
||||
total = total + pulses;
|
||||
(pulses, total - pulses)
|
||||
}).collect();
|
||||
scenes.push((0, total));
|
||||
scenes
|
||||
if factor == 0 {
|
||||
let mut scenes: Vec<(usize, usize)> = scenes.iter().map(|scene|{
|
||||
let pulses = scene.pulses().max(PPQ);
|
||||
total = total + pulses;
|
||||
(pulses, total - pulses)
|
||||
}).collect();
|
||||
scenes.push((0, total));
|
||||
scenes
|
||||
} else {
|
||||
let scenes: Vec<(usize, usize)> = (0..=scenes.len()).map(|i|{
|
||||
(factor*PPQ, factor*PPQ*i)
|
||||
}).collect::<Vec<_>>();
|
||||
scenes
|
||||
}
|
||||
}
|
||||
pub fn longest_name (scenes: &[Self]) -> usize {
|
||||
scenes.iter()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue