using System; using System.Collections.Generic; using Crestron.SimplSharpPro.DM; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using PepperDash.Core; using PepperDash.Essentials.Core; using PepperDash.Essentials.DM.Cards; namespace PepperDash.Essentials.DM.Config { /// /// Represents the "properties" property of a DM device config /// public class DMChassisPropertiesConfig { [JsonProperty("control")] public ControlPropertiesConfig Control { get; set; } /// /// The available volume controls /// [JsonProperty("volumeControls")] public Dictionary VolumeControls { get; set; } /// /// The input cards /// [JsonProperty("inputSlots")] public Dictionary InputSlots { get; set; } /// /// The output cards (each card represents a pair of outputs) /// [JsonProperty("outputSlots")] public Dictionary OutputSlots { get; set; } /// /// The names of the Inputs /// [JsonProperty("inputNames")] public Dictionary InputNames { get; set; } /// /// The names of the Outputs /// [JsonProperty("outputNames")] public Dictionary OutputNames { get; set; } /// /// The string to use when no route is set for a given output /// [JsonProperty("noRouteText")] public string NoRouteText { get; set; } [JsonProperty("inputSlotSupportsHdcp2")] public Dictionary InputSlotSupportsHdcp2 { get; set; } public DMChassisPropertiesConfig() { InputSlotSupportsHdcp2 = new Dictionary(); } } /// /// /// public class DmCardAudioPropertiesConfig { /// /// The level to set on the output /// [JsonProperty("outLevel")] public int OutLevel { get; set; } /// /// Defines if this level is adjustable or not /// [JsonProperty("isVolumeControlPoint")] public bool IsVolumeControlPoint { get; set; } } }