Test button for sounds and new Audio() code #630

This commit is contained in:
Daniël van Noord
2021-03-16 13:27:21 +01:00
parent b201e15c8e
commit d35217b6d5
12 changed files with 32 additions and 12 deletions

View File

@@ -20,6 +20,7 @@ import Config from '../../Data/SettingsData';
import ConfigDefault from '../../Data/SettingsDefault';
import RefreshScale from '../HelperFunctions/RefreshScale';
import UpdateColors from '../HelperFunctions/UpdateColors';
import PlaySound from '../Notifications/Sound';
import { Colors } from '../VariablesAndData';
/**
@@ -110,6 +111,18 @@ function CreatePrefOption(config) {
};
volume.appendChild(slider);
div.appendChild(volume);
const a = document.createElement('a');
a.className = 'option';
a.onclick = function () {
PlaySound(
CMOptions[config.replace('Volume', 'SoundURL')],
config.replace('Volume', 'Sound'),
config,
true,
);
};
a.textContent = 'Test sound';
div.appendChild(a);
return div;
}
if (Config[config].type === 'url') {

View File

@@ -7,12 +7,13 @@ import { isInitializing } from '../../InitSaveLoad/Variables';
* @param {variable} url A variable that gives the url for the sound (e.g., CM.Options.GCSoundURL)
* @param {string} sndConfig The setting in CM.Options that is checked before creating the sound
* @param {string} volConfig The setting in CM.Options that is checked to determine volume
* @param {bool} forced Whether the sound should play regardless of settings, used to test the sound
*/
export default function PlaySound(url, sndConfig, volConfig) {
export default function PlaySound(url, sndConfig, volConfig, forced) {
// The arguments check makes the sound not play upon initialization of the mod
if (CMOptions[sndConfig] === 1 && isInitializing === false) {
if ((CMOptions[sndConfig] === 1 || forced) && isInitializing === false) {
// eslint-disable-next-line new-cap
const sound = new realAudio(url);
const sound = new Audio(url);
if (CMOptions.GeneralSound)
sound.volume = (CMOptions[volConfig] / 100) * (Game.volume / 100);
else sound.volume = CMOptions[volConfig] / 100;