add const PPQ = 96

This commit is contained in:
🪞👃🪞 2024-10-06 02:47:55 +03:00
parent 0da54db5e0
commit 11a66ee415
5 changed files with 28 additions and 20 deletions

View file

@ -133,15 +133,14 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
type Engine = Tui;
fn content (&self) -> impl Widget<Engine = Tui> {
let Self(state, factor) = self;
let ppq = 96;
let (cols, rows) = if *factor == 0 {(
track_clip_name_lengths(state.tracks.as_slice()),
scene_ppqs(state.tracks.as_slice(), state.scenes.as_slice()),
)} else {(
track_clip_name_lengths(state.tracks.as_slice()),
(0..=state.scenes.len()).map(|i|(factor*ppq, factor*ppq*i)).collect::<Vec<_>>(),
(0..=state.scenes.len()).map(|i|(factor*PPQ, factor*PPQ*i)).collect::<Vec<_>>(),
)};
//let height = rows.last().map(|(w,y)|(y+w)/ppq).unwrap_or(16);
//let height = rows.last().map(|(w,y)|(y+w)/PPQ).unwrap_or(16);
let tracks: &[Sequencer<Tui>] = state.tracks.as_ref();
let scenes: &[Scene] = state.scenes.as_ref();
let offset = 4 + scene_name_max_len(scenes) as u16;
@ -181,7 +180,7 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
}).fixed_xy(w, h);
let tracks_clips = col!((scene, (pulses, _)) in scenes.iter().zip(rows) => {
let height = 1.max((pulses / 96) as u16);
let height = 1.max((pulses / PPQ) as u16);
let playing = scene.is_playing(tracks);
Stack::right(move |add| {
add(&scene_name(scene, playing, height))?;
@ -222,7 +221,7 @@ pub fn track_clip_name_lengths <E: Engine> (tracks: &[Sequencer<E>]) -> Vec<(usi
pub fn scene_ppqs <E: Engine> (tracks: &[Sequencer<E>], scenes: &[Scene]) -> Vec<(usize, usize)> {
let mut total = 0;
let mut scenes: Vec<(usize, usize)> = scenes.iter().map(|scene|{
let pulses = scene.pulses(tracks).max(96);
let pulses = scene.pulses(tracks).max(PPQ);
total = total + pulses;
(pulses, total - pulses)
}).collect();
@ -249,7 +248,7 @@ impl<'a> Widget for VerticalArrangerGrid<'a> {
}
}
for (_, y) in rows.iter() {
let y = area.y() + (*y / 96) as u16 + 1;
let y = area.y() + (*y / PPQ) as u16 + 1;
if y >= to.buffer.area.height {
break
}
@ -278,15 +277,15 @@ impl<'a> Widget for VerticalArrangerCursor<'a> {
];
let get_scene_area = |s: usize| [
area.x(),
2 + area.y() + (rows[s].1 / 96) as u16,
2 + area.y() + (rows[s].1 / PPQ) as u16,
area.w(),
(rows[s].0 / 96) as u16
(rows[s].0 / PPQ) as u16
];
let get_clip_area = |t: usize, s: usize| [
offset + area.x() + cols[t].1 as u16 - 1,
2 + area.y() + (rows[s].1 / 96) as u16,
2 + area.y() + (rows[s].1 / PPQ) as u16,
cols[t].0 as u16,
(rows[s].0 / 96) as u16
(rows[s].0 / PPQ) as u16
];
let mut track_area: Option<[u16;4]> = None;
let mut scene_area: Option<[u16;4]> = None;