diff --git a/src/serverfunctions.liq b/src/serverfunctions.liq index 90a779a760e9b86843d76cf08874b455c180e26d..ef3d1c0a8c84aab351a461357074e7e08bdbae97 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