From 65d3b78e6388d8910ea370c33fd9936544637e1f Mon Sep 17 00:00:00 2001 From: Zac Gaetano Date: Sun, 10 May 2026 14:06:27 -0400 Subject: [PATCH] Footer surfaces full LAN URL when control surface is LAN-reachable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When LAN-reachable mode is on, the footer's control-surface badge now shows the full http://: instead of just :. Operators setting up a thin client can read the URL straight off the host PC's footer without having to open Settings → DISPLAY → Copy URL. Reverts to the existing 'REST :9755 + OSC :9000' compact form when bound to localhost only — no point spelling out 127.0.0.1 since by definition only the host can reach it. --- src/TeamsISO.App/ViewModels/MainViewModel.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/TeamsISO.App/ViewModels/MainViewModel.cs b/src/TeamsISO.App/ViewModels/MainViewModel.cs index 2ca6473..239956c 100644 --- a/src/TeamsISO.App/ViewModels/MainViewModel.cs +++ b/src/TeamsISO.App/ViewModels/MainViewModel.cs @@ -545,8 +545,17 @@ public sealed class MainViewModel : ObservableObject, IDisposable var rest = app?.ControlSurface?.IsRunning ?? false; var osc = app?.OscBridge?.IsRunning ?? false; IsControlSurfaceRunning = rest || osc; + // When LAN-reachable mode is on, the footer text shows the routable + // URL instead of just the port — operators setting up a thin client + // shouldn't have to open Settings to find what to type into a + // browser. We trust the Settings VM's ControlSurfaceLanReachable + // boolean since that's where the toggle is persisted. + var lanMode = rest && (app?.ControlSurface?.BoundToLan ?? false); + var lanHost = lanMode ? Settings.ControlSurfaceUrl.Replace("/ui", "") : null; ControlSurfaceText = (rest, osc) switch { + (true, true) when lanMode => $"{lanHost} + OSC :{app!.OscBridge!.Port}", + (true, false) when lanMode => lanHost!, (true, true) => $"REST :{app!.ControlSurface!.Port} + OSC :{app.OscBridge!.Port}", (true, false) => $"REST :{app!.ControlSurface!.Port}", (false, true) => $"OSC :{app!.OscBridge!.Port}",