aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.RemoteDesktop/IScreenCaptureEngine.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-02 23:30:34 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-02 23:30:34 +0200
commit0dcd742a3c35527386a93e1b1ef761c2aeff8308 (patch)
treed5adb3fee35e73af95fa5d68b5316d25522471de /Software/Visual_Studio/Tango.RemoteDesktop/IScreenCaptureEngine.cs
parent1a7fb274158f8a0e279aef26206a65fefac8c4c3 (diff)
downloadTango-0dcd742a3c35527386a93e1b1ef761c2aeff8308.tar.gz
Tango-0dcd742a3c35527386a93e1b1ef761c2aeff8308.zip
Implemented Tango.RemoteDesktop.
Implemented png 8 bit quantization. Implemented RasterFrame bounds clipping. Refactored VectorFrame to use indexed colors.
Diffstat (limited to 'Software/Visual_Studio/Tango.RemoteDesktop/IScreenCaptureEngine.cs')
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/IScreenCaptureEngine.cs73
1 files changed, 73 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/IScreenCaptureEngine.cs b/Software/Visual_Studio/Tango.RemoteDesktop/IScreenCaptureEngine.cs
new file mode 100644
index 000000000..6b5db2fbe
--- /dev/null
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/IScreenCaptureEngine.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.RemoteDesktop
+{
+ /// <summary>
+ /// Represents a screen capture engine.
+ /// </summary>
+ /// <seealso cref="System.IDisposable" />
+ public interface IScreenCaptureEngine : IDisposable
+ {
+ /// <summary>
+ /// Gets or sets the screen capture method.
+ /// </summary>
+ ICaptureMethod CaptureMethod { get; set; }
+
+ /// <summary>
+ /// Gets or sets the screen capture region.
+ /// </summary>
+ CaptureRegion CaptureRegion { get; set; }
+
+ /// <summary>
+ /// Gets a value indicating whether this instance is currently capturing.
+ /// </summary>
+ bool IsStarted { get; }
+
+ /// <summary>
+ /// Gets or sets the frame rate per second.
+ /// </summary>
+ int FrameRate { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether to include the cursor when capturing.
+ /// </summary>
+ bool CaptureCursor { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether to enable image comparison.
+ /// </summary>
+ bool EnableComparer { get; set; }
+
+ /// <summary>
+ /// Start capturing.
+ /// </summary>
+ void Start();
+
+ /// <summary>
+ /// Stop capturing.
+ /// </summary>
+ void Stop();
+ }
+
+ /// <summary>
+ /// Represents a screen capture engine.
+ /// </summary>
+ /// <typeparam name="TFrame">The type of the frame.</typeparam>
+ /// <seealso cref="System.IDisposable" />
+ public interface IScreenCaptureEngine<TFrame> : IScreenCaptureEngine where TFrame : IFrame
+ {
+ /// <summary>
+ /// Occurs when a new screen frame is available.
+ /// </summary>
+ event EventHandler<ScreenCaptureFrameReceivedEventArgs<TFrame>> FrameReceived;
+
+ /// <summary>
+ /// Gets or sets the bitmap comparer.
+ /// </summary>
+ IBitmapComparer<TFrame> Comparer { get; set; }
+ }
+}