diff options
Diffstat (limited to 'src-tauri/src/lib.rs')
| -rw-r--r-- | src-tauri/src/lib.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 11bb2f9..c298fdf 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -338,7 +338,7 @@ fn get_audio_status(audio: State<'_, AudioState>) -> AudioStatus { match audio.0.lock().unwrap().as_ref() { None => AudioStatus { available: false, playing: false, sound: None, volume: 0.5 }, Some(engine) => AudioStatus { - available: true, + available: engine.has_any_audio_files(), playing: engine.is_playing(), sound: engine.current_sound().map(|s| s.name().to_string()), volume: engine.volume(), @@ -356,6 +356,9 @@ pub fn run() { .setup(|app| { let data_dir = app.handle().path().app_data_dir() .expect("Failed to resolve app data dir"); + let app_audio_dir = data_dir.join("audio"); + std::fs::create_dir_all(&app_audio_dir) + .expect("Failed to create app audio dir"); // Load persisted data let app_data = storage::load(&data_dir); @@ -376,10 +379,10 @@ pub fn run() { }); // Initialise audio engine (graceful if no device) - let audio_dir = app.handle().path().resource_dir() + let bundled_audio_dir = app.handle().path().resource_dir() .unwrap_or_else(|_| std::path::PathBuf::from(".")) .join("audio"); - let audio_state = audio::init_audio(audio_dir); + let audio_state = audio::init_audio(app_audio_dir, bundled_audio_dir); let audio_arc = Arc::clone(&audio_state.0); app.manage(audio_state); |
