From 1c35cd521d18f538124c0ff94bfce445d9bc29cc Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Sat, 19 Sep 2026 22:32:33 -0700 Subject: [PATCH] Publish replay engagement commands atomically to the audio callback --- roadscore/prototype/demo_engagement.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/roadscore/prototype/demo_engagement.py b/roadscore/prototype/demo_engagement.py index 71e26b552a..85f22090d2 100644 --- a/roadscore/prototype/demo_engagement.py +++ b/roadscore/prototype/demo_engagement.py @@ -13,17 +13,20 @@ class DemoEngagement: self.input_mode=input_mode;self.clock=clock;self.started=clock();self.mode='recorded' def poll(self): - self.mode='recorded' - if self.input_mode!='replay':return self.mode + mode='recorded' + if self.input_mode!='replay': + self.mode=mode + return mode try: value=json.loads(self.path.read_text()) stamp=value.get('created_wall') if (value.get('version')==1 and value.get('session_id')==self.session_id and value.get('mode') in MODES and type(stamp) in (int,float) and math.isfinite(stamp) and self.started<=stamp<=self.clock()): - self.mode=value['mode'] + mode=value['mode'] except (OSError,ValueError,AttributeError):pass - return self.mode + self.mode=mode + return mode def presentation_active(mode, recorded_active):