diff --git a/src/daemon.rs b/src/daemon.rs index 51482ea..de61b2c 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -446,9 +446,21 @@ async fn run_daemon_async() -> Result<(), Box bool { + if !cfg.replay_enabled { + return false; + } + if cfg.autostart_power_only && !crate::config::ScytheConfig::is_ac_power_connected() { + return false; + } + true + } + let recorder_handle = thread::spawn(move || { let mut config = crate::config::ScytheConfig::load(); - replay_state_clone.store(config.replay_enabled, Ordering::SeqCst); + let mut replay_effective = effective_replay_active(&config); + replay_state_clone.store(replay_effective, Ordering::SeqCst); + let mut last_power_state = crate::config::ScytheConfig::is_ac_power_connected(); let active_bitrate = if config.replay_enabled { config.replay_bitrate_kbps @@ -670,11 +682,8 @@ async fn run_daemon_async() -> Result<(), Box Result<(), Box Result<(), Box { - if config.replay_enabled { + if replay_effective { let now = std::time::Instant::now(); if now.duration_since(last_replay_save) > std::time::Duration::from_millis(800) { last_replay_save = now; @@ -995,11 +1010,8 @@ async fn run_daemon_async() -> Result<(), Box Result<(), Box