mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-11 19:44:52 +00:00
- Introduced `ICameraCapabilities` interface and `CameraCapabilities` class for defining camera features like pan, tilt, zoom, and focus. - Modified `IHasCameras` interface to include a list of `IHasCameraControls` objects for improved camera management. - Refactored `CameraBaseMessenger` to be generic, enhancing flexibility and type safety. - Updated `SendCameraFullMessageObject` to include detailed camera capabilities in status messages. - Added `CameraStateMessage` class to encapsulate camera state, including control support and capabilities. - Updated `IHasCamerasWithControlMessenger` to use `IKeyName` for camera list and selected camera properties, improving type consistency. - Enhanced `MobileControlSystemController` to manage devices implementing `IHasCameraControls`, creating appropriate messengers for different device types.
41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using PepperDash.Core;
|
|
using PepperDash.Essentials.Core;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace PepperDash.Essentials.Devices.Common.Cameras
|
|
{
|
|
/// <summary>
|
|
/// Interface for devices that have cameras with controls
|
|
/// </summary>
|
|
public interface IHasCamerasWithControls : IKeyName, IKeyed
|
|
{
|
|
/// <summary>
|
|
/// List of cameras on the device. This should be a list of IHasCameraControls objects
|
|
/// </summary>
|
|
|
|
List<IHasCameraControls> Cameras { get; }
|
|
|
|
/// <summary>
|
|
/// The currently selected camera. This should be an IHasCameraControls object
|
|
/// </summary>
|
|
IHasCameraControls SelectedCamera { get; }
|
|
|
|
/// <summary>
|
|
/// Feedback that indicates the currently selected camera
|
|
/// </summary>
|
|
StringFeedback SelectedCameraFeedback { get; }
|
|
|
|
/// <summary>
|
|
/// Event that is raised when a camera is selected
|
|
/// </summary>
|
|
event EventHandler<CameraSelectedEventArgs<IHasCameraControls>> CameraSelected;
|
|
|
|
/// <summary>
|
|
/// Selects a camera from the list of available cameras based on the provided key.
|
|
/// </summary>
|
|
/// <param name="key"></param>
|
|
void SelectCamera(string key);
|
|
}
|
|
}
|