summaryrefslogtreecommitdiff
path: root/src-tauri/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src-tauri/src/lib.rs')
-rw-r--r--src-tauri/src/lib.rs25
1 files changed, 22 insertions, 3 deletions
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs
index 2b359eb..aaa9cd2 100644
--- a/src-tauri/src/lib.rs
+++ b/src-tauri/src/lib.rs
@@ -23,6 +23,17 @@ fn app_data_dir(app: &AppHandle) -> std::path::PathBuf {
app.path().app_data_dir().expect("Failed to resolve app data dir")
}
+fn fallback_bundled_audio_root() -> std::path::PathBuf {
+ std::path::PathBuf::from("src-tauri")
+}
+
+fn bundled_audio_dir(app: &AppHandle) -> std::path::PathBuf {
+ app.path()
+ .resource_dir()
+ .unwrap_or_else(|_| fallback_bundled_audio_root())
+ .join("audio")
+}
+
fn persist_timer_snapshot(
timer: &TimerState,
data: &State<'_, AppDataWrapper>,
@@ -423,9 +434,7 @@ pub fn run() {
});
// Initialise audio engine (graceful if no device)
- let bundled_audio_dir = app.handle().path().resource_dir()
- .unwrap_or_else(|_| std::path::PathBuf::from("."))
- .join("audio");
+ let bundled_audio_dir = bundled_audio_dir(app.handle());
let audio_state = audio::init_audio(app_audio_dir, bundled_audio_dir);
let audio_arc = Arc::clone(&audio_state.0);
app.manage(audio_state);
@@ -462,3 +471,13 @@ pub fn run() {
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
+
+#[cfg(test)]
+mod tests {
+ use super::fallback_bundled_audio_root;
+
+ #[test]
+ fn dev_audio_fallback_points_at_src_tauri() {
+ assert_eq!(fallback_bundled_audio_root(), std::path::PathBuf::from("src-tauri"));
+ }
+}