From e09efb46a09378b2239fe3b6d5bb24cd8691ee70 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 22 May 2024 21:29:50 -0400 Subject: [PATCH] Add media.ended binding. --- game.js | 1 + modules/dom/media.scm | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/game.js b/game.js index 74a2be9..603753c 100644 --- a/game.js +++ b/game.js @@ -49,6 +49,7 @@ window.addEventListener("load", async () => { }, media: { newAudio: (src) => new Audio(src), + ended: (media) => media.ended, play: (media) => media.play(), pause: (media) => media.pause(), volume: (media) => media.volume, diff --git a/modules/dom/media.scm b/modules/dom/media.scm index a0acd2a..4c64ff1 100644 --- a/modules/dom/media.scm +++ b/modules/dom/media.scm @@ -20,6 +20,7 @@ (library (dom media) (export make-audio + media-ended? media-play media-pause media-volume @@ -34,21 +35,33 @@ (define-foreign make-audio "media" "newAudio" (ref string) -> (ref extern)) + + (define-foreign %media-ended? + "media" "ended" + (ref extern) -> i32) + (define (media-ended? media) + (= (%media-ended? media) 1)) + (define-foreign media-play "media" "play" (ref extern) -> none) + (define-foreign media-pause "media" "pause" (ref extern) -> none) + (define-foreign media-volume "media" "volume" (ref extern) -> f64) + (define-foreign set-media-volume! "media" "setVolume" (ref extern) f64 -> none) + (define-foreign set-media-loop! "media" "setLoop" (ref extern) i32 -> none) + (define-foreign media-seek "media" "seek" (ref extern) f64 -> none))