WIP: half broken
This commit is contained in:
@@ -52,6 +52,7 @@ pub struct AudioConfig {
|
||||
pub input_device: Option<String>,
|
||||
pub channels: u16,
|
||||
pub buffer_size: u32,
|
||||
pub max_voices: usize,
|
||||
pub sample_rate: f32,
|
||||
pub sample_paths: Vec<PathBuf>,
|
||||
pub sample_count: usize,
|
||||
@@ -67,6 +68,7 @@ impl Default for AudioConfig {
|
||||
input_device: None,
|
||||
channels: 2,
|
||||
buffer_size: 512,
|
||||
max_voices: 32,
|
||||
sample_rate: 44100.0,
|
||||
sample_paths: Vec::new(),
|
||||
sample_count: 0,
|
||||
@@ -123,10 +125,12 @@ pub enum AudioFocus {
|
||||
InputDevice,
|
||||
Channels,
|
||||
BufferSize,
|
||||
Polyphony,
|
||||
RefreshRate,
|
||||
RuntimeHighlight,
|
||||
ShowScope,
|
||||
ShowSpectrum,
|
||||
ShowCompletion,
|
||||
SamplePaths,
|
||||
LinkEnabled,
|
||||
StartStopSync,
|
||||
@@ -198,11 +202,13 @@ impl AudioSettings {
|
||||
AudioFocus::OutputDevice => AudioFocus::InputDevice,
|
||||
AudioFocus::InputDevice => AudioFocus::Channels,
|
||||
AudioFocus::Channels => AudioFocus::BufferSize,
|
||||
AudioFocus::BufferSize => AudioFocus::RefreshRate,
|
||||
AudioFocus::BufferSize => AudioFocus::Polyphony,
|
||||
AudioFocus::Polyphony => AudioFocus::RefreshRate,
|
||||
AudioFocus::RefreshRate => AudioFocus::RuntimeHighlight,
|
||||
AudioFocus::RuntimeHighlight => AudioFocus::ShowScope,
|
||||
AudioFocus::ShowScope => AudioFocus::ShowSpectrum,
|
||||
AudioFocus::ShowSpectrum => AudioFocus::SamplePaths,
|
||||
AudioFocus::ShowSpectrum => AudioFocus::ShowCompletion,
|
||||
AudioFocus::ShowCompletion => AudioFocus::SamplePaths,
|
||||
AudioFocus::SamplePaths => AudioFocus::LinkEnabled,
|
||||
AudioFocus::LinkEnabled => AudioFocus::StartStopSync,
|
||||
AudioFocus::StartStopSync => AudioFocus::Quantum,
|
||||
@@ -216,11 +222,13 @@ impl AudioSettings {
|
||||
AudioFocus::InputDevice => AudioFocus::OutputDevice,
|
||||
AudioFocus::Channels => AudioFocus::InputDevice,
|
||||
AudioFocus::BufferSize => AudioFocus::Channels,
|
||||
AudioFocus::RefreshRate => AudioFocus::BufferSize,
|
||||
AudioFocus::Polyphony => AudioFocus::BufferSize,
|
||||
AudioFocus::RefreshRate => AudioFocus::Polyphony,
|
||||
AudioFocus::RuntimeHighlight => AudioFocus::RefreshRate,
|
||||
AudioFocus::ShowScope => AudioFocus::RuntimeHighlight,
|
||||
AudioFocus::ShowSpectrum => AudioFocus::ShowScope,
|
||||
AudioFocus::SamplePaths => AudioFocus::ShowSpectrum,
|
||||
AudioFocus::ShowCompletion => AudioFocus::ShowSpectrum,
|
||||
AudioFocus::SamplePaths => AudioFocus::ShowCompletion,
|
||||
AudioFocus::LinkEnabled => AudioFocus::SamplePaths,
|
||||
AudioFocus::StartStopSync => AudioFocus::LinkEnabled,
|
||||
AudioFocus::Quantum => AudioFocus::StartStopSync,
|
||||
@@ -267,6 +275,11 @@ impl AudioSettings {
|
||||
self.config.buffer_size = new_val;
|
||||
}
|
||||
|
||||
pub fn adjust_max_voices(&mut self, delta: i32) {
|
||||
let new_val = (self.config.max_voices as i32 + delta).clamp(1, 128) as usize;
|
||||
self.config.max_voices = new_val;
|
||||
}
|
||||
|
||||
pub fn toggle_refresh_rate(&mut self) {
|
||||
self.config.refresh_rate = self.config.refresh_rate.toggle();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user