diff --git a/src/events.liq b/src/events.liq index d32956915e4ea2e0cea4bdfe92db21f43c8d4ecd..8ff9817504b130f449cbabc26f58de2475d1e041 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 c90ba59e2d6143e7e0504c588b6157e20c05280f..61aa27b03220e2b82fd21230b978f968401e9c3d 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)