mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
docs: add more doc strings
This commit is contained in:
parent
317547c6b2
commit
107e38278e
15 changed files with 40 additions and 16 deletions
|
|
@ -7,6 +7,7 @@ use std::fs::{File, create_dir_all};
|
|||
const CONFIG_FILE_NAME: &'static str = "tek.toml";
|
||||
const PROJECT_FILE_NAME: &'static str = "project.toml";
|
||||
|
||||
/// Filesystem locations of things.
|
||||
pub struct AppPaths {
|
||||
config_dir: PathBuf,
|
||||
config_file: PathBuf,
|
||||
|
|
@ -49,6 +50,7 @@ impl AppPaths {
|
|||
}
|
||||
}
|
||||
|
||||
/// Appears on first run (i.e. if state dir is missing).
|
||||
pub struct SetupModal(pub Option<Arc<XdgApp>>, pub bool);
|
||||
|
||||
render!(SetupModal |self, buf, area| {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
use crate::{core::*, handle, App, AppFocus};
|
||||
|
||||
pubmod!{ arranger chain focus mixer plugin sampler sequencer transport }
|
||||
submod!{ arranger chain focus mixer plugin sampler sequencer transport }
|
||||
|
||||
handle!{
|
||||
App |self, e| {
|
||||
|
|
@ -16,10 +16,10 @@ handle!{
|
|||
}
|
||||
Ok(if self.entered {
|
||||
handle_focused(self, e)?
|
||||
|| handle_keymap(self, e, KEYMAP)?
|
||||
|| handle_keymap(self, e, KEYMAP_GLOBAL)?
|
||||
|| handle_keymap(self, e, crate::control::focus::KEYMAP_FOCUS)?
|
||||
} else {
|
||||
handle_keymap(self, e, KEYMAP)?
|
||||
handle_keymap(self, e, KEYMAP_GLOBAL)?
|
||||
|| handle_keymap(self, e, crate::control::focus::KEYMAP_FOCUS)?
|
||||
|| handle_focused(self, e)?
|
||||
})
|
||||
|
|
@ -51,7 +51,8 @@ fn handle_device (state: &mut App, e: &AppEvent) -> Usually<bool> {
|
|||
.map(|x|x.unwrap_or(false))
|
||||
}
|
||||
|
||||
pub const KEYMAP: &'static [KeyBinding<App>] = keymap!(App {
|
||||
/// Global key bindings.
|
||||
pub const KEYMAP_GLOBAL: &'static [KeyBinding<App>] = keymap!(App {
|
||||
[Char(' '), NONE, "play_toggle", "play or pause", |app: &mut App| {
|
||||
app.transport.toggle_play()?;
|
||||
Ok(true)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use crate::{core::*, model::App};
|
||||
|
||||
/// Key bindings for arranger section.
|
||||
pub const KEYMAP_ARRANGER: &'static [KeyBinding<App>] = keymap!(App {
|
||||
[Char('`'), NONE, "arranger_mode_switch", "switch the display mode", |app: &mut App| {
|
||||
app.arranger_mode = !app.arranger_mode;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use crate::{core::*, model::App};
|
||||
|
||||
/// Key bindings for chain section.
|
||||
pub const KEYMAP_CHAIN: &'static [KeyBinding<App>] = keymap!(App {
|
||||
[Up, NONE, "chain_cursor_up", "move cursor up", |_: &mut App| {
|
||||
Ok(true)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use crate::{core::*, model::{App, AppFocus}};
|
||||
|
||||
/// Generic key bindings for views that support focus.
|
||||
pub const KEYMAP_FOCUS: &'static [KeyBinding<App>] = keymap!(App {
|
||||
[Char(';'), NONE, "command", "open command palette", |app: &mut App| {
|
||||
app.modal = Some(Box::new(crate::view::HelpModal::new()));
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ use crate::{core::*, model::*};
|
|||
//("Ins/Del", "Add/remove track"),
|
||||
//];
|
||||
|
||||
pub fn handle (state: &mut Mixer, event: &AppEvent) -> Usually<bool> {
|
||||
pub fn handle_mixer (state: &mut Mixer, event: &AppEvent) -> Usually<bool> {
|
||||
if let AppEvent::Input(crossterm::event::Event::Key(event)) = event {
|
||||
|
||||
match event.code {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
use crate::{core::*, model::*};
|
||||
|
||||
pub fn handle (state: &mut Plugin, event: &AppEvent) -> Usually<bool> {
|
||||
handle_keymap(state, event, KEYMAP)
|
||||
pub fn handle_plugin (state: &mut Plugin, event: &AppEvent) -> Usually<bool> {
|
||||
handle_keymap(state, event, KEYMAP_PLUGIN)
|
||||
}
|
||||
|
||||
pub const KEYMAP: &'static [KeyBinding<Plugin>] = keymap!(Plugin {
|
||||
/// Key bindings for plugin device.
|
||||
pub const KEYMAP_PLUGIN: &'static [KeyBinding<Plugin>] = keymap!(Plugin {
|
||||
[Up, NONE, "cursor_up", "move cursor up", |s: &mut Plugin|{
|
||||
s.selected = s.selected.saturating_sub(1);
|
||||
Ok(true)
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
use crate::{core::*, model::*};
|
||||
|
||||
pub fn handle (state: &mut Sampler, event: &AppEvent) -> Usually<bool> {
|
||||
handle_keymap(state, event, KEYMAP)
|
||||
pub fn handle_sampler (state: &mut Sampler, event: &AppEvent) -> Usually<bool> {
|
||||
handle_keymap(state, event, KEYMAP_SAMPLER)
|
||||
}
|
||||
|
||||
pub const KEYMAP: &'static [KeyBinding<Sampler>] = keymap!(Sampler {
|
||||
/// Key bindings for sampler device.
|
||||
pub const KEYMAP_SAMPLER: &'static [KeyBinding<Sampler>] = keymap!(Sampler {
|
||||
[Up, NONE, "cursor_up", "move cursor up", cursor_up],
|
||||
[Down, NONE, "cursor_down", "move cursor down", cursor_down],
|
||||
[Char('t'), NONE, "sample_play", "play current sample", trigger],
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use crate::{core::*, model::App};
|
||||
|
||||
/// Key bindings for phrase editor.
|
||||
pub const KEYMAP_SEQUENCER: &'static [KeyBinding<App>] = keymap!(App {
|
||||
[Up, NONE, "seq_cursor_up", "move cursor up", |app: &mut App| {
|
||||
app.note_cursor = app.note_cursor.saturating_sub(1);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use crate::{core::*, model::{App, TransportFocus}};
|
||||
|
||||
/// Key bindings for transport toolbar.
|
||||
pub const KEYMAP_TRANSPORT: &'static [KeyBinding<App>] = keymap!(App {
|
||||
[Left, NONE, "transport_prev", "select previous control", |app: &mut App| Ok({
|
||||
app.transport.selected.prev();
|
||||
|
|
|
|||
14
src/edn.rs
14
src/edn.rs
|
|
@ -1,9 +1,23 @@
|
|||
//! Project file format.
|
||||
//!
|
||||
//! This module `impl`s the `from_edn`, `load_edn`, etc. methods
|
||||
//! of structs that are defined in other modules. See:
|
||||
//!
|
||||
//! * [App::from_edn]
|
||||
//! * [App::load_edn]
|
||||
//! * [App::load_edn_one]
|
||||
//! * [Scene::load_edn]
|
||||
//! * [Track::load_edn]
|
||||
//! * [Phrase::load_edn]
|
||||
//! * [Sampler::load_edn]
|
||||
//! * [Sample::load_edn]
|
||||
//! * [LV2Plugin::load_edn]
|
||||
|
||||
use crate::{core::*, model::*, App};
|
||||
|
||||
use clojure_reader::{edn::{read, Edn}, error::Error as EdnError};
|
||||
|
||||
/// EDN parsing helper.
|
||||
macro_rules! edn {
|
||||
($edn:ident { $($pat:pat => $expr:expr),* $(,)? }) => {
|
||||
match $edn { $($pat => $expr),* }
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ pub struct Mixer {
|
|||
pub selected_column: usize,
|
||||
}
|
||||
//render!(Mixer = crate::view::mixer::render);
|
||||
handle!(Mixer = crate::control::mixer::handle);
|
||||
handle!(Mixer = crate::control::handle_mixer);
|
||||
process!(Mixer = process);
|
||||
|
||||
impl Mixer {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ pub struct Plugin {
|
|||
pub ports: JackPorts,
|
||||
}
|
||||
render!(Plugin = crate::view::plugin::render);
|
||||
handle!(Plugin = crate::control::plugin::handle);
|
||||
handle!(Plugin = crate::control::handle_plugin);
|
||||
process!(Plugin = Plugin::process);
|
||||
|
||||
pub enum PluginKind {
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ render!(Sampler |self, buf, area| {
|
|||
Ok(Rect { x, y, width: (width as u16).min(area.width), height })
|
||||
});
|
||||
|
||||
handle!(Sampler = crate::control::sampler::handle);
|
||||
handle!(Sampler = crate::control::handle_sampler);
|
||||
process!(Sampler = Sampler::process);
|
||||
|
||||
impl Sampler {
|
||||
|
|
|
|||
|
|
@ -48,11 +48,11 @@ render!(HelpModal |self, buf, area|{
|
|||
let y = y + 1;
|
||||
for i in 0..height-3 {
|
||||
let y = y + i;
|
||||
if let Some(command) = crate::control::focus::KEYMAP_FOCUS.get(i as usize) {
|
||||
if let Some(command) = crate::control::KEYMAP_FOCUS.get(i as usize) {
|
||||
format!("{:?}", command.0).blit(buf, x, y, Some(Style::default().white().bold()))?;
|
||||
command.2.blit(buf, x + 11, y, Some(Style::default().white().bold()))?;
|
||||
command.3.blit(buf, x + 26, y, Some(Style::default().white().dim()))?;
|
||||
} else if let Some(command) = crate::control::KEYMAP.get((i as usize) - crate::control::focus::KEYMAP_FOCUS.len()) {
|
||||
} else if let Some(command) = crate::control::KEYMAP.get((i as usize) - crate::control::KEYMAP_FOCUS.len()) {
|
||||
format!("{:?}", command.0).blit(buf, x, y, Some(Style::default().white().bold()))?;
|
||||
command.2.blit(buf, x + 11, y, Some(Style::default().white().bold()))?;
|
||||
command.3.blit(buf, x + 26, y, Some(Style::default().white().dim()))?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue