From: Mike Lowis Date: Thu, 18 Jan 2024 21:30:07 +0000 (-0500) Subject: added queue commands X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=515e65eaf7d6641f0b78620876c39c7a982b72ba;p=proto%2Fatv.git added queue commands --- diff --git a/atv/assets/client.js b/atv/assets/client.js index b4844fb..6522cd6 100644 --- a/atv/assets/client.js +++ b/atv/assets/client.js @@ -9,12 +9,13 @@ const Client = ((self = {})=>{ "ws://" + window.location.host + ":3000"); ws.onopen = (event)=>{ - send("get_items", {}); + self.send("get_items", {}); + self.send("get_queue", {}); } ws.onmessage = (event)=>{ cmd = JSON.parse(event.data); - if (cmd.cmd !== "items") + if (cmd.cmd !== "items" && cmd.cmd !== "queue") { self.state = cmd; } @@ -26,45 +27,37 @@ const Client = ((self = {})=>{ }; }; - const send = (cmd, data = {})=>{ + self.send = (cmd, data = {})=>{ const blob = Object.assign({ cmd: cmd}, data); console.log(blob); ws.send(JSON.stringify(blob)); }; self.skip = (data)=>{ - send("skip"); + self.send("skip"); }; self.play_pause = (data)=>{ if (self.state["playing"]) { - send("pause"); + self.send("pause"); } else { - send("play"); + self.send("play"); } }; self.pause = (data)=>{ - send("pause"); + self.send("pause"); }; self.chan_next = (data)=>{ - send("chan_next"); + self.send("chan_next"); }; self.chan_prev = (data)=>{ - send("chan_prev"); - }; - - self.play_next = (path)=>{ - - }; - - self.play_now = (path)=>{ - + self.send("chan_prev"); }; return self; diff --git a/atv/assets/control.html b/atv/assets/control.html index e4deb3c..a62a047 100644 --- a/atv/assets/control.html +++ b/atv/assets/control.html @@ -60,25 +60,37 @@ - + diff --git a/atv/lib/atv/server.rb b/atv/lib/atv/server.rb index d8b7714..5fe6a3e 100644 --- a/atv/lib/atv/server.rb +++ b/atv/lib/atv/server.rb @@ -15,6 +15,7 @@ module ATV Iodine.run_every(1000) do if player.update broadcast("play", @@player.state) + broadcast("queue", {"queue" => @@player.queue}) end end Iodine.threads = 1 @@ -56,6 +57,7 @@ module ATV def on_skip(client, data) @@player.skip + broadcast("queue", {"queue" => @@player.queue}) end def on_play(client, data) @@ -68,16 +70,27 @@ module ATV def on_chan_next(client, data) @@player.chan_next + broadcast("queue", {"queue" => @@player.queue}) end def on_chan_prev(client, data) @@player.chan_prev + broadcast("queue", {"queue" => @@player.queue}) end def on_get_items(client, data) client_send(client, "items", @@player.items) end + def on_get_queue(client, data) + client_send(client, "queue", {"queue" => @@player.queue}) + end + + def on_enqueue(client, data) + @@player.enqueue(data["path"]) + broadcast("queue", {"queue" => @@player.queue}) + end + extend self end end