aboutsummaryrefslogtreecommitdiff
path: root/webAO/packets/handlers/handleRMC.ts
diff options
context:
space:
mode:
authorstonedDiscord <Tukz@gmx.de>2022-10-12 18:25:14 +0200
committerstonedDiscord <Tukz@gmx.de>2022-10-12 18:25:14 +0200
commit8a7942c0565298c29edbf0b271d5d7c7f9e56fd8 (patch)
tree67b788f40b7a4713904836de05f0e5876c32bd79 /webAO/packets/handlers/handleRMC.ts
parenta83c8962b68f2cc0a0e22d988b8ff030057454e5 (diff)
parent82983e0c38383ec2602b4f41327342d1c8d0a8fd (diff)
Merge branch 'master' into 2fa
Diffstat (limited to 'webAO/packets/handlers/handleRMC.ts')
-rw-r--r--webAO/packets/handlers/handleRMC.ts24
1 files changed, 24 insertions, 0 deletions
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