change Device from trait to enum

This commit is contained in:
🪞👃🪞 2025-04-24 22:30:43 +03:00
parent 866d88c8ec
commit 1cc3a58826
8 changed files with 150 additions and 92 deletions

View file

@ -128,19 +128,51 @@ impl Cli {
keys_scene: SourceIter(include_str!("./edn/arranger_keys_scene.edn")),
keys_mix: SourceIter(include_str!("./edn/arranger_keys_mix.edn")),
tracks: match mode {
Mode::Sequencer => vec![Track::default()],
Mode::Groovebox | Mode::Sampler => vec![Track {
devices: vec![
Device::boxed(Sampler::new(
jack,
&"sampler",
midi_froms.as_slice(),
audio_froms,
audio_tos
)?)
],
..Track::default()
}],
Mode::Sequencer => vec![
Track {
devices: vec![
Device::Sequencer(
MidiPlayer::default()
),
],
..Track::default()
},
],
Mode::Groovebox => vec![
Track {
devices: vec![
Device::Sequencer(
MidiPlayer::default()
),
Device::Sampler(Sampler::new(
jack,
&"sampler",
midi_froms.as_slice(),
audio_froms,
audio_tos
)?)
],
..Track::default()
}
],
Mode::Sampler => vec![
Track {
devices: vec![
Device::Sampler(Sampler::new(
jack,
&"sampler",
midi_froms.as_slice(),
audio_froms,
audio_tos
)?)
],
..Track::default()
}
],
_ => vec![]
},
scenes,