From 0fbe1da65e7671f23fd76a80941a6dfe7cbeac77 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Sun, 20 Sep 2026 11:09:06 -0700 Subject: [PATCH] Reserve output while a saved demo is playing --- roadscore/prototype/operator_output.py | 3 ++- roadscore/prototype/test_demo_session.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/roadscore/prototype/operator_output.py b/roadscore/prototype/operator_output.py index cdc16dd894..22da2191af 100644 --- a/roadscore/prototype/operator_output.py +++ b/roadscore/prototype/operator_output.py @@ -100,7 +100,8 @@ def playback_process_active(proc=Path('/proc')): if not path.name.isdigit():continue try:cmd=(path/'cmdline').read_bytes().replace(b'\0',b' ') except OSError:continue - if any(name in cmd for name in (b'/prototype/app.py',b'/prototype/stored_score.py')):return True + if any(name in cmd for name in (b'/prototype/app.py',b'/prototype/stored_score.py',b'/prototype/native_prepared_showcase.py')):return True + if b'/prototype/mac_showcase.py' in cmd and b'--audio-worker' in cmd:return True except OSError:return True return False diff --git a/roadscore/prototype/test_demo_session.py b/roadscore/prototype/test_demo_session.py index ddf603f7ff..aadddc39a7 100644 --- a/roadscore/prototype/test_demo_session.py +++ b/roadscore/prototype/test_demo_session.py @@ -69,5 +69,15 @@ class SavedDemoTests(unittest.TestCase): self.assertEqual(self.stops,[]) with self.assertRaises(ValueError):self.service.start(self.request) + def test_prepared_playback_reserves_output_from_calibration(self): + from operator_output import playback_process_active + proc=self.root/'proc';child=proc/'45';child.mkdir(parents=True) + for command in (b'python\0/data/roadscore/prototype/native_prepared_showcase.py\0--demo', + b'python\0/data/roadscore/prototype/mac_showcase.py\0--audio-worker'): + (child/'cmdline').write_bytes(command) + self.assertTrue(playback_process_active(proc)) + (child/'cmdline').write_bytes(b'python\0/data/roadscore/prototype/worker_service.py') + self.assertFalse(playback_process_active(proc)) + if __name__=='__main__':unittest.main()