From ee616b5151fd0231f17073f3e05ec730eaf00615 Mon Sep 17 00:00:00 2001 From: Jack Date: Tue, 15 Sep 2020 17:51:33 +0100 Subject: [PATCH] initialising sound on click only when its needed --- public/js/commandline.js | 24 ++-- public/js/script.js | 234 ++++++++++++++++++++------------------- public/js/settings.js | 3 +- 3 files changed, 129 insertions(+), 132 deletions(-) diff --git a/public/js/commandline.js b/public/js/commandline.js index cc9a5d7a9..55bd3b2d2 100644 --- a/public/js/commandline.js +++ b/public/js/commandline.js @@ -453,40 +453,32 @@ let commandsSoundOnClick = { display: "1", exec: () => { setPlaySoundOnClick("1"); - }, - hover: () => { - clickSounds["1"][0].sounds[0].play(); - }, + playClickSound(); + } }, { id: "setSoundOnClick2", display: "2", exec: () => { setPlaySoundOnClick("2"); - }, - hover: () => { - clickSounds["2"][0].sounds[0].play(); - }, + playClickSound(); + } }, { id: "setSoundOnClick3", display: "3", exec: () => { setPlaySoundOnClick("3"); - }, - hover: () => { - clickSounds["3"][0].sounds[0].play(); - }, + playClickSound(); + } }, { id: "setSoundOnClick4", display: "4", exec: () => { setPlaySoundOnClick("4"); - }, - hover: () => { - clickSounds["4"][0].sounds[0].play(); - }, + playClickSound(); + } }, ], }; diff --git a/public/js/script.js b/public/js/script.js index 27e51ed72..2fd8661d9 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -68,122 +68,125 @@ let keypressStats = { }; let errorSound = new Audio("../sound/error.wav"); +let clickSounds = null; -let clickSounds = { - "1": [ - { - sounds: [ - new Audio("../sound/click1/click1_1.wav"), - new Audio("../sound/click1/click1_1.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click1/click1_2.wav"), - new Audio("../sound/click1/click1_2.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click1/click1_3.wav"), - new Audio("../sound/click1/click1_3.wav"), - ], - counter: 0, - }, - ], - "2": [ - { - sounds: [ - new Audio("../sound/click2/click2_1.wav"), - new Audio("../sound/click2/click2_1.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click2/click2_2.wav"), - new Audio("../sound/click2/click2_2.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click2/click2_3.wav"), - new Audio("../sound/click2/click2_3.wav"), - ], - counter: 0, - }, - ], - "3": [ - { - sounds: [ - new Audio("../sound/click3/click3_1.wav"), - new Audio("../sound/click3/click3_1.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click3/click3_2.wav"), - new Audio("../sound/click3/click3_2.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click3/click3_3.wav"), - new Audio("../sound/click3/click3_3.wav"), - ], - counter: 0, - }, - ], - "4": [ - { - sounds: [ - new Audio("../sound/click4/click4_1.wav"), - new Audio("../sound/click4/click4_1.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click4/click4_2.wav"), - new Audio("../sound/click4/click4_2.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click4/click4_3.wav"), - new Audio("../sound/click4/click4_3.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click4/click4_4.wav"), - new Audio("../sound/click4/click4_4.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click4/click4_5.wav"), - new Audio("../sound/click4/click4_5.wav"), - ], - counter: 0, - }, - { - sounds: [ - new Audio("../sound/click4/click4_6.wav"), - new Audio("../sound/click4/click4_6.wav"), - ], - counter: 0, - }, - ], -}; +function initClickSounds() { + clickSounds = { + "1": [ + { + sounds: [ + new Audio("../sound/click1/click1_1.wav"), + new Audio("../sound/click1/click1_1.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click1/click1_2.wav"), + new Audio("../sound/click1/click1_2.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click1/click1_3.wav"), + new Audio("../sound/click1/click1_3.wav"), + ], + counter: 0, + }, + ], + "2": [ + { + sounds: [ + new Audio("../sound/click2/click2_1.wav"), + new Audio("../sound/click2/click2_1.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click2/click2_2.wav"), + new Audio("../sound/click2/click2_2.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click2/click2_3.wav"), + new Audio("../sound/click2/click2_3.wav"), + ], + counter: 0, + }, + ], + "3": [ + { + sounds: [ + new Audio("../sound/click3/click3_1.wav"), + new Audio("../sound/click3/click3_1.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click3/click3_2.wav"), + new Audio("../sound/click3/click3_2.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click3/click3_3.wav"), + new Audio("../sound/click3/click3_3.wav"), + ], + counter: 0, + }, + ], + "4": [ + { + sounds: [ + new Audio("../sound/click4/click4_1.wav"), + new Audio("../sound/click4/click4_1.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click4/click4_2.wav"), + new Audio("../sound/click4/click4_2.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click4/click4_3.wav"), + new Audio("../sound/click4/click4_3.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click4/click4_4.wav"), + new Audio("../sound/click4/click4_4.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click4/click4_5.wav"), + new Audio("../sound/click4/click4_5.wav"), + ], + counter: 0, + }, + { + sounds: [ + new Audio("../sound/click4/click4_6.wav"), + new Audio("../sound/click4/click4_6.wav"), + ], + counter: 0, + }, + ], + }; +} let customText = "The quick brown fox jumps over the lazy dog".split(" "); let customTextIsRandom = false; @@ -3436,6 +3439,7 @@ function hideCustomMode2Popup() { function playClickSound() { if (config.playSoundOnClick === "off") return; + if (clickSounds === null) initClickSounds(); let rand = Math.floor( Math.random() * clickSounds[config.playSoundOnClick].length diff --git a/public/js/settings.js b/public/js/settings.js index 0a82d3e05..c23086485 100644 --- a/public/js/settings.js +++ b/public/js/settings.js @@ -183,7 +183,8 @@ settingsGroups.playSoundOnClick = new SettingsGroup( setPlaySoundOnClick, () => { if (config.playSoundOnClick !== "off") - clickSounds[config.playSoundOnClick][0].sounds[0].play(); + // clickSounds[config.playSoundOnClick][0].sounds[0].play(); + playClickSound(); } ); settingsGroups.showAllLines = new SettingsGroup(