diff options
| author | Solstice <solstice@local> | 2026-06-09 00:52:52 -0700 |
|---|---|---|
| committer | Solstice <solstice@local> | 2026-06-09 00:52:52 -0700 |
| commit | 3019f7ffda7d7c82cfd8b31ea7397b0ab528ec65 (patch) | |
| tree | d10073c6223faf003212da50aa4c4c7b7e1d3082 /src-tauri/src/timer.rs | |
| parent | c973d48c41169240e3f53769804696fd0d352a09 (diff) | |
feat: ambient sound engine and volume controls
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, |
