From ab4031e56776d6a4fee81f8e14d57078311498da Mon Sep 17 00:00:00 2001 From: euzu <33094714+euzu@users.noreply.github.com> Date: Tue, 21 Jul 2026 11:21:34 +0200 Subject: [PATCH] Fix: Mapper counter reset (#795) Bug Fixes Fixed playlist counter assignments so values reset correctly during each refresh. Corrected counter displays to consistently show their configured starting values. Improved counter comparisons to detect changes in starting values accurately. --- backend/src/processing/processor/playlist.rs | 5 ++++- .../src/app/components/playlist/mapper_counter_view.rs | 3 +-- shared/src/model/mapping.rs | 7 +++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/backend/src/processing/processor/playlist.rs b/backend/src/processing/processor/playlist.rs index dcdd4f4dd..d214d9142 100644 --- a/backend/src/processing/processor/playlist.rs +++ b/backend/src/processing/processor/playlist.rs @@ -323,11 +323,14 @@ fn map_playlist_counter(target: &ConfigTarget, playlist: &mut [PlaylistGroup]) { for mapping in mappings { if let Some(counter_list) = &mapping.t_counter { for counter in counter_list { + // fresh per target/call. No shared atomic, no cross-refresh carry-over. + let mut current = counter.start; for plg in &mut *playlist { for channel in &mut plg.channels { let provider = ValueProvider { pli: channel, match_as_ascii: mapping.match_as_ascii }; if counter.filter.filter(&provider) { - let cntval = counter.value.fetch_add(1, core::sync::atomic::Ordering::AcqRel); + let cntval = current; + current += 1; let padded_cntval = if counter.padding > 0 { format!("{:0width$}", cntval, width = counter.padding as usize) } else { diff --git a/frontend/src/app/components/playlist/mapper_counter_view.rs b/frontend/src/app/components/playlist/mapper_counter_view.rs index 2030ca84a..4329820f1 100644 --- a/frontend/src/app/components/playlist/mapper_counter_view.rs +++ b/frontend/src/app/components/playlist/mapper_counter_view.rs @@ -1,6 +1,5 @@ use crate::i18n::use_translation; use shared::model::MappingCounter; -use std::sync::atomic::Ordering; use yew::prelude::*; #[derive(Properties, PartialEq, Clone)] @@ -32,7 +31,7 @@ pub fn MapperCounterView(props: &MapperCounterViewProps) -> Html {