mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-08 04:36:45 +01:00
refactor: merge plugin, sampler -> mixer; transport -> sequencer; time -> core
This commit is contained in:
parent
6206a43b4a
commit
a659062dbc
46 changed files with 128 additions and 198 deletions
|
|
@ -9,11 +9,8 @@ microxdg = "0.1.2"
|
|||
|
||||
tek_core = { path = "../tek_core" }
|
||||
tek_jack = { path = "../tek_jack" }
|
||||
tek_plugin = { path = "../tek_plugin" }
|
||||
tek_sampler = { path = "../tek_sampler" }
|
||||
tek_sequencer = { path = "../tek_sequencer" }
|
||||
tek_timer = { path = "../tek_timer" }
|
||||
tek_mixer = { path = "../tek_mixer", features = ["standalone_devices"] }
|
||||
tek_mixer = { path = "../tek_mixer" }
|
||||
#jack = "0.10"
|
||||
#crossterm = "0.27"
|
||||
#ratatui = { version = "0.26.3", features = [ "unstable-widget-ref", "underline-color" ] }
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::*;
|
||||
use tek_core::Direction;
|
||||
use tek_timer::TransportToolbar;
|
||||
use tek_sequencer::Arranger;
|
||||
use tek_sequencer::{TransportToolbar, Arranger};
|
||||
use tek_mixer::Mixer;
|
||||
|
||||
/// Root of application state.
|
||||
|
|
@ -108,7 +107,7 @@ render!(App |self, buf, area| {
|
|||
focused: self.section == AppFocus::Chain,
|
||||
chain: self.mixer.track()
|
||||
},
|
||||
&self.arranger.sequencer,
|
||||
&self.arranger.sequencer(),
|
||||
]))
|
||||
]).render(buf, area)?;
|
||||
if let Some(ref modal) = *MODAL.lock().unwrap() {
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ fn handle_modal (e: &AppEvent) -> Usually<bool> {
|
|||
fn handle_focused (state: &mut App, e: &AppEvent) -> Usually<bool> {
|
||||
match state.section {
|
||||
AppFocus::Transport => state.transport.handle(e),
|
||||
AppFocus::Arranger => state.arranger.sequencer.handle(e),
|
||||
AppFocus::Sequencer => state.arranger.sequencer.handle(e),
|
||||
AppFocus::Arranger => state.arranger.sequencer_mut().map(|s|s.handle(e)),
|
||||
AppFocus::Sequencer => state.arranger.sequencer_mut().map(|s|s.handle(e)),
|
||||
AppFocus::Chain => Ok(false)/*if state.entered {
|
||||
handle_device(state, e)? ||
|
||||
handle_keymap(state, e, crate::control::KEYMAP_CHAIN)?
|
||||
|
|
@ -85,11 +85,11 @@ pub const KEYMAP_GLOBAL: &'static [KeyBinding<App>] = keymap!(App {
|
|||
Ok(true)
|
||||
}],
|
||||
[Char('='), NONE, "zoom_in", "show fewer ticks per block", |app: &mut App| {
|
||||
app.arranger.sequencer.time_axis.scale_mut(&prev_note_length);
|
||||
app.arranger.sequencer_mut().map(|s|s.time_axis.scale_mut(&prev_note_length));
|
||||
Ok(true)
|
||||
}],
|
||||
[Char('-'), NONE, "zoom_out", "show more ticks per block", |app: &mut App| {
|
||||
app.arranger.sequencer.time_axis.scale_mut(&next_note_length);
|
||||
app.arranger.sequencer_mut().map(|s|s.time_axis.scale_mut(&next_note_length));
|
||||
Ok(true)
|
||||
}],
|
||||
[Char('x'), NONE, "extend", "double the current clip", |app: &mut App| {
|
||||
|
|
@ -144,14 +144,14 @@ pub const KEYMAP_FOCUS: &'static [KeyBinding<App>] = keymap!(App {
|
|||
app.entered = false;
|
||||
app.transport.entered = app.entered;
|
||||
app.arranger.entered = app.entered;
|
||||
app.arranger.sequencer.entered = app.entered;
|
||||
app.arranger.sequencer_mut().map(|s|s.entered = app.entered);
|
||||
Ok(true)
|
||||
}],
|
||||
[Enter, NONE, "focus_enter", "activate item at cursor", |app: &mut App|{
|
||||
app.entered = true;
|
||||
app.transport.entered = app.entered;
|
||||
app.arranger.entered = app.entered;
|
||||
app.arranger.sequencer.entered = app.entered;
|
||||
app.arranger.sequencer_mut().map(|s|s.entered = app.entered);
|
||||
Ok(true)
|
||||
}],
|
||||
});
|
||||
|
|
@ -162,8 +162,10 @@ pub fn focus_next (app: &mut App) -> Usually<bool> {
|
|||
app.transport.entered = app.entered;
|
||||
app.arranger.focused = app.section == AppFocus::Arranger;
|
||||
app.arranger.entered = app.entered;
|
||||
app.arranger.sequencer.focused = app.section == AppFocus::Sequencer;
|
||||
app.arranger.sequencer.entered = app.entered;
|
||||
app.arranger.sequencer_mut().map(|s|{
|
||||
s.focused = app.section == AppFocus::Sequencer;
|
||||
s.entered = app.entered;
|
||||
});
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
|
|
@ -173,7 +175,9 @@ pub fn focus_prev (app: &mut App) -> Usually<bool> {
|
|||
app.transport.entered = app.entered;
|
||||
app.arranger.focused = app.section == AppFocus::Arranger;
|
||||
app.arranger.entered = app.entered;
|
||||
app.arranger.sequencer.focused = app.section == AppFocus::Sequencer;
|
||||
app.arranger.sequencer.entered = app.entered;
|
||||
app.arranger.sequencer_mut().map(|s|{
|
||||
s.focused = app.section == AppFocus::Sequencer;
|
||||
s.entered = app.entered;
|
||||
});
|
||||
Ok(true)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
pub(crate) use tek_core::*;
|
||||
pub(crate) use tek_jack::{*, jack::*};
|
||||
pub(crate) use tek_timer::*;
|
||||
pub(crate) use tek_sequencer::*;
|
||||
pub(crate) use microxdg::XdgApp;
|
||||
|
||||
submod! {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue