summaryrefslogtreecommitdiff
path: root/src-tauri/src/timer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src-tauri/src/timer.rs')
-rw-r--r--src-tauri/src/timer.rs10
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,