sequencer: merge Sequencer and SequencerTrack

This commit is contained in:
🪞👃🪞 2024-08-10 20:20:20 +03:00
parent 1d3d3875fe
commit 6206a43b4a
8 changed files with 171 additions and 190 deletions

View file

@ -4,10 +4,10 @@ use super::Arranger;
/// Track management methods
impl Arranger {
pub fn track (&self) -> Option<&SequencerTrack> {
pub fn track (&self) -> Option<&Sequencer> {
self.selected.track().map(|t|self.tracks.get(t)).flatten()
}
pub fn track_mut (&mut self) -> Option<&mut SequencerTrack> {
pub fn track_mut (&mut self) -> Option<&mut Sequencer> {
self.selected.track().map(|t|self.tracks.get_mut(t)).flatten()
}
pub fn track_next (&mut self) {
@ -16,11 +16,11 @@ impl Arranger {
pub fn track_prev (&mut self) {
self.selected.track_prev()
}
pub fn track_add (&mut self, name: Option<&str>) -> Usually<&mut SequencerTrack> {
pub fn track_add (&mut self, name: Option<&str>) -> Usually<&mut Sequencer> {
self.tracks.push(name.map_or_else(
|| SequencerTrack::new(&self.track_default_name()),
|name| SequencerTrack::new(name),
)?);
|| Sequencer::new(&self.track_default_name()),
|name| Sequencer::new(name),
));
let index = self.tracks.len() - 1;
Ok(&mut self.tracks[index])
}
@ -32,13 +32,13 @@ impl Arranger {
}
}
pub fn track_name_max_len (tracks: &[SequencerTrack]) -> usize {
pub fn track_name_max_len (tracks: &[Sequencer]) -> usize {
tracks.iter()
.map(|s|s.name.len())
.fold(0, usize::max)
}
pub fn track_clip_name_lengths (tracks: &[SequencerTrack]) -> Vec<(usize, usize)> {
pub fn track_clip_name_lengths (tracks: &[Sequencer]) -> Vec<(usize, usize)> {
let mut total = 0;
let mut lengths: Vec<(usize, usize)> = tracks.iter().map(|track|{
let len = 2 + track.phrases