From 97ff5cf75191fcfa35d22d42277f83bb527fda21 Mon Sep 17 00:00:00 2001 From: David Trattnig <david@subsquare.at> Date: Thu, 4 Aug 2022 11:35:43 +0200 Subject: [PATCH] refact(queue): clear using liquidsoap 2 features #16 --- src/in_queue.liq | 34 +++++++++++++++++++++++----------- src/library.liq | 23 ----------------------- 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/src/in_queue.liq b/src/in_queue.liq index 85653bc..91b646b 100644 --- a/src/in_queue.liq +++ b/src/in_queue.liq @@ -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 ) diff --git a/src/library.liq b/src/library.liq index e395f50..2b1a192 100644 --- a/src/library.liq +++ b/src/library.liq @@ -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 # ##################################### -- GitLab