using Newtonsoft.Json; using PepperDash.Core; /// /// Config properties for an IEssentialsRoomFusionController device /// public class IEssentialsRoomFusionControllerPropertiesConfig { /// /// Gets or sets the IP ID of the Fusion Room Controller /// [JsonProperty("ipId")] public string IpId { get; set; } /// /// Gets the IP ID as a UInt16 /// [JsonIgnore] public uint IpIdInt { get { // Try to parse the IpId string to UInt16 as hex if (ushort.TryParse(IpId, System.Globalization.NumberStyles.HexNumber, null, out ushort result)) { return result; } else { Debug.LogWarning("Failed to parse IpId '{0}' as UInt16", IpId); return 0; } } } /// /// Gets or sets the join map key /// [JsonProperty("joinMapKey")] public string JoinMapKey { get; set; } /// /// Gets or sets the room key associated with this Fusion Room Controller /// [JsonProperty("roomKey")] public string RoomKey { get; set; } /// /// Gets or sets whether to use the Fusion room name for this room /// /// Defaults to true to preserve current behavior. Set to false to skip updating the room name from Fusion [JsonProperty("useFusionRoomName")] public bool UseFusionRoomName { get; set; } = true; /// /// Gets or sets whether to use HTML format for help requests /// [JsonProperty("useHtmlFormatForHelpRequests")] public bool UseHtmlFormatForHelpRequests { get; set; } = false; /// /// Gets or sets whether to use 24-hour time format /// [JsonProperty("use24HourTimeFormat")] public bool Use24HourTimeFormat { get; set; } = false; /// /// Gets or sets whether to use a timeout for help requests /// [JsonProperty("useTimeoutForHelpRequests")] public bool UseTimeoutForHelpRequests { get; set; } = false; /// /// Gets or sets the timeout duration for help requests in milliseconds /// [JsonProperty("helpRequestTimeoutMs")] public int HelpRequestTimeoutMs { get; set; } = 30000; }