using PepperDash.Core;
using PepperDash.Essentials.Core;
using System;
using System.Collections.Generic;
namespace PepperDash.Essentials.Devices.Common.Cameras
{
///
/// Interface for devices that have cameras with controls
///
public interface IHasCamerasWithControls : IKeyName, IKeyed
{
///
/// List of cameras on the device. This should be a list of IHasCameraControls objects
///
List Cameras { get; }
///
/// The currently selected camera. This should be an IHasCameraControls object
///
IHasCameraControls SelectedCamera { get; }
///
/// Feedback that indicates the currently selected camera
///
StringFeedback SelectedCameraFeedback { get; }
///
/// Event that is raised when a camera is selected
///
event EventHandler> CameraSelected;
///
/// Selects a camera from the list of available cameras based on the provided key.
///
///
void SelectCamera(string key);
}
}