forked from amkovkov/GranuSightSoftware2
chore: move CameraView logic to itself
This commit is contained in:
@@ -1,32 +1,32 @@
|
||||
using GSS2.Core.Hardware;
|
||||
|
||||
using LibCameraSharp;
|
||||
|
||||
namespace GSS2.Test;
|
||||
|
||||
public class CameraViewModel : ViewModelBase
|
||||
{
|
||||
public class UpdateEventArgs : EventArgs
|
||||
{
|
||||
public FrameBuffer? FrameBuffer { get; }
|
||||
public StreamConfiguration? StreamConfiguration { get; }
|
||||
|
||||
public UpdateEventArgs(FrameBuffer? frameBuffer = null, StreamConfiguration? streamConfiguration = null)
|
||||
{
|
||||
FrameBuffer = frameBuffer;
|
||||
StreamConfiguration = streamConfiguration;
|
||||
}
|
||||
}
|
||||
private readonly CameraService _cameraService;
|
||||
private readonly ILogger<CameraViewModel> _logger;
|
||||
|
||||
public event EventHandler<UpdateEventArgs>? Update;
|
||||
|
||||
public CameraViewModel(ILogger<CameraViewModel> logger)
|
||||
public CameraViewModel(CameraService cameraService, ILogger<CameraViewModel> logger)
|
||||
{
|
||||
_cameraService = cameraService;
|
||||
_logger = logger;
|
||||
_logger.LogInformation("Initialized");
|
||||
}
|
||||
|
||||
public void CallUpdate(FrameBuffer? frameBuffer = null, StreamConfiguration? streamConfiguration = null)
|
||||
public async Task<(FrameBuffer, StreamConfiguration)?> CaptureImage(int bufferId)
|
||||
{
|
||||
Update?.Invoke(this, new UpdateEventArgs(frameBuffer, streamConfiguration));
|
||||
(FrameBuffer, StreamConfiguration)? result = null;
|
||||
try
|
||||
{
|
||||
result = await _cameraService.CaptureViewFinderBuffer(bufferId, CancellationToken.None);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Error while image capture");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user