diff options
Diffstat (limited to 'src-tauri/src/timer.rs')
| -rw-r--r-- | src-tauri/src/timer.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src-tauri/src/timer.rs b/src-tauri/src/timer.rs index 44e5999..322795e 100644 --- a/src-tauri/src/timer.rs +++ b/src-tauri/src/timer.rs @@ -4,6 +4,7 @@ use std::time::Duration; use serde::Serialize; use tauri::{AppHandle, Emitter}; +use crate::audio::{self, AudioEngine}; use crate::state::{TimerPhase, TimerState}; use crate::storage::{self, AppData}; @@ -41,6 +42,7 @@ pub fn spawn_timer_thread( app_handle: AppHandle, timer_arc: Arc<Mutex<TimerState>>, data_arc: Arc<Mutex<AppData>>, + audio_arc: Arc<Mutex<Option<AudioEngine>>>, data_dir: std::path::PathBuf, ) { thread::spawn(move || { @@ -128,6 +130,14 @@ pub fn spawn_timer_thread( } // Emit phase-changed after state is updated + if let Some(engine) = audio_arc.lock().unwrap().as_mut() { + if audio::should_duck_for_phase(ts.phase) { + engine.duck(); + } else { + engine.unduck(); + } + } + let phase_changed = PhaseChangedPayload { phase: ts.phase, session_count: ts.session_count, |
