This commit is contained in:
CDeenen
2020-11-19 05:26:07 +01:00
parent 5c2357edd6
commit 0a4d32aaac
12 changed files with 516 additions and 180 deletions

View File

@@ -117,30 +117,46 @@ export class SoundboardControl{
this.playSound(soundNr,false,false);
}
playSound(soundNr,repeat,play){
let trackId = game.settings.get(MODULE.moduleName,'soundboardSettings').sounds[soundNr];
async playSound(soundNr,repeat,play){
const soundBoardSettings = game.settings.get(MODULE.moduleName,'soundboardSettings');
const playlistId = soundBoardSettings.selectedPlaylists[soundNr];
let src;
if (playlistId == "" || playlistId == undefined) return;
if (playlistId == 'none') return;
else if (playlistId == 'FP') {
src = soundBoardSettings.src[soundNr];
const ret = await FilePicker.browse("data", src, {wildcard:true});
const files = ret.files;
if (files.length == 1) src = files;
else {
let value = Math.floor(Math.random() * Math.floor(files.length));
src = files[value];
}
}
else {
const soundId = soundBoardSettings.sounds[soundNr];
const sounds = game.playlists.entities.find(p => p._id == playlistId).data.sounds;
if (sounds == undefined) return;
const sound = sounds.find(p => p._id == soundId);
if (sound == undefined) return;
src = sound.path;
}
let volume = game.settings.get(MODULE.moduleName,'soundboardSettings').volume[soundNr]/100;
volume = AudioHelper.inputToVolume(volume);
if (trackId == "" || trackId == undefined) return;
let payload = {
"msgType": "playSound",
"trackNr": soundNr,
"src": src,
"repeat": repeat,
"play": play,
"volume": volume
};
game.socket.emit(`module.MaterialDeck`, payload);
if (play){
let trackId = game.settings.get(MODULE.moduleName,'soundboardSettings').sounds[soundNr];
let playlistId = game.settings.get(MODULE.moduleName,'soundboardSettings').playlist;
let sounds = game.playlists.entities.find(p => p._id == playlistId).data.sounds;
let sound = sounds.find(p => p._id == trackId);
if (sound == undefined){
this.activeSounds[soundNr] = false;
return;
}
volume *= game.settings.get("core", "globalInterfaceVolume");
let src = sound.path;
let howl = new Howl({src, volume, loop: repeat, onend: (id)=>{
if (repeat == false){
@@ -160,5 +176,6 @@ export class SoundboardControl{
this.activeSounds[soundNr] = false;
}
this.updateAll();
}
}