From a6f63f56f31535411798acf65d13082269385878 Mon Sep 17 00:00:00 2001 From: gramps Date: Fri, 30 Oct 2026 13:16:19 -0700 Subject: [PATCH] =?UTF-8?q?feat(dock):=20the=20LIP-SYNC=20bay=20=E2=80=94?= =?UTF-8?q?=20offset,=20readout,=20zero=20detent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unit 8. Re-houses the shipped TASK 22 offset in the dock: - slider −200…+200 ms, snapping to 5 ms ticks (the existing property still clamps and persists) - readable readout: "0 ms (aligned)" when right, signed otherwise ("+50 ms", "−120 ms") - presets 0 / +50 / +100; 0 IS the detent — a button is easier to hit than a snap, and "the lip-sync is right" deserves one click. Guard: SyncBayTests pins the binding, the readout, the presets and the snapping, and that the offset stays the persisted property (no second source of truth). --- Controls/AudioDock.xaml | 40 +++++++++++++++++++++++++++---- Controls/AudioDock.xaml.cs | 7 ++++++ ViewModels/MainViewModel.Audio.cs | 14 +++++++++-- ytLive.Tests/SyncBayTests.cs | 30 +++++++++++++++++++++++ 4 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 ytLive.Tests/SyncBayTests.cs diff --git a/Controls/AudioDock.xaml b/Controls/AudioDock.xaml index 049adb2..40ae1af 100644 --- a/Controls/AudioDock.xaml +++ b/Controls/AudioDock.xaml @@ -170,10 +170,42 @@ - - - - + + + + + + + + + + + + + + + + + + + + + +