chore: move CameraView logic to itself

This commit is contained in:
2026-01-23 08:42:58 +03:00
parent 8896629ce2
commit d4e7c300f4
8 changed files with 100 additions and 139 deletions
+17 -17
View File
@@ -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;
}
}