diff options
Diffstat (limited to 'src/client/scripts')
| -rw-r--r-- | src/client/scripts/sound.ts | 24 | ||||
| -rw-r--r-- | src/client/scripts/theme.ts | 13 |
2 files changed, 27 insertions, 10 deletions
diff --git a/src/client/scripts/sound.ts b/src/client/scripts/sound.ts new file mode 100644 index 0000000000..13fd9a80f5 --- /dev/null +++ b/src/client/scripts/sound.ts @@ -0,0 +1,24 @@ +import { device } from '@/cold-storage'; + +const cache = new Map<string, HTMLAudioElement>(); + +export function play(type: string) { + const sound = device.get('sound_' + type as any); + if (sound.type == null) return; + playFile(sound.type, sound.volume); +} + +export function playFile(file: string, volume: number) { + const masterVolume = device.get('sound_masterVolume'); + if (masterVolume === 0) return; + + let audio: HTMLAudioElement; + if (cache.has(file)) { + audio = cache.get(file); + } else { + audio = new Audio(`/assets/sounds/${file}.mp3`); + cache.set(file, audio); + } + audio.volume = masterVolume - ((1 - volume) * masterVolume); + audio.play(); +} diff --git a/src/client/scripts/theme.ts b/src/client/scripts/theme.ts index c1fc88bf0e..c1580c6367 100644 --- a/src/client/scripts/theme.ts +++ b/src/client/scripts/theme.ts @@ -15,19 +15,12 @@ export const darkTheme: Theme = require('../themes/_dark.json5'); export const themeProps = Object.keys(lightTheme.props).filter(key => !key.startsWith('X')); export const builtinThemes = [ - require('../themes/l-white.json5'), - require('../themes/l-red.json5'), - require('../themes/l-green.json5'), - require('../themes/l-blue.json5'), + require('../themes/l-light.json5'), require('../themes/l-apricot.json5'), - require('../themes/d-black.json5'), - require('../themes/d-red.json5'), - require('../themes/d-green.json5'), - require('../themes/d-blue.json5'), + require('../themes/d-dark.json5'), require('../themes/d-persimmon.json5'), - - require('../themes/d-battery-saver.json5'), + require('../themes/d-black.json5'), ] as Theme[]; let timeout = null; |