rustriff_lib/commands/
default_controls.rs1use crate::commands::helpers::persist_amp_config;
2use crate::domain::dto::amp_config_dto::AmpConfigDto;
3use crate::domain::dto::tone_stack_dto::ToneStackDto;
4use crate::services::amp_config_service::AmpConfigPersistenceService;
5use crate::services::audio_service::AudioService;
6use std::sync::Mutex;
7
8#[tauri::command]
21pub fn get_amp_config(
22 audio_service: tauri::State<'_, Mutex<AudioService>>,
23) -> Result<AmpConfigDto, String> {
24 let service = audio_service
25 .lock()
26 .map_err(|_| "Failed to lock audio service".to_string())?;
27
28 Ok(AmpConfigDto::from_service(&service))
29}
30
31#[tauri::command]
40pub(crate) fn toggle_on_off(
41 audio_service: tauri::State<Mutex<AudioService>>,
42 persistence_service: tauri::State<Mutex<AmpConfigPersistenceService>>,
43 is_on: bool,
44) {
45 let mut service = audio_service.inner().lock().unwrap();
46 service.toggle_loopback(is_on);
47 persist_amp_config(&service, &persistence_service);
48}
49
50#[tauri::command]
61pub(crate) fn set_gain(
62 audio_service: tauri::State<Mutex<AudioService>>,
63 persistence_service: tauri::State<Mutex<AmpConfigPersistenceService>>,
64 gain: f32,
65) {
66 let service = audio_service.inner().lock().unwrap();
67 service
68 .channels()
69 .iter()
70 .find(|c| c.id() == *service.current_channel_id())
71 .unwrap()
72 .set_gain(gain);
73 persist_amp_config(&service, &persistence_service);
74}
75
76#[tauri::command]
87pub(crate) fn set_master_volume(
88 audio_service: tauri::State<Mutex<AudioService>>,
89 persistence_service: tauri::State<Mutex<AmpConfigPersistenceService>>,
90 master_volume: f32,
91) {
92 let service = audio_service.inner().lock().unwrap();
93 service.set_master_volume(master_volume);
94 persist_amp_config(&service, &persistence_service);
95}
96
97#[tauri::command]
110pub(crate) fn set_tone_stack(
111 audio_service: tauri::State<Mutex<AudioService>>,
112 persistence_service: tauri::State<Mutex<AmpConfigPersistenceService>>,
113 tone_stack: ToneStackDto,
114) {
115 let service = audio_service.inner().lock().unwrap();
116 service
117 .channels()
118 .iter()
119 .find(|c| c.id() == *service.current_channel_id())
120 .unwrap()
121 .set_tone_stack(tone_stack);
122 persist_amp_config(&service, &persistence_service);
123}
124
125#[tauri::command]
138pub(crate) fn set_bass(
139 audio_service: tauri::State<Mutex<AudioService>>,
140 persistence_service: tauri::State<Mutex<AmpConfigPersistenceService>>,
141 bass: f32,
142) {
143 let service = audio_service.inner().lock().unwrap();
144 service
145 .channels()
146 .iter()
147 .find(|c| c.id() == *service.current_channel_id())
148 .unwrap()
149 .set_bass(bass);
150 persist_amp_config(&service, &persistence_service);
151}
152
153#[tauri::command]
166pub(crate) fn set_middle(
167 audio_service: tauri::State<Mutex<AudioService>>,
168 persistence_service: tauri::State<Mutex<AmpConfigPersistenceService>>,
169 middle: f32,
170) {
171 let service = audio_service.inner().lock().unwrap();
172 service
173 .channels()
174 .iter()
175 .find(|c| c.id() == *service.current_channel_id())
176 .unwrap()
177 .set_middle(middle);
178 persist_amp_config(&service, &persistence_service);
179}
180
181#[tauri::command]
194pub(crate) fn set_treble(
195 audio_service: tauri::State<Mutex<AudioService>>,
196 persistence_service: tauri::State<Mutex<AmpConfigPersistenceService>>,
197 treble: f32,
198) {
199 let service = audio_service.inner().lock().unwrap();
200 service
201 .channels()
202 .iter()
203 .find(|c| c.id() == *service.current_channel_id())
204 .unwrap()
205 .set_treble(treble);
206 persist_amp_config(&service, &persistence_service);
207}
208
209#[tauri::command]
222pub(crate) fn set_volume(
223 audio_service: tauri::State<Mutex<AudioService>>,
224 persistence_service: tauri::State<Mutex<AmpConfigPersistenceService>>,
225 volume: f32,
226) {
227 let service = audio_service.inner().lock().unwrap();
228 service
229 .channels()
230 .iter()
231 .find(|c| c.id() == *service.current_channel_id())
232 .unwrap()
233 .set_volume(volume);
234 persist_amp_config(&service, &persistence_service);
235}