From 117f4d536388fc898651a1042a79a54e1de1675c Mon Sep 17 00:00:00 2001 From: unspeaker Date: Tue, 9 Jul 2024 19:58:13 +0300 Subject: [PATCH] border style macro --- src/main.rs | 26 +++--- src/view.rs | 3 +- src/view/border.rs | 227 +++++++++++++++++++++------------------------ src/view/chain.rs | 6 +- 4 files changed, 123 insertions(+), 139 deletions(-) diff --git a/src/main.rs b/src/main.rs index aebe8cc9..9810e988 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,21 +9,21 @@ extern crate clap; extern crate jack as _jack; extern crate crossterm; -pub mod cli; -pub mod config; -pub mod control; -pub mod core; -pub mod model; -pub mod view; -pub mod jack; -pub mod edn; +mod cli; +mod config; +mod control; +mod core; +mod model; +mod view; +mod jack; +mod edn; use crate::{core::*, model::*}; /// Application entrypoint. -pub fn main () -> Usually<()> { - let midi_from = ["nanoKEY Studio.*capture.*"]; - let audio_into = ["Komplete.+:playback_FL", "Komplete.+:playback_FR"]; +fn main () -> Usually<()> { + let controller = ["nanoKEY Studio.*capture.*"]; + let soundsystem = ["Komplete.+:playback_FL", "Komplete.+:playback_FR"]; // Start main loop App::new()?.run(Some(|app: Arc>|{ let mut state = app.write().unwrap(); @@ -32,7 +32,7 @@ pub fn main () -> Usually<()> { let client = jack.as_client(); state.transport = Some(client.transport()); state.midi_in = Some(client.register_port("midi-in", MidiIn)?); - let _ = midi_from + controller .iter() .map(|name|client .ports(Some(name), None, PortFlags::empty()) @@ -45,7 +45,7 @@ pub fn main () -> Usually<()> { }) .collect::>()) .collect::>()?; - state.audio_outs = audio_into + state.audio_outs = soundsystem .iter() .map(|name|client .ports(Some(name), None, PortFlags::empty()) diff --git a/src/view.rs b/src/view.rs index 128d3681..26fe2cd4 100644 --- a/src/view.rs +++ b/src/view.rs @@ -17,12 +17,11 @@ pub use self::sequencer::SequencerView; use crate::{render, App, core::*}; render!(App |self, buf, area| { - let track = self.track_cursor; Split::down([ &TransportView::new(self), &Split::down([ &ArrangerView::new(&self, !self.arranger_mode), - &If(track > 0, &Split::right([ + &If(self.track_cursor > 0, &Split::right([ &ChainView::vertical(&self), &SequencerView::new(&self), ])) diff --git a/src/view/border.rs b/src/view/border.rs index 25c1a973..a352e3ab 100644 --- a/src/view/border.rs +++ b/src/view/border.rs @@ -10,154 +10,139 @@ pub trait BorderStyle { const SW: &'static str = ""; const W: &'static str = ""; + #[inline] fn draw (&self, buf: &mut Buffer, area: Rect) { - self.draw_horizontal(buf, area); - self.draw_vertical(buf, area); - self.draw_corners(buf, area); + self.draw_horizontal(buf, area, None); + self.draw_vertical(buf, area, None); + self.draw_corners(buf, area, None); } - fn draw_horizontal (&self, buf: &mut Buffer, area: Rect) { - let style = self.style(); + #[inline] + fn draw_horizontal (&self, buf: &mut Buffer, area: Rect, style: Option