From ea240302690c7c1eb8a662dbe4f07f81e990f345 Mon Sep 17 00:00:00 2001
From: David Trattnig <david@subsquare.at>
Date: Thu, 9 Jun 2022 18:29:32 +0200
Subject: [PATCH] Refact: server functions

---
 src/serverfunctions.liq | 249 +++++++++++++++++++++-------------------
 1 file changed, 129 insertions(+), 120 deletions(-)

diff --git a/src/serverfunctions.liq b/src/serverfunctions.liq
index 90a779a..ef3d1c0 100644
--- a/src/serverfunctions.liq
+++ b/src/serverfunctions.liq
@@ -17,141 +17,29 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
-
-def icy_update(v) =
-
-  # Parse the argument
-  l = string.split(separator=",",v)
-  def split(l,v) =
-    v = string.split(separator="=",v)
-    if list.length(v) >= 2 then
-      list.append(l,[(list.nth(v,0,default=""),list.nth(v,1,default=""))])
-    else
-      l
-    end
-  end
-  meta = list.fold(split,[],l)
-
-  # Update metadata
-  if s0_enable == true then
-    icy.update_metadata(
-        mount=s0_mount,
-        user=s0_user,
-        password=s0_pass,
-        host=s0_host,
-        port=s0_port,
-        meta
-        )
-  end
-
-  if s1_enable == true then
-    icy.update_metadata(
-        mount=s1_mount,
-        user=s1_user,
-        password=s1_pass,
-        host=s1_host,
-        port=s1_port,
-        meta
-        )
-  end
-
-  if s2_enable == true then
-    icy.update_metadata(
-        mount=s2_mount,
-        user=s2_user,
-        password=s2_pass,
-        host=s2_host,
-        port=s2_port,
-        meta
-        )
-  end
-
-  if s3_enable == true then
-    icy.update_metadata(
-        mount=s3_mount,
-        user=s3_user,
-        password=s3_pass,
-        host=s3_host,
-        port=s3_port,
-        meta
-        )
-  end
-
-  if s4_enable == true then
-    icy.update_metadata(
-        mount=s4_mount,
-        user=s4_user,
-        password=s4_pass,
-        host=s4_host,
-        port=s4_port,
-        meta
-        )
-  end
-
-  "Done!"
-end
-
-server.register("update", namespace="metadata",
-                 description="Update metadata",
-                 usage="update title=foo,album=bar, ...",
-                 icy_update)
-
-
-# shutdown server function
-#server.register(namespace='server',
-#    description="shutdown server",
-#    usage="stop",
-#    "stop",
-#    fun(x,y) -> shutdown )
-
-
-
 #
-# to reduce complexity of lqs => query 'mixer.inputs' over socket and parse it in python
-#server.register(namespace="auraengine",
-#    "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="auraengine",
-#    "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: aura_engine
+#
 
-# are outgoing streams connected?
-server.register(namespace="auraengine",
-    description="returns the version of Engine Core",
-    usage="version",
-    "version",
-    fun (s) -> begin
-        engine_version
-    end
-)
 
-# are outgoing streams connected?
-server.register(namespace="auraengine",
+# Get connection state of outgoing streams
+server.register(namespace="aura_engine",
     description="returns if outgoing streams are connected",
     usage="out_streams_connected",
     "out_streams_connected",
     fun (s) -> begin
-        log("streams.connection_status")
+        log("executing: aura_engine.out_streams_connected")
         "0:#{!s0_connected}, 1:#{!s1_connected}, 2:#{!s2_connected}, 3:#{!s3_connected}, 4:#{!s4_connected}"
     end
 )
 
-# return a state of the inputs/outputs of the soundserver as JSON
-server.register(namespace = "auraengine",
+# 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",
     fun(s) -> begin
-        log("auraengine.state")
+        log("executing: aura_engine.state")
 
         ret = '{'
         ret = ret^'"streams": {'
@@ -183,10 +71,52 @@ server.register(namespace = "auraengine",
         #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}"
+    end
+)
 
+# Get Version
+server.register(namespace="aura_engine",
+    description="returns the version of Engine Core",
+    usage="version",
+    "version",
+    fun (s) -> begin
+        engine_version
+    end
+)
+
+# Shutdown server
+server.register(namespace="aura_engine",
+    description="Shutdown play-out server",
+    usage="stop",
+    "stop",
+    fun (s) -> begin
+        shutdown(code=0)
+        "Engine shutting down ..."
     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: misc #TODO: partly to be refactored
+#
+
 
 def fadeTo(source_number) =
     if source_number == "" then
@@ -243,3 +173,82 @@ server.register(namespace = "mixer",
     "activate",
     activate
 )
+
+
+def icy_update(v) =
+
+  # Parse the argument
+  l = string.split(separator=",",v)
+  def split(l,v) =
+    v = string.split(separator="=",v)
+    if list.length(v) >= 2 then
+      list.append(l,[(list.nth(v,0,default=""),list.nth(v,1,default=""))])
+    else
+      l
+    end
+  end
+  meta = list.fold(split,[],l)
+
+  # Update metadata
+  if s0_enable == true then
+    icy.update_metadata(
+        mount=s0_mount,
+        user=s0_user,
+        password=s0_pass,
+        host=s0_host,
+        port=s0_port,
+        meta
+        )
+  end
+
+  if s1_enable == true then
+    icy.update_metadata(
+        mount=s1_mount,
+        user=s1_user,
+        password=s1_pass,
+        host=s1_host,
+        port=s1_port,
+        meta
+        )
+  end
+
+  if s2_enable == true then
+    icy.update_metadata(
+        mount=s2_mount,
+        user=s2_user,
+        password=s2_pass,
+        host=s2_host,
+        port=s2_port,
+        meta
+        )
+  end
+
+  if s3_enable == true then
+    icy.update_metadata(
+        mount=s3_mount,
+        user=s3_user,
+        password=s3_pass,
+        host=s3_host,
+        port=s3_port,
+        meta
+        )
+  end
+
+  if s4_enable == true then
+    icy.update_metadata(
+        mount=s4_mount,
+        user=s4_user,
+        password=s4_pass,
+        host=s4_host,
+        port=s4_port,
+        meta
+        )
+  end
+
+  "Done!"
+end
+
+server.register("update", namespace="metadata",
+                 description="Update metadata",
+                 usage="update title=foo,album=bar, ...",
+                 icy_update)
\ No newline at end of file
-- 
GitLab