/// <param name="device">The camera device to access</param>
public Camera(CameraDevice device)
{
- CameraErrorFactory.ThrowIfError(Native.Create((int)device, out _handle),
+ CameraErrorFactory.ThrowIfError(Native.Create(device, out _handle),
"Failed to create camera instance");
Feature = new CameraFeatures(this);
{
return _display;
}
+
set
{
ValidateState(CameraState.Created);
CameraError IDisplayable<CameraError>.ApplyEvasDisplay(DisplayType type, ElmSharp.EvasObject evasObject)
{
Debug.Assert(_disposed == false);
-
- Debug.Assert(Enum.IsDefined(typeof(DisplayType), type));
+ ValidationUtil.ValidateEnum(typeof(DisplayType), type, nameof(type));
return CameraDisplay.SetTarget(GetHandle(), type, evasObject);
}
/// If display reuse is set using <see cref="DisplayReuseHint"/>
/// before stopping the preview, the display will be reused and last frame on the display
/// can be kept even though camera device is changed.
- /// The camera must be in the <see cref="CameraState.Created"/> or <see cref="CameraState.Preview"/> state.
+ /// The camera must be in the <see cref="CameraState.Created"/>.
/// </remarks>
/// <exception cref="ArgumentException">In case of invalid parameters.</exception>
/// <exception cref="InvalidOperationException">In case of any invalid operations.</exception>
/// <exception cref="ObjectDisposedException">The camera already has been disposed.</exception>
public void ChangeDevice(CameraDevice device)
{
- ValidateState(CameraState.Created, CameraState.Preview);
+ ValidateState(CameraState.Created);
+ ValidationUtil.ValidateEnum(typeof(CameraDevice), device, nameof(device));
CameraErrorFactory.ThrowIfError(Native.ChangeDevice(_handle, (int)device),
"Failed to change the camera device");
public CameraDeviceState GetDeviceState(CameraDevice device)
{
int val = 0;
+ ValidationUtil.ValidateEnum(typeof(CameraDevice), device, nameof(device));
CameraErrorFactory.ThrowIfError(Native.GetDeviceState(device, out val),
"Failed to get the camera device state.");
public static CameraFlashState GetFlashState(CameraDevice device)
{
CameraFlashState val = CameraFlashState.NotUsed;
+ ValidationUtil.ValidateEnum(typeof(CameraDevice), device, nameof(device));
CameraErrorFactory.ThrowIfError(Native.GetFlashState(device, out val),
"Failed to get camera flash state");
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraAutoFocusMode), value);
CameraErrorFactory.ThrowIfError(Native.SetAutoFocusMode(_camera.GetHandle(), value),
"Failed to set camera autofocus mode.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraExposureMode), value);
CameraErrorFactory.ThrowIfError(Native.SetExposureMode(_camera.GetHandle(), value),
"Failed to set camera exposure mode.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraWhiteBalance), value);
CameraErrorFactory.ThrowIfError(Native.SetWhitebalance(_camera.GetHandle(), value),
"Failed to set camera whitebalance.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraIsoLevel), value);
CameraErrorFactory.ThrowIfError(Native.SetIso(_camera.GetHandle(), value),
"Failed to set camera Iso level.");
}
set
{
+ if (value < 1 || value > 100)
+ {
+ throw new ArgumentException("Valid value is from 1(lowest quality) to 100(highest quality)");
+ }
+
CameraErrorFactory.ThrowIfError(Native.SetImageQuality(_camera.GetHandle(), value),
"Failed to set image quality.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraFps), value);
CameraErrorFactory.ThrowIfError(Native.SetPreviewFps(_camera.GetHandle(), value),
"Failed to set preview fps.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraPixelFormat), value);
CameraErrorFactory.ThrowIfError(SetPreviewPixelFormat(_camera.GetHandle(), value),
"Failed to set preview format.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraPixelFormat), value);
CameraErrorFactory.ThrowIfError(SetCaptureFormat(_camera.GetHandle(), value),
"Failed to set capture format.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraTheaterMode), value);
CameraErrorFactory.ThrowIfError(Native.SetTheaterMode(_camera.GetHandle(), value),
"Failed to set camera theater mode.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraEffectMode), value);
CameraErrorFactory.ThrowIfError(Native.SetEffect(_camera.GetHandle(), value),
"Failed to set camera effect.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraSceneMode), value);
CameraErrorFactory.ThrowIfError(Native.SetSceneMode(_camera.GetHandle(), value),
"Failed to set camera scene mode.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraFlashMode), value);
CameraErrorFactory.ThrowIfError(Native.SetFlashMode(_camera.GetHandle(), value),
"Failed to set camera flash mode.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraRotation), value);
CameraErrorFactory.ThrowIfError(Native.SetStreamRotation(_camera.GetHandle(), value),
"Failed to set camera stream rotation.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraFlip), value);
CameraErrorFactory.ThrowIfError(Native.SetFlip(_camera.GetHandle(), value),
"Failed to set camera flip.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraHdrMode), value);
CameraErrorFactory.ThrowIfError(Native.SetHdrMode(_camera.GetHandle(), value),
"Failed to set camera hdr mode.");
}
{
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraPtzType), value);
CameraErrorFactory.ThrowIfError(Native.SetPtzType(_camera.GetHandle(), (int)value),
"Failed to set camera ptz type.");
}
/// <exception cref="ObjectDisposedException">The camera already has been disposed.</exception>
public void SetPan(CameraPtzMoveType type, int panStep)
{
+ ValidationUtil.ValidateEnum(typeof(CameraPtzMoveType), type, nameof(type));
CameraErrorFactory.ThrowIfError(Native.SetPan(_camera.GetHandle(), type, panStep),
"Failed to set the camera pan type.");
}
/// <exception cref="ObjectDisposedException">The camera already has been disposed.</exception>
public void SetTilt(CameraPtzMoveType type, int tiltStep)
{
+ ValidationUtil.ValidateEnum(typeof(CameraPtzMoveType), type, nameof(type));
CameraErrorFactory.ThrowIfError(Native.SetTilt(_camera.GetHandle(), type, tiltStep),
"Failed to set the camera tilt type\t.");
}
set
{
+ ValidationUtil.ValidateEnum(typeof(CameraTagOrientation), value);
CameraErrorFactory.ThrowIfError(Native.SetTagOrientation(_camera.GetHandle(), value),
"Failed to set camera tag orientation.");
}