From f383aec1cd5a9f8a44539d9f802dee2d1332f64c Mon Sep 17 00:00:00 2001 From: Puniko Date: Tue, 27 Dec 2022 15:23:25 +0100 Subject: [PATCH] repeat only once and proper handling of track ending --- packages/client/src/components/mod-player.vue | 6 +++++- packages/client/src/scripts/chiptune2.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/client/src/components/mod-player.vue b/packages/client/src/components/mod-player.vue index 1be737beb..9152226d8 100644 --- a/packages/client/src/components/mod-player.vue +++ b/packages/client/src/components/mod-player.vue @@ -75,7 +75,7 @@ let hide = ref((defaultStore.state.nsfw === 'force') ? true : props.module.isSen let playing = ref(false); let displayCanvas = ref(null); let progress = ref(null); -const player = ref(new ChiptuneJsPlayer(new ChiptuneJsConfig(1))); +const player = ref(new ChiptuneJsPlayer(new ChiptuneJsConfig())); const rowBuffer = 24; let buffer = null; @@ -99,6 +99,10 @@ function playPause() { display(); }); + player.value.addHandler('onEnded', () => { + stop(); + }); + if (player.value.currentPlayingNode === null) { player.value.play(buffer); playing.value = true; diff --git a/packages/client/src/scripts/chiptune2.ts b/packages/client/src/scripts/chiptune2.ts index 5e9a88de0..e4d08e3da 100644 --- a/packages/client/src/scripts/chiptune2.ts +++ b/packages/client/src/scripts/chiptune2.ts @@ -115,7 +115,7 @@ ChiptuneJsPlayer.prototype.play = function (buffer: ArrayBuffer) { if (processNode === null) { return; } - libopenmpt._openmpt_module_set_repeat_count(processNode.modulePtr, this.config.repeatCount || 1); + libopenmpt._openmpt_module_set_repeat_count(processNode.modulePtr, this.config.repeatCount || 0); this.currentPlayingNode = processNode; processNode.connect(this.context); this.context.connect(this.audioContext.destination);