using Newtonsoft.Json; using PepperDash.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PepperDash.Essentials.Devices.Common.Cameras { /// /// Interface for camera capabilities /// public interface ICameraCapabilities: IKeyName { /// /// Indicates whether the camera can pan /// [JsonProperty("canPan", NullValueHandling = NullValueHandling.Ignore)] bool CanPan { get; } /// /// Indicates whether the camera can tilt /// [JsonProperty("canTilt", NullValueHandling = NullValueHandling.Ignore)] bool CanTilt { get; } /// /// Indicates whether the camera can zoom /// [JsonProperty("canZoom", NullValueHandling = NullValueHandling.Ignore)] bool CanZoom { get; } /// /// Indicates whether the camera can focus /// [JsonProperty("canFocus", NullValueHandling = NullValueHandling.Ignore)] bool CanFocus { get; } } /// /// Indicates the capabilities of a camera /// public class CameraCapabilities : ICameraCapabilities { /// /// Unique Key /// [JsonProperty("key", NullValueHandling = NullValueHandling.Ignore)] public string Key { get; set; } /// /// Isn't it obvious :) /// [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Indicates whether the camera can pan /// [JsonProperty("canPan", NullValueHandling = NullValueHandling.Ignore)] public bool CanPan { get; set; } /// /// Indicates whether the camera can tilt /// [JsonProperty("canTilt", NullValueHandling = NullValueHandling.Ignore)] public bool CanTilt { get; set; } /// /// Indicates whether the camera can zoom /// [JsonProperty("canZoom", NullValueHandling = NullValueHandling.Ignore)] public bool CanZoom { get; set; } /// /// Indicates whether the camera can focus /// [JsonProperty("canFocus", NullValueHandling = NullValueHandling.Ignore)] public bool CanFocus { get; set; } } }