From 489bd266be4c466a744af183804e1e4114bcd04f Mon Sep 17 00:00:00 2001 From: Sturov Fedor <8505653+Fedorsturov@users.noreply.github.com> Date: Sat, 9 Mar 2019 14:50:34 +0300 Subject: [PATCH] :mute: Added an option to disable annoying feedback SFX (#455) This option can be useful for people who would like to keep the sound style of eDEX-UI, but who are annoyed by constant clicking. --- src/_boot.js | 1 + src/_renderer.js | 9 +++++++++ src/classes/audiofx.class.js | 34 ++++++++++++++++++---------------- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/_boot.js b/src/_boot.js index 9b48853be..b7f77d2c6 100644 --- a/src/_boot.js +++ b/src/_boot.js @@ -71,6 +71,7 @@ if (!fs.existsSync(settingsFile)) { theme: "tron", termFontSize: 15, audio: true, + disableFeedbackAudio: false, pingAddr: "1.1.1.1", port: 3000, nointro: false, diff --git a/src/_renderer.js b/src/_renderer.js index e551ca3fa..357ad033a 100644 --- a/src/_renderer.js +++ b/src/_renderer.js @@ -621,6 +621,14 @@ window.openSettings = async () => { + + disableFeedbackAudio + Disable recurring feedback sound FX (input/output, mostly) + + port Local port to use for UI-shell connection @@ -722,6 +730,7 @@ window.writeSettingsFile = () => { theme: document.getElementById("settingsEditor-theme").value, termFontSize: Number(document.getElementById("settingsEditor-termFontSize").value), audio: (document.getElementById("settingsEditor-audio").value === "true"), + disableFeedbackAudio: (document.getElementById("settingsEditor-disableFeedbackAudio").value === "true"), pingAddr: document.getElementById("settingsEditor-pingAddr").value, port: Number(document.getElementById("settingsEditor-port").value), monitor: Number(document.getElementById("settingsEditor-monitor").value), diff --git a/src/classes/audiofx.class.js b/src/classes/audiofx.class.js index c9d996c06..d4c963b05 100644 --- a/src/classes/audiofx.class.js +++ b/src/classes/audiofx.class.js @@ -4,13 +4,24 @@ class AudioManager { const {Howl, Howler} = require("howler"); if (window.settings.audio === true) { - this.stdout = new Howl({ - src: [path.join(__dirname, "assets", "audio", "stdout.wav")], - volume: 0.4 - }); - this.stdin = new Howl({ - src: [path.join(__dirname, "assets", "audio", "stdin.wav")], - volume: 0.4 + if(window.settings.disableFeedbackAudio === false) { + this.stdout = new Howl({ + src: [path.join(__dirname, "assets", "audio", "stdout.wav")], + volume: 0.4 + }); + this.stdin = new Howl({ + src: [path.join(__dirname, "assets", "audio", "stdin.wav")], + volume: 0.4 + }); + this.folder = new Howl({ + src: [path.join(__dirname, "assets", "audio", "folder.wav")] + }); + this.granted = new Howl({ + src: [path.join(__dirname, "assets", "audio", "granted.wav")] + }); + } + this.keyboard = new Howl({ + src: [path.join(__dirname, "assets", "audio", "keyboard.wav")] }); this.theme = new Howl({ src: [path.join(__dirname, "assets", "audio", "theme.wav")] @@ -18,21 +29,12 @@ class AudioManager { this.expand = new Howl({ src: [path.join(__dirname, "assets", "audio", "expand.wav")] }); - this.keyboard = new Howl({ - src: [path.join(__dirname, "assets", "audio", "keyboard.wav")] - }); this.panels = new Howl({ src: [path.join(__dirname, "assets", "audio", "panels.wav")] }); this.scan = new Howl({ src: [path.join(__dirname, "assets", "audio", "scan.wav")] }); - this.folder = new Howl({ - src: [path.join(__dirname, "assets", "audio", "folder.wav")] - }); - this.granted = new Howl({ - src: [path.join(__dirname, "assets", "audio", "granted.wav")] - }); this.denied = new Howl({ src: [path.join(__dirname, "assets", "audio", "denied.wav")] });