Skip to content
Snippets Groups Projects
Commit 97ff5cf7 authored by David Trattnig's avatar David Trattnig
Browse files

refact(queue): clear using liquidsoap 2 features

#16
parent 96ded977
No related branches found
No related tags found
No related merge requests found
Pipeline #2212 passed
......@@ -18,17 +18,30 @@
#####################################
# FUNCTIONS #
#####################################
# Clear all requests in the queue
def clear_queue(s) =
q = s.queue()
s.set_queue([])
s.skip()
list.iter(request.destroy, q)
end
#####################################
# QUEUE SOURCES #
#####################################
# Create Sources
input_filesystem_0 = request.queue(id="in_filesystem_0")
input_filesystem_1 = request.queue(id="in_filesystem_1")
input_filesystem_raw_0 = request.queue(id="in_filesystem_0")
input_filesystem_raw_1 = request.queue(id="in_filesystem_1")
# Apply ReplayGain normalization, if metadata available
input_filesystem_0 = amplify(id="in_filesystem_0", 1., override="replay_gain", input_filesystem_0)
input_filesystem_1 = amplify(id="in_filesystem_1", 1., override="replay_gain", input_filesystem_1)
input_filesystem_0 = amplify(id="in_filesystem_0", 1., override="replay_gain", input_filesystem_raw_0)
input_filesystem_1 = amplify(id="in_filesystem_1", 1., override="replay_gain", input_filesystem_raw_1)
# See https://github.com/savonet/liquidsoap/discussions/2537
# input_filesystem_0 = replaygain(input_filesystem_0)
# input_filesystem_1 = replaygain(input_filesystem_1)
......@@ -41,32 +54,31 @@ input_filesystem_1.on_metadata(on_metadata_notification)
# SERVER FUNCTIONS #
#####################################
# Clear Default Queue A
server.register(namespace=source.id(input_filesystem_0),
description="Clear all items of the default queue A.",
description="Skip & clear all items from queue A.",
usage="clear",
"clear",
fun (s) ->
begin
ignore(s)
clear_queue(input_filesystem_0)
"Clearing done."
clear_queue(input_filesystem_raw_0)
"OK"
end
)
# Clear Default Queue B
server.register(namespace=source.id(input_filesystem_1),
description="Clear all items of the default queue B.",
description="Skip & clear all items from queue B.",
usage="clear",
"clear",
fun (s) ->
begin
ignore(s)
clear_queue(input_filesystem_1)
"Clearing done."
clear_queue(input_filesystem_raw_1)
"OK"
end
)
......
......@@ -18,29 +18,6 @@
#####################################
# CLEAR SOURCE #
#####################################
def clear_items(ns) =
ret = server.execute("#{source.id(ns)}.queue")
ret = list.hd(default="", ret)
if ret == "" then
log("Queue cleared.")
(-1.)
else
log("There are still items in the queue '#{source.id(ns)}', skip RID #{ret} ...")
source.skip(ns)
(0.1)
end
end
def clear_queue(ns) =
add_timeout(fast=false, 0.5, {clear_items(ns)})
end
#####################################
# DYNAMIC SOURCES #
#####################################
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment