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

Update metadata for line in sources

parent 92658be2
No related branches found
No related tags found
1 merge request!3Liquidsoap 2 migration
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
in_line_insert_callbacks = ref([])
##################################### #####################################
# FUNCTIONS # # FUNCTIONS #
...@@ -37,38 +39,44 @@ usage_set_track_metadata = "set_track_metadata { \ ...@@ -37,38 +39,44 @@ usage_set_track_metadata = "set_track_metadata { \
\"track_artist\": \"\" \ \"track_artist\": \"\" \
}" }"
def get_input(source_id, device) = def get_input_line(source_id, device) =
if use_alsa == true then if use_alsa == true then
input.alsa(id=source_id, device=device, clock_safe=false, bufferize=!alsa_use_buffer) input.alsa(id=source_id, device=device, bufferize=!alsa_buffered_input)
elsif use_jack == true then elsif use_jack == true then
input.jack(id=source_id, clock_safe=false) input.jack(id=source_id)
else else
input.pulseaudio(id=source_id, client="AURA Engine Input") input.pulseaudio(id=source_id, client="aura_engine_#{source_id}")
end end
end end
def create_input(source_id, device) =
if use_alsa == true then def create_input_line(source_id, device) =
alsa_in = get_input(source_id, device) in_line = get_input_line(source_id, device)
alsa_in = insert_metadata(id=source_id, alsa_in)
alsa_in.on_metadata(on_metadata_notification) # Enable metadata insertion and store callbacks
inputs := list.append([alsa_in], !inputs) in_line = insert_metadata(id=source_id, in_line)
# alsa_in in_line_insert_callbacks := list.append([("#{source_id}", in_line.insert_metadata)], !in_line_insert_callbacks)
server.register(namespace=source.id(alsa_in), # Old Liquidsoap approach:
description="Sets the current track metadata for a channel", # in_line.on_metadata(on_metadata_notification)
usage=usage_set_track_metadata, # New Liquidsoap 2.1 approach, which should not trigger when inactive:
"set_track_metadata", in_line = source.on_metadata(id=source_id, in_line, on_metadata_notification)
inputs := list.append([in_line], !inputs)
fun (json_string) -> begin
log("Received JSON to set track metadata on channel \ server.register(namespace=source.id(in_line),
'linein_0' to:\n #{json_string}") description="Sets the current track metadata for a channel",
metadata = build_metadata(json_string) usage=usage_set_track_metadata,
alsa_in.insert_metadata(metadata) "set_track_metadata",
"OK"
end fun (json_string) -> begin
) log("Received JSON to set track metadata on channel \
end 'linein_0' to:\n #{json_string}")
metadata = build_metadata(json_string)
insert_callback = list.assoc(source_id, !in_line_insert_callbacks)
insert_callback(metadata)
"OK"
end
)
end end
...@@ -77,21 +85,21 @@ end ...@@ -77,21 +85,21 @@ end
##################################### #####################################
if a0_in != "" then if a0_in != "" then
create_input("linein_0", a0_in) create_input_line("linein_0", a0_in)
end end
if a1_in != "" then if a1_in != "" then
create_input("linein_1", a1_in) create_input_line("linein_1", a1_in)
end end
if a2_in != "" then if a2_in != "" then
create_input("linein_2", a2_in) create_input_line("linein_2", a2_in)
end end
if a3_in != "" then if a3_in != "" then
create_input("linein_3", a3_in) create_input_line("linein_3", a3_in)
end end
if a4_in != "" then if a4_in != "" then
create_input("linein_4", a4_in) create_input_line("linein_4", a4_in)
end end
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