99 lines
1.7 KiB
Rust
99 lines
1.7 KiB
Rust
use std::path::PathBuf;
|
|
|
|
use crate::model::PatternSpeed;
|
|
use crate::sequencer::SlotChange;
|
|
use crate::state::{Modal, PatternField};
|
|
|
|
pub enum AppCommand {
|
|
// Playback
|
|
TogglePlaying,
|
|
TempoUp,
|
|
TempoDown,
|
|
|
|
// Navigation
|
|
NextStep,
|
|
PrevStep,
|
|
StepUp,
|
|
StepDown,
|
|
ToggleFocus,
|
|
SelectEditBank(usize),
|
|
SelectEditPattern(usize),
|
|
|
|
// Pattern editing
|
|
ToggleStep,
|
|
LengthIncrease,
|
|
LengthDecrease,
|
|
SpeedIncrease,
|
|
SpeedDecrease,
|
|
SetLength {
|
|
bank: usize,
|
|
pattern: usize,
|
|
length: usize,
|
|
},
|
|
SetSpeed {
|
|
bank: usize,
|
|
pattern: usize,
|
|
speed: PatternSpeed,
|
|
},
|
|
|
|
// Script editing
|
|
SaveEditorToStep,
|
|
CompileCurrentStep,
|
|
CompileAllSteps,
|
|
|
|
// Clipboard
|
|
CopyStep,
|
|
PasteStep,
|
|
|
|
// Pattern playback
|
|
QueueSlotChange(SlotChange),
|
|
TogglePatternPlayback {
|
|
bank: usize,
|
|
pattern: usize,
|
|
},
|
|
|
|
// Project
|
|
RenameBank {
|
|
bank: usize,
|
|
name: Option<String>,
|
|
},
|
|
RenamePattern {
|
|
bank: usize,
|
|
pattern: usize,
|
|
name: Option<String>,
|
|
},
|
|
Save(PathBuf),
|
|
Load(PathBuf),
|
|
|
|
// UI
|
|
SetStatus(String),
|
|
ClearStatus,
|
|
Flash {
|
|
message: String,
|
|
duration_ms: u64,
|
|
},
|
|
OpenModal(Modal),
|
|
CloseModal,
|
|
OpenPatternModal(PatternField),
|
|
|
|
// Page navigation
|
|
PageLeft,
|
|
PageRight,
|
|
PageUp,
|
|
PageDown,
|
|
|
|
// Doc navigation
|
|
DocNextTopic,
|
|
DocPrevTopic,
|
|
DocScrollDown(usize),
|
|
DocScrollUp(usize),
|
|
|
|
// Patterns view
|
|
PatternsCursorLeft,
|
|
PatternsCursorRight,
|
|
PatternsCursorUp,
|
|
PatternsCursorDown,
|
|
PatternsEnter,
|
|
PatternsBack,
|
|
}
|