diff --git a/crates/tek_cli/Cargo.toml b/crates/tek_cli/Cargo.toml index 29cc5182..b9a09541 100644 --- a/crates/tek_cli/Cargo.toml +++ b/crates/tek_cli/Cargo.toml @@ -8,21 +8,21 @@ tek_core = { path = "../tek_core" } tek_api = { path = "../tek_api" } tek_tui = { path = "../tek_tui" } -[[bin]] -name = "tek_mixer" -path = "src/cli_mixer.rs" +#[[bin]] +#name = "tek_mixer" +#path = "src/cli_mixer.rs" -[[bin]] -name = "tek_track" -path = "src/cli_track.rs" +#[[bin]] +#name = "tek_track" +#path = "src/cli_track.rs" -[[bin]] -name = "tek_sampler" -path = "src/cli_sampler.rs" +#[[bin]] +#name = "tek_sampler" +#path = "src/cli_sampler.rs" -[[bin]] -name = "tek_plugin" -path = "src/cli_plugin.rs" +#[[bin]] +#name = "tek_plugin" +#path = "src/cli_plugin.rs" [[bin]] name = "tek_sequencer" diff --git a/crates/tek_cli/src/cli_arranger.rs b/crates/tek_cli/src/cli_arranger.rs index 29195126..31415293 100644 --- a/crates/tek_cli/src/cli_arranger.rs +++ b/crates/tek_cli/src/cli_arranger.rs @@ -1,4 +1,5 @@ -use tek_core::clap::{self, Parser}; +use tek_api::{JackActivate, ArrangerTracksApi, HasScenes}; +use tek_core::{*, clap::{self, Parser}}; pub fn main () -> Usually<()> { ArrangerCli::parse().run() @@ -22,14 +23,14 @@ impl ArrangerCli { /// Run the arranger TUI from CLI arguments. fn run (&self) -> Usually<()> { Tui::run(JackClient::new("tek_arranger")?.activate_with(|jack|{ - let mut app = TransportApp::try_from(jack)?; + let mut app = tek_tui::ArrangerTui::try_from(jack)?; if let Some(name) = self.name.as_ref() { - *arrangement.name.write().unwrap() = name.clone(); + *app.name.write().unwrap() = name.clone(); } let track_color_1 = ItemColor::random(); let track_color_2 = ItemColor::random(); for i in 0..self.tracks { - let _track = arrangement.track_add( + let _track = app.track_add( None, Some(track_color_1.mix(track_color_2, i as f32 / self.tracks as f32)) )?; @@ -37,13 +38,13 @@ impl ArrangerCli { let scene_color_1 = ItemColor::random(); let scene_color_2 = ItemColor::random(); for i in 0..self.scenes { - let _scene = arrangement.scene_add( + let _scene = app.scene_add( None, Some(scene_color_1.mix(scene_color_2, i as f32 / self.scenes as f32)) )?; } Ok(app) - })?)? + })?)?; Ok(()) } } diff --git a/crates/tek_cli/src/cli_sequencer.rs b/crates/tek_cli/src/cli_sequencer.rs index 0c190a0f..54a6abea 100644 --- a/crates/tek_cli/src/cli_sequencer.rs +++ b/crates/tek_cli/src/cli_sequencer.rs @@ -1,4 +1,5 @@ -use tek_core::clap::{self, Parser}; +use tek_api::JackActivate; +use tek_core::{*, clap::{self, Parser}}; pub fn main () -> Usually<()> { SequencerCli::parse().run() @@ -20,7 +21,7 @@ pub struct SequencerCli { impl SequencerCli { fn run (&self) -> Usually<()> { Tui::run(JackClient::new("tek_sequencer")?.activate_with(|jack|{ - let mut app = SequencerApp::try_from(jack)?; + let mut app = tek_tui::SequencerTui::try_from(jack)?; if let Some(_) = self.name.as_ref() { // TODO: sequencer.name = Arc::new(RwLock::new(name.clone())); } diff --git a/crates/tek_cli/src/cli_transport.rs b/crates/tek_cli/src/cli_transport.rs index de29abeb..9be6b693 100644 --- a/crates/tek_cli/src/cli_transport.rs +++ b/crates/tek_cli/src/cli_transport.rs @@ -1,7 +1,10 @@ -use tek_core::clap::{self, Parser}; +use tek_api::JackActivate; +use tek_core::{*, clap::{self, Parser}}; /// Application entrypoint. pub fn main () -> Usually<()> { - Tui::run(JackClient::new("tek_transport")?.activate_with(TransportApp::try_from)?)? + Tui::run(JackClient::new("tek_transport")?.activate_with(|jack|{ + tek_tui::TransportTui::try_from(jack) + })?)?; Ok(()) } diff --git a/crates/tek_cli/src/cli_mixer.rs b/crates/tek_cli/src/todo_cli_mixer.rs similarity index 94% rename from crates/tek_cli/src/cli_mixer.rs rename to crates/tek_cli/src/todo_cli_mixer.rs index b52c46bd..183e7730 100644 --- a/crates/tek_cli/src/cli_mixer.rs +++ b/crates/tek_cli/src/todo_cli_mixer.rs @@ -1,4 +1,4 @@ -use tek_core::clap::{self, Parser}; +use tek_core::{*, clap::{self, Parser}}; pub fn main () -> Usually<()> { MixerCli::parse().run() diff --git a/crates/tek_cli/src/cli_plugin.rs b/crates/tek_cli/src/todo_cli_plugin.rs similarity index 94% rename from crates/tek_cli/src/cli_plugin.rs rename to crates/tek_cli/src/todo_cli_plugin.rs index 599fba4d..b18cf81c 100644 --- a/crates/tek_cli/src/cli_plugin.rs +++ b/crates/tek_cli/src/todo_cli_plugin.rs @@ -1,4 +1,4 @@ -use tek_core::clap::{self, Parser}; +use tek_core::{*, clap::{self, Parser}}; pub fn main () -> Usually<()> { PluginCli::parse().run() diff --git a/crates/tek_cli/src/cli_sampler.rs b/crates/tek_cli/src/todo_cli_sampler.rs similarity index 94% rename from crates/tek_cli/src/cli_sampler.rs rename to crates/tek_cli/src/todo_cli_sampler.rs index 06e79757..d18ba00c 100644 --- a/crates/tek_cli/src/cli_sampler.rs +++ b/crates/tek_cli/src/todo_cli_sampler.rs @@ -1,4 +1,4 @@ -use tek_core::clap::{self, Parser}; +use tek_core::{*, clap::{self, Parser}}; pub fn main () -> Usually<()> { SamplerCli::parse().run() diff --git a/crates/tek_tui/src/tui_apps.rs b/crates/tek_tui/src/tui_apps.rs index 735e8f79..a3bafc88 100644 --- a/crates/tek_tui/src/tui_apps.rs +++ b/crates/tek_tui/src/tui_apps.rs @@ -2,51 +2,51 @@ use crate::*; /// Stores and displays time-related info. pub struct TransportTui { - pub(crate) jack: Arc>, - pub(crate) state: TransportModel, - pub(crate) size: Measure, - pub(crate) cursor: (usize, usize), + pub jack: Arc>, + pub state: TransportModel, + pub size: Measure, + pub cursor: (usize, usize), } /// Root view for standalone `tek_sequencer`. pub struct SequencerTui { - pub(crate) jack: Arc>, - pub(crate) transport: TransportModel, - pub(crate) phrases: PhrasesModel, - pub(crate) player: PhrasePlayerModel, - pub(crate) editor: PhraseEditorModel, - pub(crate) size: Measure, - pub(crate) cursor: (usize, usize), - pub(crate) split: u16, - pub(crate) entered: bool, + pub jack: Arc>, + pub transport: TransportModel, + pub phrases: PhrasesModel, + pub player: PhrasePlayerModel, + pub editor: PhraseEditorModel, + pub size: Measure, + pub cursor: (usize, usize), + pub split: u16, + pub entered: bool, /// MIDI output buffer - pub(crate) note_buf: Vec, + pub note_buf: Vec, /// MIDI output buffer - pub(crate) midi_buf: Vec>>, + pub midi_buf: Vec>>, } /// Root view for standalone `tek_arranger` pub struct ArrangerTui { - pub(crate) jack: Arc>, - pub(crate) transport: TransportModel, - pub(crate) phrases: PhrasesModel, - pub(crate) tracks: Vec, - pub(crate) scenes: Vec, - pub(crate) name: Arc>, - pub(crate) splits: [u16;2], - pub(crate) selected: ArrangerSelection, - pub(crate) mode: ArrangerMode, - pub(crate) color: ItemColor, - pub(crate) entered: bool, - pub(crate) size: Measure, - pub(crate) cursor: (usize, usize), - pub(crate) menu_bar: Option>, - pub(crate) status_bar: Option, - pub(crate) history: Vec, + pub jack: Arc>, + pub transport: TransportModel, + pub phrases: PhrasesModel, + pub tracks: Vec, + pub scenes: Vec, + pub name: Arc>, + pub splits: [u16;2], + pub selected: ArrangerSelection, + pub mode: ArrangerMode, + pub color: ItemColor, + pub entered: bool, + pub size: Measure, + pub cursor: (usize, usize), + pub menu_bar: Option>, + pub status_bar: Option, + pub history: Vec, /// MIDI output buffer - pub(crate) note_buf: Vec, + pub note_buf: Vec, /// MIDI output buffer - pub(crate) midi_buf: Vec>>, + pub midi_buf: Vec>>, /// MIDI editor state - pub(crate) editor: PhraseEditorModel, + pub editor: PhraseEditorModel, }