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}",