From 3288f781a9efa1d4baba2d79e231d4cef7aabfdb Mon Sep 17 00:00:00 2001 From: David Trattnig <david@subsquare.at> Date: Fri, 22 Jul 2022 12:40:25 +0200 Subject: [PATCH] SOC: Update fallback state by fallback events only --- src/events.liq | 10 ---------- src/in_fallback.liq | 20 ++++++++++++++------ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/events.liq b/src/events.liq index d329569..8ff9817 100644 --- a/src/events.liq +++ b/src/events.liq @@ -18,21 +18,11 @@ -# Updates the playout state -def on_playout_state_change(source_type) = - if source_type == "fallback" then - engine_state.is_fallback := true - else - engine_state.is_fallback := false - end -end - # Called when some new metadata info is available def on_metadata_notification(meta) = # FIXME For some reason stream channels do not pass the `source` property in meta channel_name = meta["source"] source_type = eval_source_type(channel_name) - on_playout_state_change(source_type) log(level=3, label="metadata", "Raw metadata before POST:\n\n #{meta}\n\n") diff --git a/src/in_fallback.liq b/src/in_fallback.liq index c90ba59..61aa27b 100644 --- a/src/in_fallback.liq +++ b/src/in_fallback.liq @@ -43,6 +43,16 @@ def on_track_change(s) = end end +# Called when a fallback source is actively playing +def on_fallback_notify(metadata) = + engine_state.is_fallback := true + on_metadata_notification(metadata) +end + +# Called when a fallback source stopped playing +def on_fallback_leave_notify() = + engine_state.is_fallback := false +end ##################################### # FUNCTIONS # @@ -60,10 +70,9 @@ def attach_fallback_source(main_stream) reload_mode="seconds") s = amplify(id="fallback_folder", 1., override="replay_gain", s) - # s.on_metadata(on_metadata_notification) - # s.on_track(on_metadata_notification) - s = source.on_track(id="fallback_folder", s, on_metadata_notification) + s = source.on_track(id="fallback_folder", s, on_fallback_notify) s = mksafe(s) + source.on_leave(s, on_fallback_leave_notify) fallback_folder := s main_stream.on_track(on_track_change) @@ -80,10 +89,9 @@ def attach_fallback_source(main_stream) reload=0) s = amplify(id="fallback_playlist", 1., override="replay_gain", s) - # s.on_metadata(on_metadata_notification) - # s.on_track(on_metadata_notification) - s = source.on_track(id="fallback_playlist", s, on_metadata_notification) + s = source.on_track(id="fallback_playlist", s, on_fallback_notify) s = mksafe(s) + source.on_leave(s, on_fallback_leave_notify) fallback_playlist := s main_stream.on_track(on_track_change) -- GitLab