From 3d6e61c6b0962cea539c6d780d68a7ad0b64bee1 Mon Sep 17 00:00:00 2001 From: Caleb Date: Tue, 30 Aug 2022 16:20:08 -0400 Subject: One more handler --- webAO/packets/handlers/handleRMC.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 webAO/packets/handlers/handleRMC.ts (limited to 'webAO/packets/handlers/handleRMC.ts') diff --git a/webAO/packets/handlers/handleRMC.ts b/webAO/packets/handlers/handleRMC.ts new file mode 100644 index 0000000..ada1ad2 --- /dev/null +++ b/webAO/packets/handlers/handleRMC.ts @@ -0,0 +1,24 @@ +import { client } from '../../client' +// TODO BUG: +// this.viewport.music is an array. Therefore you must access elements +/** + * Handles a music change to an arbitrary resource, with an offset in seconds. + * @param {Array} args packet arguments + */ +export const handleRMC = (args: string[]) => { + client.viewport.music.pause(); + const { music } = client.viewport; + // Music offset + drift from song loading + music.totime = args[1]; + music.offset = new Date().getTime() / 1000; + music.addEventListener( + "loadedmetadata", + () => { + music.currentTime += parseFloat( + music.totime + (new Date().getTime() / 1000 - music.offset) + ).toFixed(3); + music.play(); + }, + false + ); +} \ No newline at end of file -- cgit