namespace CMM.Library.ViewModel; /// /// Configuration for a single monitor's ports /// public class MonitorConfig { public string SerialNumber { get; set; } = string.Empty; public string MonitorName { get; set; } = string.Empty; public List Ports { get; set; } = new(); } /// /// Configuration for a single input port /// public class PortConfig { public int VcpValue { get; set; } public string DefaultName { get; set; } = string.Empty; public string CustomLabel { get; set; } = string.Empty; public bool IsHidden { get; set; } public bool ShowInQuickSwitch { get; set; } public string DisplayName => string.IsNullOrWhiteSpace(CustomLabel) ? DefaultName : CustomLabel; } /// /// Quick switch item shown in toolbar /// public class QuickSwitchItem { public string MonitorSerialNumber { get; set; } = string.Empty; public string MonitorName { get; set; } = string.Empty; public int PortVcpValue { get; set; } public string PortLabel { get; set; } = string.Empty; } /// /// Root configuration object /// public class AppConfig { public List Monitors { get; set; } = new(); }