From a9000de666816cb91125c93a9d38e008ff7299aa Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Sun, 27 Aug 2023 15:54:16 +0100 Subject: [PATCH] Try again to ensure an active_end metadata item is emitted if the player exits while playing. --- activity_monitor.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/activity_monitor.c b/activity_monitor.c index 361bf517..0c15f3d2 100644 --- a/activity_monitor.c +++ b/activity_monitor.c @@ -50,7 +50,6 @@ enum am_state state; enum ps_state { ps_inactive, ps_active } player_state; int activity_monitor_running = 0; -int activity_monitor_is_shutting_down = 0; pthread_t activity_monitor_thread; pthread_mutex_t activity_monitor_mutex; @@ -121,7 +120,7 @@ void activity_monitor_signify_activity(int active) { pthread_mutex_unlock(&activity_monitor_mutex); going_active(config.cmd_blocking); } else if ((state == am_active) && (player_state == ps_inactive) && - ((config.active_state_timeout == 0.0) || (activity_monitor_is_shutting_down != 0))) { + (config.active_state_timeout == 0.0)) { state = am_inactive; pthread_mutex_unlock(&activity_monitor_mutex); going_inactive(config.cmd_blocking); @@ -241,9 +240,11 @@ void activity_monitor_start() { void activity_monitor_stop() { if (activity_monitor_running) { - activity_monitor_is_shutting_down = 1; - debug(3, "activity_monitor_stop start..."); - activity_monitor_signify_activity(0); // tell it to go inactive... + debug(2, "activity_monitor_stop begin. state: %d, player_state: %d.", state, player_state); + if ((state == am_active) || (state == am_timing_out)) { + going_inactive(config.cmd_blocking); + state = am_inactive; + } pthread_cancel(activity_monitor_thread); pthread_join(activity_monitor_thread, NULL); debug(2, "activity_monitor_stop complete"); -- 2.47.3