/// <summary> /// The <see cref="VariablePhotoSequenceCapture.Stopped"/> event handler. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event data.</param> private void PhotoSequenceOnStopped(VariablePhotoSequenceCapture sender, object e) { this.photoSequence.PhotoCaptured -= this.PhotoSequenceOnPhotoCaptured; this.photoSequence.Stopped -= this.PhotoSequenceOnStopped; this.started = false; this.NotifyStopped(); }
/// <summary> /// The <see cref="VariablePhotoSequenceCapture.PhotoCaptured"/> event handler. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">The <see cref="VariablePhotoCapturedEventArgs"/> instance containing the event data.</param> private void PhotoSequenceOnPhotoCaptured(VariablePhotoSequenceCapture sender, VariablePhotoCapturedEventArgs e) { Tracing.Trace("VariablePhotoCapture: Photo captured. Time offset: {0}, frame index: {1}", e.CaptureTimeOffset, e.UsedFrameControllerIndex); EventHandler <CapturedFrame> handler = this.PhotoCaptured; if (handler != null) { handler.Invoke(this, e.Frame); } }
/// <summary> /// Initializes the photo capture on the current camera device. /// </summary> /// <param name="parameters">Capture parameters.</param> /// <returns>Awaitable task.</returns> /// <exception cref="ArgumentNullException"> /// <paramref name="parameters"/> is <see langword="null"/>. /// <para>-or-</para> /// Image encoding is not set in the <paramref name="parameters"/>. /// </exception> /// <exception cref="InvalidOperationException">Photo sequence is already initialized.</exception> public override async Task InitializeAsync(CaptureParameters parameters) { if (parameters == null || parameters.ImageEncoding == null) { throw new ArgumentNullException("parameters"); } if (this.photoSequence != null) { throw new InvalidOperationException("Variable photo capture is already initialized."); } this.UpdateCameraSettings(parameters); this.photoSequence = await this.CameraController.MediaCapture.PrepareVariablePhotoSequenceCaptureAsync(parameters.ImageEncoding); }
/// <summary> /// Unloads the internal sequence objects. /// </summary> /// <returns>Awaitable task.</returns> public override async Task UnloadAsync() { if (this.photoSequence == null) { return; } await this.StopAsync(); try { await this.photoSequence.FinishAsync(); } catch (Exception e) { Tracing.Trace("VariablePhotoCapture: Exception while finishing capture:\r\n{0}", e); } this.photoSequence = null; }
/// <summary> /// Initializes the photo capture on the current camera device. /// </summary> /// <param name="parameters">Capture parameters.</param> /// <returns>Awaitable task.</returns> /// <exception cref="ArgumentNullException"> /// <paramref name="parameters"/> is <see langword="null"/>. /// <para>-or-</para> /// Image encoding is not set in the <paramref name="parameters"/>. /// </exception> /// <exception cref="InvalidOperationException">Photo sequence is already initialized.</exception> public override async Task InitializeAsync(CaptureParameters parameters) { if (parameters == null || parameters.ImageEncoding == null) { throw new ArgumentNullException("parameters"); } if (this.photoSequence != null) { throw new InvalidOperationException("Variable photo capture is already initialized."); } this.UpdateCameraSettings(parameters); this.photoSequence = await this.CameraController.MediaCapture.PrepareVariablePhotoSequenceCaptureAsync(parameters.ImageEncoding); }
/// <summary> /// The <see cref="VariablePhotoSequenceCapture.Stopped"/> event handler. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event data.</param> private void PhotoSequenceOnStopped(VariablePhotoSequenceCapture sender, object e) { this.photoSequence.PhotoCaptured -= this.PhotoSequenceOnPhotoCaptured; this.photoSequence.Stopped -= this.PhotoSequenceOnStopped; this.started = false; this.NotifyStopped(); }
/// <summary> /// The <see cref="VariablePhotoSequenceCapture.PhotoCaptured"/> event handler. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">The <see cref="VariablePhotoCapturedEventArgs"/> instance containing the event data.</param> private void PhotoSequenceOnPhotoCaptured(VariablePhotoSequenceCapture sender, VariablePhotoCapturedEventArgs e) { Tracing.Trace("VariablePhotoCapture: Photo captured. Time offset: {0}, frame index: {1}", e.CaptureTimeOffset, e.UsedFrameControllerIndex); EventHandler<CapturedFrame> handler = this.PhotoCaptured; if (handler != null) { handler.Invoke(this, e.Frame); } }
/// <summary> /// Unloads the internal sequence objects. /// </summary> /// <returns>Awaitable task.</returns> public override async Task UnloadAsync() { if (this.photoSequence == null) { return; } await this.StopAsync(); try { await this.photoSequence.FinishAsync(); } catch (Exception e) { Tracing.Trace("VariablePhotoCapture: Exception while finishing capture:\r\n{0}", e); } this.photoSequence = null; }
public VariablePhotoSequenceCaptureEvents(VariablePhotoSequenceCapture This) { this.This = This; }