more moving things

This commit is contained in:
Andrew Welker
2020-11-19 10:57:08 -07:00
parent 63bd25c0e1
commit 8821bffee7

View File

@@ -1,150 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using PepperDash.Essentials.Core;
namespace PepperDash.Essentials.Devices.Common.Cameras
{
public enum eCameraControlMode
{
Manual = 0,
Off,
Auto
}
public interface IHasCameras
{
event EventHandler<CameraSelectedEventArgs> CameraSelected;
List<CameraBase> Cameras { get; }
CameraBase SelectedCamera { get; }
StringFeedback SelectedCameraFeedback { get; }
void SelectCamera(string key);
}
/// <summary>
/// Aggregates far end cameras with near end cameras
/// </summary>
public interface IHasCodecCameras : IHasCameras, IHasFarEndCameraControl
{
}
/// <summary>
/// To be implmented on codecs that can disable their camera(s) to blank the near end video
/// </summary>
public interface IHasCameraOff
{
BoolFeedback CameraIsOffFeedback { get; }
void CameraOff();
}
public class CameraSelectedEventArgs : EventArgs
{
public CameraBase SelectedCamera { get; private set; }
public CameraSelectedEventArgs(CameraBase camera)
{
SelectedCamera = camera;
}
}
public interface IHasFarEndCameraControl
{
CameraBase FarEndCamera { get; }
BoolFeedback ControllingFarEndCameraFeedback { get; }
}
/// <summary>
/// Used to decorate a camera as a far end
/// </summary>
public interface IAmFarEndCamera
{
}
public interface IHasCameraControls
{
}
/// <summary>
/// Aggregates the pan, tilt and zoom interfaces
/// </summary>
public interface IHasCameraPtzControl : IHasCameraPanControl, IHasCameraTiltControl, IHasCameraZoomControl
{
/// <summary>
/// Resets the camera position
/// </summary>
void PositionHome();
}
/// <summary>
/// Interface for camera pan control
/// </summary>
public interface IHasCameraPanControl : IHasCameraControls
{
void PanLeft();
void PanRight();
void PanStop();
}
/// <summary>
/// Interface for camera tilt control
/// </summary>
public interface IHasCameraTiltControl : IHasCameraControls
{
void TiltDown();
void TiltUp();
void TiltStop();
}
/// <summary>
/// Interface for camera zoom control
/// </summary>
public interface IHasCameraZoomControl : IHasCameraControls
{
void ZoomIn();
void ZoomOut();
void ZoomStop();
}
/// <summary>
/// Interface for camera focus control
/// </summary>
public interface IHasCameraFocusControl : IHasCameraControls
{
void FocusNear();
void FocusFar();
void FocusStop();
void TriggerAutoFocus();
}
public interface IHasAutoFocusMode
{
void SetFocusModeAuto();
void SetFocusModeManual();
void ToggleFocusMode();
}
public interface IHasCameraAutoMode : IHasCameraControls
{
void CameraAutoModeOn();
void CameraAutoModeOff();
void CameraAutoModeToggle();
BoolFeedback CameraAutoModeIsOnFeedback { get; }
}
}