From f4a8dc49e963df2354526b0f109ba94e16fbd2f4 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 21 Aug 2018 10:28:23 +1200 Subject: [PATCH] Add button sounds --- scripts/system/assets/sounds/button-click.wav | Bin 0 -> 26898 bytes scripts/system/assets/sounds/button-hover.wav | Bin 0 -> 22432 bytes scripts/system/html/js/miniTablet.js | 10 +++++++ scripts/system/miniTablet.js | 25 ++++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 scripts/system/assets/sounds/button-click.wav create mode 100644 scripts/system/assets/sounds/button-hover.wav diff --git a/scripts/system/assets/sounds/button-click.wav b/scripts/system/assets/sounds/button-click.wav new file mode 100644 index 0000000000000000000000000000000000000000..30a097ce456369195b2791ebe83fe4d20d0a0c57 GIT binary patch literal 26898 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 literal 0 HcmV?d00001 diff --git a/scripts/system/assets/sounds/button-hover.wav b/scripts/system/assets/sounds/button-hover.wav new file mode 100644 index 0000000000000000000000000000000000000000..cd76d0174cf7bfd5589dc26ba7f58793778a5456 GIT binary patch literal 22432 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 Dialog BUBBLE_MESSAGE = "bubble", // Engine <=> Dialog EXPAND_MESSAGE = "expand", // Engine <== Dialog @@ -57,6 +58,12 @@ })); } + function onButtonHover() { + EventBridge.emitWebEvent(JSON.stringify({ + type: HOVER_MESSAGE + })); + } + function onBubbleButtonClick() { EventBridge.emitWebEvent(JSON.stringify({ type: BUBBLE_MESSAGE @@ -97,6 +104,9 @@ connectEventBridge(); + muteButton.addEventListener("mouseenter", onButtonHover, false); + bubbleButton.addEventListener("mouseenter", onButtonHover, false); + expandButton.addEventListener("mouseenter", onButtonHover, false); muteButton.addEventListener("click", onMuteButtonClick, true); bubbleButton.addEventListener("click", onBubbleButtonClick, true); expandButton.addEventListener("click", onExpandButtonClick, true); diff --git a/scripts/system/miniTablet.js b/scripts/system/miniTablet.js index 6f56f4ab93..a16ae50b29 100644 --- a/scripts/system/miniTablet.js +++ b/scripts/system/miniTablet.js @@ -86,6 +86,7 @@ // EventBridge READY_MESSAGE = "ready", // Engine <== Dialog + HOVER_MESSAGE = "hover", // Engine <== Dialog MUTE_MESSAGE = "mute", // Engine <=> Dialog BUBBLE_MESSAGE = "bubble", // Engine <=> Dialog EXPAND_MESSAGE = "expand", // Engine <== Dialog @@ -99,11 +100,20 @@ HIFI_OBJECT_MANIPULATION_CHANNEL = "Hifi-Object-Manipulation", avatarScale = 1, + // Sounds + HOVER_SOUND = "./assets/sounds/button-hover.wav", + HOVER_VOLUME = 0.5, + CLICK_SOUND = "./assets/sounds/button-click.wav", + CLICK_VOLUME = 0.8, + hoverSound = SoundCache.getSound(Script.resolvePath(HOVER_SOUND)), + clickSound = SoundCache.getSound(Script.resolvePath(CLICK_SOUND)), + // Hands LEFT_HAND = 0, RIGHT_HAND = 1, NO_HAND = 2, HAND_NAMES = ["LeftHand", "RightHand"], + DEBUG = false; // #region Utilities ======================================================================================================= @@ -149,6 +159,14 @@ return hand === LEFT_HAND ? RIGHT_HAND : LEFT_HAND; } + function playSound(sound, volume) { + Audio.playSound(sound, { + position: proxyHand === LEFT_HAND ? MyAvatar.getLeftPalmPosition() : MyAvatar.getRightPalmPosition(), + volume: volume, + localOnly: true + }); + } + // #endregion // #region Communications ================================================================================================== @@ -187,16 +205,23 @@ updateMutedStatus(); updateBubbleStatus(); break; + case HOVER_MESSAGE: + // Audio feedback. + playSound(hoverSound, HOVER_VOLUME); + break; case MUTE_MESSAGE: // Toggle mute. + playSound(clickSound, CLICK_VOLUME); Audio.muted = !Audio.muted; break; case BUBBLE_MESSAGE: // Toggle bubble. + playSound(clickSound, CLICK_VOLUME); Users.toggleIgnoreRadius(); break; case EXPAND_MESSAGE: // Expand tablet; + playSound(clickSound, CLICK_VOLUME); setState(PROXY_EXPANDING, NO_HAND); break; }