Watch Pro Tools Solo Mode (AFL + Latch) on the Studio B Mac Studio
A LaunchAgent helper on that Mac (Accessibility) reads Options > Solo Mode every second into a status file and ticks AFL/Latch on request. APPS alarms PT SOLO NOT AFL (hold fixes it; in the Sunday auto-fix list) and PT SOLO CHECK OFF when the helper is not running or not allowed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -264,6 +264,17 @@ class TestChecks(unittest.TestCase):
|
||||
self.assertEqual(tiles["apps"]["x"], "APPS\nPROP TV DOWN")
|
||||
self.assertEqual(dict(sp.http_checks(CONFIG))["http://10.1.14.225:1025/"], 5)
|
||||
|
||||
def test_pro_tools_solo_mode_on_studio_b(self):
|
||||
chk = [c for c in CONFIG["tiles"][[t["id"] for t in CONFIG["tiles"]].index("apps")]["checks"]
|
||||
if c.get("msg") == "PT SOLO NOT AFL"][0]
|
||||
self.snap.remote["studiob\0" + chk["cmd"]] = False
|
||||
engine = sp.Engine(CONFIG)
|
||||
tiles, _ = run_steps(engine, self.snap, self.now, 4)
|
||||
self.assertEqual(tiles["apps"]["x"], "APPS\nPT SOLO NOT AFL")
|
||||
self.assertEqual(engine.fix_plan("apps", self.snap)[0][1:3], ("fix", "solo_afl"))
|
||||
self.assertIn("solo_afl", CONFIG["auto_fix"]["fixes"])
|
||||
self.assertIn('"bad":true', chk["cmd"])
|
||||
|
||||
def test_propresenter_yellow_warning_is_ignored(self):
|
||||
engine = sp.Engine(CONFIG)
|
||||
self.snap.conns["Propresenter-API"].update(category="warning", message="Socket closed")
|
||||
@@ -1175,8 +1186,10 @@ class TestFixes(unittest.TestCase):
|
||||
self.assertEqual((tiles["dante"]["x"], level(tiles["dante"])), ("DANTE\nFIXING\nDVS", "fixing"))
|
||||
gate.set()
|
||||
time.sleep(0.2)
|
||||
self.snap.conns_time = time.time() # fresh data at the real clock
|
||||
tiles = self.engine.step(self.snap, time.time())
|
||||
self.assertEqual((tiles["dante"]["x"], level(tiles["dante"])), ("DANTE\nCHECKING\nDVS", "fixing"))
|
||||
self.snap.conns_time = time.time() + 25 # fresh data at the real clock
|
||||
tiles = self.engine.step(self.snap, time.time() + 25) # still gone: back to the alarm
|
||||
self.assertEqual(tiles["dante"]["x"], "DANTE\nPROP MAC GONE")
|
||||
# held again within a minute
|
||||
@@ -1186,6 +1199,7 @@ class TestFixes(unittest.TestCase):
|
||||
outcome["ok"] = False
|
||||
self.engine.run_fixes("dante", self.snap, None, t + 100)
|
||||
time.sleep(0.2)
|
||||
self.snap.conns_time = time.time() # fresh data at the real clock
|
||||
tiles = self.engine.step(self.snap, time.time())
|
||||
self.assertEqual((tiles["dante"]["x"], level(tiles["dante"])), ("DANTE\nFIX FAILED\nDVS", "failed"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user