diff --git a/toos-dashboard/src-tauri/src/animation.rs b/toos-dashboard/src-tauri/src/animation.rs index be8f299..f23b8fa 100644 --- a/toos-dashboard/src-tauri/src/animation.rs +++ b/toos-dashboard/src-tauri/src/animation.rs @@ -5,6 +5,7 @@ use std::io::BufReader; use rodio::{Decoder, OutputStream, Sink}; use std::sync::Mutex; use once_cell::sync::Lazy; +use std::path::{Path, PathBuf}; use crate::serial; @@ -16,6 +17,7 @@ struct Timings { static TIMINGS: Mutex> = Mutex::new(Lazy::new(|| Timings { charging_start_delay: 1600, charging_delay: 450, charging_end_delay: 400 } )); static PLAYING: Mutex = Mutex::new(false); +pub static AUDIO_PATH: Mutex> = Mutex::new(Lazy::new(|| Path::new("assets/audio.mp3").to_path_buf())); #[tauri::command] pub fn start() { @@ -47,7 +49,9 @@ fn play_sound() { let (_stream, stream_handle) = OutputStream::try_default().unwrap(); let sink = Sink::try_new(&stream_handle).unwrap(); - let file = BufReader::new(File::open("assets/audio.mp3").unwrap()); + let path = AUDIO_PATH.lock().unwrap(); + + let file = BufReader::new(File::open(&**path).unwrap()); let source = Decoder::new(file).unwrap(); sink.append(source); diff --git a/toos-dashboard/src-tauri/src/main.rs b/toos-dashboard/src-tauri/src/main.rs index 93fbda3..a58d890 100644 --- a/toos-dashboard/src-tauri/src/main.rs +++ b/toos-dashboard/src-tauri/src/main.rs @@ -7,6 +7,17 @@ mod animation; fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![serial::get_serial_ports, serial::write_serial, serial::open_port, serial::close_port, animation::start]) + .setup(|app| { + let resource_path = app.path_resolver() + .resolve_resource("assets/audio.mp3") + .expect("failed to resolve resource"); + + let mut audio_path = animation::AUDIO_PATH.lock().unwrap(); + + **audio_path = resource_path; + + Ok(()) + }) .run(tauri::generate_context!()) .expect("error while running tauri application"); } diff --git a/toos-dashboard/src-tauri/tauri.conf.json b/toos-dashboard/src-tauri/tauri.conf.json index 1f9dcfd..eedbee1 100644 --- a/toos-dashboard/src-tauri/tauri.conf.json +++ b/toos-dashboard/src-tauri/tauri.conf.json @@ -31,6 +31,9 @@ "icons/128x128@2x.png", "icons/icon.icns", "icons/icon.ico" + ], + "resources": [ + "assets/audio.mp3" ] }, "security": {