From 8f2f07511daaa0910835a47275978118ccecdec3 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 23 Jan 2026 08:54:13 -0500 Subject: [PATCH] sound for delete --- .../get_app_preferences_command.rs | 4 +++ .../update_app_preference_command.rs | 6 ++++ .../state/app_preferences/app_preferences.rs | 4 +++ .../app_preferences_serializable.rs | 20 ++++++++--- .../resources/sound/oot_scrub_crumble.wav | Bin 0 -> 23794 bytes .../app/src/pages/PageEnigma/InstallSounds.ts | 3 ++ .../app/src/pages/PageEnigma/PageEnigma.tsx | 8 +++++ .../src/lib/panes/AudioSettingsPane.tsx | 31 ++++++++++++++++++ .../src/lib/settings/GetAppPreferences.ts | 1 + .../src/lib/settings/UpdateAppPreference.ts | 1 + 10 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 frontend/apps/artcraft/app/public/resources/sound/oot_scrub_crumble.wav diff --git a/crates/desktop/artcraft/src/core/commands/app_preferences/get_app_preferences_command.rs b/crates/desktop/artcraft/src/core/commands/app_preferences/get_app_preferences_command.rs index 3ea0245037..a42668a668 100644 --- a/crates/desktop/artcraft/src/core/commands/app_preferences/get_app_preferences_command.rs +++ b/crates/desktop/artcraft/src/core/commands/app_preferences/get_app_preferences_command.rs @@ -18,6 +18,9 @@ pub struct AppPreferencesPayload { /// Play sounds on events. pub play_sounds: bool, + /// Key pointing to file; defined in the frontend code. + pub delete_file_sound: Option, + /// Key pointing to file; defined in the frontend code. /// Defined for enqueue since image enqueue can be async pub enqueue_success_sound: Option, @@ -61,6 +64,7 @@ async fn get_prefs(app_prefs: &AppPreferencesManager) -> AnyhowResult { + prefs.delete_file_sound = request.value + .map(|val| string_value(&val)) + .transpose()?; + } PreferenceName::EnqueueSuccessSound => { prefs.enqueue_success_sound = request.value .map(|val| string_value(&val)) diff --git a/crates/desktop/artcraft/src/core/state/app_preferences/app_preferences.rs b/crates/desktop/artcraft/src/core/state/app_preferences/app_preferences.rs index ccae1d67c6..8178bfca2e 100644 --- a/crates/desktop/artcraft/src/core/state/app_preferences/app_preferences.rs +++ b/crates/desktop/artcraft/src/core/state/app_preferences/app_preferences.rs @@ -10,6 +10,9 @@ pub struct AppPreferences { /// Play sounds on events. pub play_sounds: bool, + /// Key pointing to file; defined in the frontend code. + pub delete_file_sound: Option, + /// Key pointing to file; defined in the frontend code. /// Defined for enqueue since image enqueue can be async pub enqueue_success_sound: Option, @@ -40,6 +43,7 @@ impl Default for AppPreferences { generation_success_sound: Some("special_flower".to_string()), generation_failure_sound: Some("crumble".to_string()), generation_enqueue_sound: Some("done".to_string()), + delete_file_sound: Some("trash".to_string()), } } } diff --git a/crates/desktop/artcraft/src/core/state/app_preferences/app_preferences_serializable.rs b/crates/desktop/artcraft/src/core/state/app_preferences/app_preferences_serializable.rs index 530029d6af..e795d44cc2 100644 --- a/crates/desktop/artcraft/src/core/state/app_preferences/app_preferences_serializable.rs +++ b/crates/desktop/artcraft/src/core/state/app_preferences/app_preferences_serializable.rs @@ -5,7 +5,9 @@ use errors::AnyhowResult; use serde_derive::{Deserialize, Serialize}; /// Vector clock versioning string rather than semver. -const CURRENT_VERSION: &str = "1"; +/// - Version 1 - initial version. +/// - Version 2 - added "delete_file_sound", marked optionals "skip_serializing_if" +const CURRENT_VERSION: &str = "2"; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AppPreferencesSerializable { @@ -16,15 +18,23 @@ pub struct AppPreferencesSerializable { pub preferred_download_directory: Option, /// Play sounds on events. + #[serde(skip_serializing_if = "Option::is_none")] pub play_sounds: Option, - + /// Key pointing to file; defined in the frontend code. + #[serde(skip_serializing_if = "Option::is_none")] + pub delete_file_sound: Option, + + /// Key pointing to file; defined in the frontend code. + #[serde(skip_serializing_if = "Option::is_none")] pub generation_success_sound: Option, /// Key pointing to file; defined in the frontend code. + #[serde(skip_serializing_if = "Option::is_none")] pub generation_failure_sound: Option, /// Key pointing to file; defined in the frontend code. + #[serde(skip_serializing_if = "Option::is_none")] pub generation_enqueue_sound: Option, } @@ -45,6 +55,7 @@ impl AppPreferencesSerializable { version: CURRENT_VERSION.to_string(), preferred_download_directory: Some(preferences.preferred_download_directory.clone()), play_sounds: Some(preferences.play_sounds), + delete_file_sound: preferences.delete_file_sound.clone(), generation_success_sound: preferences.generation_success_sound.clone(), generation_failure_sound: preferences.generation_failure_sound.clone(), generation_enqueue_sound: preferences.generation_enqueue_sound.clone(), @@ -61,11 +72,12 @@ impl AppPreferencesSerializable { if let Some(play_sounds) = self.play_sounds { preferences.play_sounds = play_sounds; } - + + preferences.delete_file_sound = self.delete_file_sound.clone(); preferences.generation_success_sound = self.generation_success_sound.clone(); preferences.generation_failure_sound = self.generation_failure_sound.clone(); preferences.generation_enqueue_sound = self.generation_enqueue_sound.clone(); - + preferences } } diff --git a/frontend/apps/artcraft/app/public/resources/sound/oot_scrub_crumble.wav b/frontend/apps/artcraft/app/public/resources/sound/oot_scrub_crumble.wav new file mode 100644 index 0000000000000000000000000000000000000000..cacadcc22cfd623e9e0ced9a9dab82f00394a9a2 GIT binary patch literal 23794 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

=7J+o#;;Gcn!fd@6=nnGZHa>AGa^ro9sq* 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 E10!}1i2wiq literal 0 HcmV?d00001 diff --git a/frontend/apps/artcraft/app/src/pages/PageEnigma/InstallSounds.ts b/frontend/apps/artcraft/app/src/pages/PageEnigma/InstallSounds.ts index 0d3a795415..04e7f6efc2 100644 --- a/frontend/apps/artcraft/app/src/pages/PageEnigma/InstallSounds.ts +++ b/frontend/apps/artcraft/app/src/pages/PageEnigma/InstallSounds.ts @@ -43,6 +43,9 @@ export const InstallSounds = () => { r.setSoundOnce("correct", new SoundEffect("resources/sound/smrpg_correct.wav", { defaultVolume: 0.1 })); r.setSoundOnce("flower", new SoundEffect("resources/sound/smrpg_flower.wav", { defaultVolume: 0.1 })); + // File delete, trash, etc. + r.setSoundOnce("trash", new SoundEffect("resources/sound/oot_scrub_crumble.wav", { defaultVolume: 0.4 })); + // Misc / ungrouped r.setSoundOnce("accept_chirp", new SoundEffect("resources/sound/goldensun_101.wav", { defaultVolume: 0.2 })); r.setSoundOnce("accept_normal_level_1", new SoundEffect("resources/sound/goldensun_173.wav", { defaultVolume: 0.2 })); diff --git a/frontend/apps/artcraft/app/src/pages/PageEnigma/PageEnigma.tsx b/frontend/apps/artcraft/app/src/pages/PageEnigma/PageEnigma.tsx index ba622c1f72..b6c7e6d6e4 100644 --- a/frontend/apps/artcraft/app/src/pages/PageEnigma/PageEnigma.tsx +++ b/frontend/apps/artcraft/app/src/pages/PageEnigma/PageEnigma.tsx @@ -39,6 +39,8 @@ import { useGenerationEnqueueSuccessEvent } from "@storyteller/tauri-events"; import { useGenerationFailedEvent } from "@storyteller/tauri-events"; import { useTextToImageGenerationCompleteEvent } from "@storyteller/tauri-events"; import { useTextToImageStore } from "~/pages/PageImage/TextToImageStore"; +import { GetAppPreferences } from "@storyteller/tauri-api"; +import { SoundRegistry } from "@storyteller/soundboard"; export const PageEnigma = ({ sceneToken }: { sceneToken?: string }) => { useSignals(); @@ -117,6 +119,12 @@ export const PageEnigma = ({ sceneToken }: { sceneToken?: string }) => { useMediaFileDeletedEvent(async (event) => { console.log("Media file deleted event received:", event); + const prefs = await GetAppPreferences(); + const soundName = prefs.preferences?.delete_file_sound; + if (soundName !== undefined) { + const registry = SoundRegistry.getInstance(); + registry.playSound(soundName); + } toast.error("File deleted."); }); diff --git a/frontend/libs/components/settings-modal/src/lib/panes/AudioSettingsPane.tsx b/frontend/libs/components/settings-modal/src/lib/panes/AudioSettingsPane.tsx index 4d1c1fbe12..35b8a62694 100644 --- a/frontend/libs/components/settings-modal/src/lib/panes/AudioSettingsPane.tsx +++ b/frontend/libs/components/settings-modal/src/lib/panes/AudioSettingsPane.tsx @@ -36,6 +36,7 @@ const SOUND_OPTIONS = [ { label: "Special Alert", value: "special_alert" }, { label: "Special Flower", value: "special_flower" }, { label: "Spike Throw", value: "spike_throw" }, + { label: "Trash", value: "trash" }, { label: "Wrong", value: "wrong" }, ]; @@ -56,6 +57,7 @@ export const AudioSettingsPane = (args: AudioSettingsPaneProps) => { const playSounds = preferences?.play_sounds || false; + const deleteFileSound = orNone(preferences?.delete_file_sound); const enqueueSuccessSound = orNone(preferences?.enqueue_success_sound); const enqueueFailureSound = orNone(preferences?.enqueue_failure_sound); const generationSuccessSound = orNone(preferences?.generation_success_sound); @@ -75,6 +77,16 @@ export const AudioSettingsPane = (args: AudioSettingsPaneProps) => { await reloadPreferences(); }; + const setDeleteFileSound = async (val: string) => { + let sendVal = val === "none" ? undefined : val; + await UpdateAppPreferences({ + preference: PreferenceName.DeleteFileSound, + value: sendVal, + }); + SoundRegistry.getInstance().playSound(val); + await reloadPreferences(); + }; + const setEnqueueSuccessSound = async (val: string) => { let sendVal = val === "none" ? undefined : val; await UpdateAppPreferences({ @@ -131,6 +143,25 @@ export const AudioSettingsPane = (args: AudioSettingsPaneProps) => { +

+ +
+