From 8cf0ae0994fbdd03ecbf378062965a2868720513 Mon Sep 17 00:00:00 2001 From: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> Date: Thu, 16 Nov 2023 06:04:35 -0700 Subject: [PATCH] play song unconditionally (#2518) * play song unconditionally * double bep-bep frequency * play song during firmware update --------- Co-authored-by: J H <2364004+Blu-J@users.noreply.github.com> --- core/startos/src/bins/start_init.rs | 15 ++++++++++++++- core/startos/src/init.rs | 14 -------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/core/startos/src/bins/start_init.rs b/core/startos/src/bins/start_init.rs index f189c3723..bafde4c74 100644 --- a/core/startos/src/bins/start_init.rs +++ b/core/startos/src/bins/start_init.rs @@ -3,6 +3,7 @@ use std::path::{Path, PathBuf}; use std::sync::Arc; use std::time::Duration; +use helpers::NonDetachingJoinHandle; use tokio::process::Command; use tracing::instrument; @@ -15,12 +16,20 @@ use crate::firmware::update_firmware; use crate::init::STANDBY_MODE_PATH; use crate::net::web_server::WebServer; use crate::shutdown::Shutdown; -use crate::sound::CHIME; +use crate::sound::{BEP, CHIME}; use crate::util::Invoke; use crate::{Error, ErrorKind, ResultExt, PLATFORM}; #[instrument(skip_all)] async fn setup_or_init(cfg_path: Option) -> Result, Error> { + let song = NonDetachingJoinHandle::from(tokio::spawn(async { + loop { + BEP.play().await.unwrap(); + BEP.play().await.unwrap(); + tokio::time::sleep(Duration::from_secs(30)).await; + } + })); + if update_firmware().await?.0 { return Ok(Some(Shutdown { export_args: None, @@ -74,6 +83,7 @@ async fn setup_or_init(cfg_path: Option) -> Result, Er ) .await?; + drop(song); tokio::time::sleep(Duration::from_secs(1)).await; // let the record state that I hate this CHIME.play().await?; @@ -100,8 +110,10 @@ async fn setup_or_init(cfg_path: Option) -> Result, Er ) .await?; + drop(song); tokio::time::sleep(Duration::from_secs(1)).await; // let the record state that I hate this CHIME.play().await?; + ctx.shutdown .subscribe() .recv() @@ -152,6 +164,7 @@ async fn setup_or_init(cfg_path: Option) -> Result, Er } tracing::info!("Loaded Disk"); crate::init::init(&cfg).await?; + drop(song); } Ok(None) diff --git a/core/startos/src/init.rs b/core/startos/src/init.rs index 097696dac..e5accb992 100644 --- a/core/startos/src/init.rs +++ b/core/startos/src/init.rs @@ -230,18 +230,6 @@ pub async fn init(cfg: &RpcContextConfig) -> Result { || &*server_info.version < &emver::Version::new(0, 3, 2, 0) || (*ARCH == "x86_64" && &*server_info.version < &emver::Version::new(0, 3, 4, 0)); - let song = if should_rebuild { - Some(NonDetachingJoinHandle::from(tokio::spawn(async { - loop { - BEP.play().await.unwrap(); - BEP.play().await.unwrap(); - tokio::time::sleep(Duration::from_secs(60)).await; - } - }))) - } else { - None - }; - let log_dir = cfg.datadir().join("main/logs"); if tokio::fs::metadata(&log_dir).await.is_err() { tokio::fs::create_dir_all(&log_dir).await?; @@ -446,8 +434,6 @@ pub async fn init(cfg: &RpcContextConfig) -> Result { }?; } - drop(song); - tracing::info!("System initialized."); Ok(InitResult { secret_store, db })