mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-09 05:06:43 +01:00
remove unused generic; add Sequencer::player
This commit is contained in:
parent
076be5bcb3
commit
86adf493c8
5 changed files with 32 additions and 30 deletions
|
|
@ -55,7 +55,7 @@ pub struct Arrangement<E: Engine> {
|
|||
/// Collection of phrases.
|
||||
pub phrases: Arc<RwLock<PhrasePool<E>>>,
|
||||
/// Collection of tracks.
|
||||
pub tracks: Vec<ArrangementTrack<E>>,
|
||||
pub tracks: Vec<ArrangementTrack>,
|
||||
/// Collection of scenes.
|
||||
pub scenes: Vec<Scene>,
|
||||
/// Currently selected element.
|
||||
|
|
@ -70,13 +70,13 @@ pub struct Arrangement<E: Engine> {
|
|||
pub size: Measure<E>,
|
||||
}
|
||||
/// Represents a track in the arrangement
|
||||
pub struct ArrangementTrack<E: Engine> {
|
||||
pub struct ArrangementTrack {
|
||||
/// Name of track
|
||||
pub name: Arc<RwLock<String>>,
|
||||
/// Inputs
|
||||
pub inputs: Vec<Port<MidiIn>>,
|
||||
/// MIDI player/recorder
|
||||
pub player: PhrasePlayer<E>,
|
||||
pub player: PhrasePlayer,
|
||||
/// Outputs
|
||||
pub outputs: Vec<Port<MidiIn>>,
|
||||
/// Preferred width of track column
|
||||
|
|
@ -374,10 +374,10 @@ impl<E: Engine> Arrangement<E> {
|
|||
}
|
||||
/// Methods for tracks in arrangement
|
||||
impl<E: Engine> Arrangement<E> {
|
||||
pub fn track (&self) -> Option<&ArrangementTrack<E>> {
|
||||
pub fn track (&self) -> Option<&ArrangementTrack> {
|
||||
self.selected.track().map(|t|self.tracks.get(t)).flatten()
|
||||
}
|
||||
pub fn track_mut (&mut self) -> Option<&mut ArrangementTrack<E>> {
|
||||
pub fn track_mut (&mut self) -> Option<&mut ArrangementTrack> {
|
||||
self.selected.track().map(|t|self.tracks.get_mut(t)).flatten()
|
||||
}
|
||||
pub fn track_width_inc (&mut self) { self.track_mut().map(|t|t.width_inc()); }
|
||||
|
|
@ -386,7 +386,7 @@ impl<E: Engine> Arrangement<E> {
|
|||
pub fn track_prev (&mut self) { self.selected.track_prev() }
|
||||
pub fn track_add (
|
||||
&mut self, name: Option<&str>, color: Option<Color>
|
||||
) -> Usually<&mut ArrangementTrack<E>> {
|
||||
) -> Usually<&mut ArrangementTrack> {
|
||||
self.tracks.push(name.map_or_else(
|
||||
|| ArrangementTrack::new(&self.clock, &self.track_default_name(), color),
|
||||
|name| ArrangementTrack::new(&self.clock, name, color),
|
||||
|
|
@ -449,10 +449,10 @@ impl<E: Engine> Arrangement<E> {
|
|||
}
|
||||
/// Methods for phrases in arrangement
|
||||
impl<E: Engine> Arrangement<E> {
|
||||
pub fn sequencer (&self) -> Option<&ArrangementTrack<E>> {
|
||||
pub fn sequencer (&self) -> Option<&ArrangementTrack> {
|
||||
self.selected.track().map(|track|self.tracks.get(track)).flatten()
|
||||
}
|
||||
pub fn sequencer_mut (&mut self) -> Option<&mut ArrangementTrack<E>> {
|
||||
pub fn sequencer_mut (&mut self) -> Option<&mut ArrangementTrack> {
|
||||
self.selected.track().map(|track|self.tracks.get_mut(track)).flatten()
|
||||
}
|
||||
pub fn phrase (&self) -> Option<Arc<RwLock<Phrase>>> {
|
||||
|
|
@ -511,7 +511,7 @@ impl<E: Engine> Arrangement<E> {
|
|||
}
|
||||
}
|
||||
}
|
||||
impl<E: Engine> ArrangementTrack<E> {
|
||||
impl ArrangementTrack {
|
||||
pub fn new (clock: &Arc<TransportTime>, name: &str, color: Option<Color>) -> Self {
|
||||
Self {
|
||||
name: Arc::new(RwLock::new(name.into())),
|
||||
|
|
@ -533,7 +533,7 @@ impl<E: Engine> ArrangementTrack<E> {
|
|||
impl ArrangementFocus {
|
||||
pub fn description <E: Engine> (
|
||||
&self,
|
||||
tracks: &Vec<ArrangementTrack<E>>,
|
||||
tracks: &Vec<ArrangementTrack>,
|
||||
scenes: &Vec<Scene>,
|
||||
) -> String {
|
||||
format!("Selected: {}", match self {
|
||||
|
|
@ -646,7 +646,7 @@ impl Scene {
|
|||
})
|
||||
}
|
||||
/// Returns true if all phrases in the scene are currently playing
|
||||
pub fn is_playing <E: Engine> (&self, tracks: &[ArrangementTrack<E>]) -> bool {
|
||||
pub fn is_playing (&self, tracks: &[ArrangementTrack]) -> bool {
|
||||
self.clips.iter().any(|clip|clip.is_some()) && self.clips.iter().enumerate()
|
||||
.all(|(track_index, clip)|match clip {
|
||||
Some(clip) => tracks
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue