From 3019f7ffda7d7c82cfd8b31ea7397b0ab528ec65 Mon Sep 17 00:00:00 2001 From: Solstice Date: Tue, 9 Jun 2026 00:52:52 -0700 Subject: feat: ambient sound engine and volume controls --- src-tauri/src/timer.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src-tauri/src/timer.rs') 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>, data_arc: Arc>, + audio_arc: Arc>>, 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, -- cgit v1.3-2-g0d8e