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; }
}
}