From 77d62420418d7ed0261cb89f3daaa5b26f01ff44 Mon Sep 17 00:00:00 2001 From: David Trattnig <david@subsquare.at> Date: Fri, 24 Jun 2022 10:23:37 +0200 Subject: [PATCH] Refact: Use JSON builder and structure --- src/serverfunctions.liq | 153 ++++++++++++++++++---------------------- 1 file changed, 68 insertions(+), 85 deletions(-) diff --git a/src/serverfunctions.liq b/src/serverfunctions.liq index a37311f..d555a61 100644 --- a/src/serverfunctions.liq +++ b/src/serverfunctions.liq @@ -22,7 +22,7 @@ # -# Get connection state of outgoing streams +# Get connection state of outgoing streams #TODO refactor server.register(namespace="aura_engine", description="returns if outgoing streams are connected", usage="out_streams_connected", @@ -37,42 +37,39 @@ server.register(namespace="aura_engine", # Get state of the inputs/outputs as JSON server.register(namespace = "aura_engine", description="returns enabled line-in, line-out and connected outgoing streams", - usage="state", - "state", + usage="status", + "status", fun(s) -> begin ignore(s) - log("executing: aura_engine.state") - - ret = '{' - ret = ret^'"streams": {' - ret = ret^'"stream_0": {"enabled": #{s0_enable}, "connected": #{!s0_connected}},' - ret = ret^'"stream_1": {"enabled": #{s1_enable}, "connected": #{!s1_connected}},' - ret = ret^'"stream_2": {"enabled": #{s2_enable}, "connected": #{!s2_connected}},' - ret = ret^'"stream_3": {"enabled": #{s3_enable}, "connected": #{!s3_connected}},' - ret = ret^'"stream_4": {"enabled": #{s4_enable}, "connected": #{!s4_connected}}' - ret = ret^'},' - ret = ret^'"linein": {' - ret = ret^'"linein_0": {"enabled": #{a0_in != ""}},' - ret = ret^'"linein_1": {"enabled": #{a1_in != ""}},' - ret = ret^'"linein_2": {"enabled": #{a2_in != ""}},' - ret = ret^'"linein_3": {"enabled": #{a3_in != ""}},' - ret = ret^'"linein_4": {"enabled": #{a4_in != ""}}' - ret = ret^'},' - ret = ret^'"lineout": {' - ret = ret^'"lineout_0": {"enabled": #{a0_out != ""}},' - ret = ret^'"lineout_1": {"enabled": #{a1_out != ""}},' - ret = ret^'"lineout_2": {"enabled": #{a2_out != ""}},' - ret = ret^'"lineout_3": {"enabled": #{a3_out != ""}},' - ret = ret^'"lineout_4": {"enabled": #{a4_out != ""}}' - ret = ret^'}' - ret = ret^'}' - ret - - # outgoing streams enabled? - #ret = "stream_0_enabled:#{!s0_enable}, stream_1_enabled:#{!s1_enable}, stream_2_enabled:#{!s2_enable}, stream_3_enabled:#{!s3_enable}, stream_4_enabled:#{!s4_enable}, " - #ret = ret^"linein_0_enabled:#{a0_in != ''}, linein_1_enabled:#{a1_in != ''}, linein_2_enabled:#{a2_in != ''}, linein_3_enabled:#{a3_in != ''}, linein_4_enabled:#{a4_in != ''}, " - #ret = ret^"lineout_0_enabled:#{a0_out != ''}, lineout_1_enabled:#{a1_out != ''}, lineout_2_enabled:#{a2_out != ''}, lineout_3_enabled:#{a3_out != ''}, lineout_4_enabled:#{a4_out != ''}, " - #ret = ret^"fallback_max_blank:#{fallback_max_blank}, fallback_min_noise:#{fallback_min_noise}, fallback_threshold:#{fallback_threshold}" + log("executing: aura_engine.status") + + json_streams = { + stream_0 = { enabled = "#{s0_enable}", connected = "#{!s0_connected}" }, + stream_1 = { enabled = "#{s1_enable}", connected = "#{!s1_connected}" }, + stream_2 = { enabled = "#{s2_enable}", connected = "#{!s2_connected}" }, + stream_3 = { enabled = "#{s3_enable}", connected = "#{!s3_connected}" }, + stream_4 = { enabled = "#{s4_enable}", connected = "#{!s4_connected}" } + } + json_linein = { + linein_0 = { enabled = "#{a0_in != ''}" }, + linein_1 = { enabled = "#{a1_in != ''}" }, + linein_2 = { enabled = "#{a2_in != ''}" }, + linein_3 = { enabled = "#{a3_in != ''}" }, + linein_4 = { enabled = "#{a4_in != ''}" } + } + json_lineout = { + lineout_0 = { enabled = "#{a0_out != ''}" }, + lineout_1 = { enabled = "#{a1_out != ''}" }, + lineout_2 = { enabled = "#{a2_out != ''}" }, + lineout_3 = { enabled = "#{a3_out != ''}" }, + lineout_4 = { enabled = "#{a4_out != ''}" } + } + + json_data = json() + json_data.add("streams", json_streams) + json_data.add("linein", json_linein) + json_data.add("lineout", json_lineout) + json.stringify(json_data) end ) @@ -99,26 +96,46 @@ server.register(namespace="aura_engine", end ) -# to reduce complexity of lqs => query 'mixer.inputs' over socket and parse it in python -#server.register(namespace="aura_engine", -# "enabled_lineins", -# fun (s) -> begin -# log("auraengine.enabled_lineins") -# "0:#{!linein_0_enabled}, 1:#{!linein_1_enabled}, 2:#{!linein_2_enabled}, 3:#{!linein_3_enabled}, 4:#{!linein_4_enabled}" -# end -#) -#server.register(namespace="aura_engine", -# "enabled_lineouts", -# fun(s) -> begin -# log("auraengine.enabled_lineouts") -# "0:#{!lineout_0_enabled}, 1:#{!lineout_1_enabled}, 2:#{!lineout_2_enabled}, 3:#{!lineout_3_enabled}, 4:#{!lineout_4_enabled}" -# end -#) + +# +# Namespace: mixer +# + + +# Activate a source by selecting it and setting the volume to 100 (or vice versa) +server.register(namespace = "mixer", + description = "is selecting a source and setting the volume to 100", + usage = "activate <source number> <true|false>", + "activate", + fun(p) -> begin + params=string.split(separator=" ", p) + if list.length(params) < 2 then + print(p) + "Usage: mixer.activate <source nb> <true|false>" + else + source_number = list.nth(default="0", params, 0) + source_enable = list.nth(default="false", params, 1) + + if source_enable == "true" then + r = server.execute("mixer.select #{source_number} true") + print(r) + r = server.execute("mixer.volume #{source_number} 100") + print(r) + else + r = server.execute("mixer.volume #{source_number} 0") + print(r) + r = server.execute("mixer.select #{source_number} false") + print(r) + end + "Done!" + end + end +) # -# Namespace: misc #TODO: partly to be refactored +# Namespace: misc #TODO: refactor # @@ -145,40 +162,6 @@ ignore(fade_in_time) ignore(fade_out_time) -# Activate a source by selecting it and setting the volume to 100 (or vice versa) - -def activate(p) = - params=string.split(separator=" ", p) - if list.length(params) < 2 then - print(p) - "Usage: mixer.activate <source nb> <true|false>" - else - source_number = list.nth(default="0", params, 0) - source_enable = list.nth(default="false", params, 1) - - if source_enable == "true" then - r = server.execute("mixer.select #{source_number} true") - print(r) - r = server.execute("mixer.volume #{source_number} 100") - print(r) - else - r = server.execute("mixer.volume #{source_number} 0") - print(r) - r = server.execute("mixer.select #{source_number} false") - print(r) - end - "Done!" - end -end - -server.register(namespace = "mixer", - description = "is selecting a source and setting the volume to 100", - usage = "activate <source nb> <true|false>", - "activate", - activate -) - - def icy_update(v) = # Parse the argument -- GitLab