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