Remotely/Desktop.Shared/Abstractions/IScreenCapturer.cs
2024-07-16 09:11:32 -07:00

30 lines
679 B
C#

using Remotely.Shared.Primitives;
using SkiaSharp;
using System.Drawing;
namespace Immense.RemoteControl.Desktop.Shared.Abstractions;
public interface IScreenCapturer : IDisposable
{
event EventHandler<Rectangle> ScreenChanged;
bool CaptureFullscreen { get; set; }
Rectangle CurrentScreenBounds { get; }
bool IsGpuAccelerated { get; }
string SelectedScreen { get; }
IEnumerable<string> GetDisplayNames();
SKRect GetFrameDiffArea();
Result<SKBitmap> GetImageDiff();
Result<SKBitmap> GetNextFrame();
int GetScreenCount();
Rectangle GetVirtualScreenBounds();
void Init();
void SetSelectedScreen(string displayName);
}