Shared Clipboard
diff --git a/Server/wwwroot/src/RemoteControl/App.ts b/Server/wwwroot/src/RemoteControl/App.ts
index 1bc99767..eca9bf47 100644
--- a/Server/wwwroot/src/RemoteControl/App.ts
+++ b/Server/wwwroot/src/RemoteControl/App.ts
@@ -31,9 +31,6 @@ export const ViewerApp = {
Settings: GetSettings(),
Init: () => {
- UI.AutoQualityAdjustCheckBox.checked = ViewerApp.Settings.autoQualityEnabled;
- UI.QualitySlider.value = String(ViewerApp.Settings.qualityLevel);
-
if (ViewerApp.ViewOnlyMode) {
UI.ViewOnlyButton.classList.add("toggled");
}
diff --git a/Server/wwwroot/src/RemoteControl/DtoMessageHandler.ts b/Server/wwwroot/src/RemoteControl/DtoMessageHandler.ts
index 260932d5..8253f8a1 100644
--- a/Server/wwwroot/src/RemoteControl/DtoMessageHandler.ts
+++ b/Server/wwwroot/src/RemoteControl/DtoMessageHandler.ts
@@ -60,10 +60,6 @@ export class DtoMessageHandler {
}
HandleCaptureFrame(captureFrame: CaptureFrameDto) {
- if (UI.AutoQualityAdjustCheckBox.checked &&
- Number(UI.QualitySlider.value) != captureFrame.ImageQuality) {
- UI.QualitySlider.value = String(captureFrame.ImageQuality);
- }
if (captureFrame.EndOfFrame) {
let completedFrame = new Blob(this.ImagePartials, { type: "image/jpeg" });
@@ -114,8 +110,6 @@ export class DtoMessageHandler {
}
HandleScreenData(screenDataDto: ScreenDataDto) {
UI.UpdateDisplays(screenDataDto.SelectedScreen, screenDataDto.DisplayNames);
- ViewerApp.MessageSender.SendAutoQualityAdjust(ViewerApp.Settings.autoQualityEnabled);
- ViewerApp.MessageSender.SendQualityChange(ViewerApp.Settings.qualityLevel);
}
HandleScreenSize(screenSizeDto: ScreenSizeDto) {
diff --git a/Server/wwwroot/src/RemoteControl/InputEventHandlers.ts b/Server/wwwroot/src/RemoteControl/InputEventHandlers.ts
index 1b5481ce..5b62dbfa 100644
--- a/Server/wwwroot/src/RemoteControl/InputEventHandlers.ts
+++ b/Server/wwwroot/src/RemoteControl/InputEventHandlers.ts
@@ -19,10 +19,6 @@
TouchKeyboardTextArea,
MenuFrame,
MenuButton,
- QualityButton,
- QualityBar,
- QualitySlider,
- AutoQualityAdjustCheckBox,
ScreenViewerWrapper,
WindowsSessionSelect,
RecordSessionButton,
@@ -219,18 +215,6 @@ export function ApplyInputHandlers() {
ev.stopPropagation();
MenuButton.style.top = `${ev.touches[0].clientY}px`;
});
- QualityButton.addEventListener("click", (ev) => {
- closeAllHorizontalBars("qualityBar");
- QualityBar.classList.toggle("open");
- })
- QualitySlider.addEventListener("change", (ev) => {
- var value = Number(QualitySlider.value);
-
- ViewerApp.Settings.qualityLevel = value;
- SetSettings(ViewerApp.Settings);
-
- ViewerApp.MessageSender.SendQualityChange(value);
- });
StreamVideoButton.addEventListener("click", (ev) => {
var toggleOn = !StreamVideoButton.classList.contains("toggled");
@@ -240,14 +224,6 @@ export function ApplyInputHandlers() {
UpdateStreamingToggled(toggleOn);
ViewerApp.MessageSender.SendToggleWebRtcVideo(toggleOn);
});
- AutoQualityAdjustCheckBox.addEventListener("change", ev => {
- var checked = AutoQualityAdjustCheckBox.checked;
-
- ViewerApp.Settings.autoQualityEnabled = checked;
- SetSettings(ViewerApp.Settings);
-
- ViewerApp.MessageSender.SendAutoQualityAdjust(checked);
- });
[ ScreenViewer, VideoScreenViewer ].forEach(viewer => {
viewer.addEventListener("pointermove", function (e: PointerEvent) {
diff --git a/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.ts b/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.ts
index ff6a9553..38e2a042 100644
--- a/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.ts
+++ b/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.ts
@@ -2,15 +2,6 @@ import { BaseDto } from "./BaseDto.js";
import { BaseDtoType } from "../../Shared/Enums/BaseDtoType.js";
import { WindowsSession } from "../../Shared/Models/WindowsSession.js";
-export class AutoQualityAdjustDto implements BaseDto {
- constructor(isOn: boolean) {
- this.IsOn = isOn;
- }
-
- IsOn: boolean;
- DtoType: BaseDtoType = BaseDtoType.AutoQualityAdjust;
-}
-
export interface AudioSampleDto extends BaseDto {
Buffer: Uint8Array;
@@ -23,7 +14,6 @@ export interface CaptureFrameDto extends BaseDto {
Width: number;
Height: number;
ImageBytes: Uint8Array;
- ImageQuality: number;
}
export interface ClipboardTextDto extends BaseDto {
@@ -163,15 +153,6 @@ export class MouseWheelDto implements BaseDto {
DtoType: BaseDtoType = BaseDtoType.MouseWheel;
}
-export class QualityChangeDto implements BaseDto {
- constructor(qualityLevel: number) {
- this.QualityLevel = qualityLevel;
- }
-
- QualityLevel: number;
- DtoType: BaseDtoType = BaseDtoType.QualityChange;
-}
-
export interface ScreenDataDto extends BaseDto {
DisplayNames: string[];
SelectedScreen: string;
diff --git a/Server/wwwroot/src/RemoteControl/Interfaces/Settings.ts b/Server/wwwroot/src/RemoteControl/Interfaces/Settings.ts
index a4817659..7156612c 100644
--- a/Server/wwwroot/src/RemoteControl/Interfaces/Settings.ts
+++ b/Server/wwwroot/src/RemoteControl/Interfaces/Settings.ts
@@ -1,5 +1,3 @@
export interface Settings {
- autoQualityEnabled: boolean;
- qualityLevel: number;
streamModeEnabled: boolean;
}
\ No newline at end of file
diff --git a/Server/wwwroot/src/RemoteControl/MessageSender.ts b/Server/wwwroot/src/RemoteControl/MessageSender.ts
index 29b935ee..9f3b95a3 100644
--- a/Server/wwwroot/src/RemoteControl/MessageSender.ts
+++ b/Server/wwwroot/src/RemoteControl/MessageSender.ts
@@ -8,10 +8,8 @@ import {
MouseMoveDto,
MouseUpDto,
MouseWheelDto,
- QualityChangeDto,
SelectScreenDto,
TapDto,
- AutoQualityAdjustDto,
ToggleAudioDto,
ToggleBlockInputDto,
ClipboardTransferDto,
@@ -131,16 +129,6 @@ export class MessageSender {
() => ViewerApp.ViewerHubConnection.SendDtoToClient(dto));
}
- SendQualityChange(qualityLevel: number) {
- var dto = new QualityChangeDto(qualityLevel);
- this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto),
- () => ViewerApp.ViewerHubConnection.SendDtoToClient(dto));
- }
- SendAutoQualityAdjust(isOn: boolean) {
- var dto = new AutoQualityAdjustDto(isOn);
- this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto),
- () => ViewerApp.ViewerHubConnection.SendDtoToClient(dto));
- }
SendToggleAudio(toggleOn: boolean) {
var dto = new ToggleAudioDto(toggleOn);
this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto),
diff --git a/Server/wwwroot/src/RemoteControl/RtcSession.ts b/Server/wwwroot/src/RemoteControl/RtcSession.ts
index ddb686a0..6aba6b69 100644
--- a/Server/wwwroot/src/RemoteControl/RtcSession.ts
+++ b/Server/wwwroot/src/RemoteControl/RtcSession.ts
@@ -31,7 +31,6 @@ export class RtcSession {
UI.StreamVideoButton.setAttribute("hidden", "hidden");
UI.ScreenViewer.removeAttribute("hidden");
- UI.QualityButton.removeAttribute("hidden");
UI.VideoScreenViewer.setAttribute("hidden", "hidden");
};
this.DataChannel.onerror = (ev) => {
@@ -41,7 +40,6 @@ export class RtcSession {
UI.StreamVideoButton.setAttribute("hidden", "hidden");
UI.ScreenViewer.removeAttribute("hidden");
- UI.QualityButton.removeAttribute("hidden");
UI.VideoScreenViewer.setAttribute("hidden", "hidden");
};
this.DataChannel.onmessage = (ev) => {
diff --git a/Server/wwwroot/src/RemoteControl/SettingsService.ts b/Server/wwwroot/src/RemoteControl/SettingsService.ts
index 5ed2c8c4..53cf9a71 100644
--- a/Server/wwwroot/src/RemoteControl/SettingsService.ts
+++ b/Server/wwwroot/src/RemoteControl/SettingsService.ts
@@ -1,10 +1,6 @@
-import { ViewerApp } from "./App.js";
-import { Settings } from "./Interfaces/Settings.js";
-import { AutoQualityAdjustCheckBox, QualitySlider, UpdateStreamingToggled } from "./UI.js";
+import { Settings } from "./Interfaces/Settings.js";
const defaultSettings = {
- autoQualityEnabled: true,
- qualityLevel: 60,
streamModeEnabled: false
};
diff --git a/Server/wwwroot/src/RemoteControl/UI.ts b/Server/wwwroot/src/RemoteControl/UI.ts
index 640ace34..c1a23e98 100644
--- a/Server/wwwroot/src/RemoteControl/UI.ts
+++ b/Server/wwwroot/src/RemoteControl/UI.ts
@@ -17,13 +17,9 @@ export var Screen2DContext = ScreenViewer ? ScreenViewer.getContext("2d") : null
export var HorizontalBars = document.querySelectorAll(".horizontal-button-bar");
export var ConnectBox = document.getElementById("connectBox") as HTMLDivElement;
export var ScreenSelectBar = document.getElementById("screenSelectBar") as HTMLDivElement;
-export var QualityBar = document.getElementById("qualityBar") as HTMLDivElement;
-export var QualitySlider = document.getElementById("qualityRangeInput") as HTMLInputElement;
-export var AutoQualityAdjustCheckBox = document.getElementById("autoAdjustQualityCheckBox") as HTMLInputElement;
export var ActionsBar = document.getElementById("actionsBar") as HTMLDivElement;
export var ViewBar = document.getElementById("viewBar") as HTMLDivElement;
export var ChangeScreenButton = document.getElementById("changeScreenButton") as HTMLButtonElement;
-export var QualityButton = document.getElementById("qualityButton") as HTMLButtonElement;
export var StreamVideoButton = document.getElementById("streamVideoButton") as HTMLButtonElement;
export var FitToScreenButton = document.getElementById("fitToScreenButton") as HTMLButtonElement;
export var BlockInputButton = document.getElementById("blockInputButton") as HTMLButtonElement;
@@ -161,12 +157,10 @@ export function UpdateStreamingToggled(toggleOn: boolean) {
StreamVideoButton.classList.add("toggled");
VideoScreenViewer.removeAttribute("hidden");
ScreenViewer.setAttribute("hidden", "hidden");
- QualityButton.setAttribute("hidden", "hidden");
}
else {
StreamVideoButton.classList.remove("toggled");
ScreenViewer.removeAttribute("hidden");
- QualityButton.removeAttribute("hidden");
VideoScreenViewer.setAttribute("hidden", "hidden");
}
}
diff --git a/Server/wwwroot/src/Shared/Enums/BaseDtoType.ts b/Server/wwwroot/src/Shared/Enums/BaseDtoType.ts
index 76df90e2..808911ce 100644
--- a/Server/wwwroot/src/Shared/Enums/BaseDtoType.ts
+++ b/Server/wwwroot/src/Shared/Enums/BaseDtoType.ts
@@ -15,12 +15,10 @@
KeyDown = 13,
KeyUp = 14,
CtrlAltDel = 15,
- AutoQualityAdjust = 16,
ToggleAudio = 17,
ToggleBlockInput = 18,
ClipboardTransfer = 19,
KeyPress = 20,
- QualityChange = 21,
File = 22,
WindowsSessions = 23,
SetKeyStatesUp = 24,
diff --git a/Shared/Enums/BaseDtoType.cs b/Shared/Enums/BaseDtoType.cs
index bd6ec1ca..5ecbab68 100644
--- a/Shared/Enums/BaseDtoType.cs
+++ b/Shared/Enums/BaseDtoType.cs
@@ -37,8 +37,6 @@ namespace Remotely.Shared.Enums
KeyUp = 14,
[EnumMember(Value = "CtrlAltDel")]
CtrlAltDel = 15,
- [EnumMember(Value = "AutoQualityAdjust")]
- AutoQualityAdjust = 16,
[EnumMember(Value = "ToggleAudio")]
ToggleAudio = 17,
[EnumMember(Value = "ToggleBlockInput")]
@@ -47,8 +45,6 @@ namespace Remotely.Shared.Enums
ClipboardTransfer = 19,
[EnumMember(Value = "KeyPress")]
KeyPress = 20,
- [EnumMember(Value = "QualityChange")]
- QualityChange = 21,
[EnumMember(Value = "File")]
File = 22,
[EnumMember(Value = "WindowsSessions")]
diff --git a/Shared/Models/RemoteControlDtos/AutoQualityAdjustDto.cs b/Shared/Models/RemoteControlDtos/AutoQualityAdjustDto.cs
deleted file mode 100644
index 0c8043d8..00000000
--- a/Shared/Models/RemoteControlDtos/AutoQualityAdjustDto.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Remotely.Shared.Enums;
-using System.Runtime.Serialization;
-
-namespace Remotely.Shared.Models.RemoteControlDtos
-{
- [DataContract]
- public class AutoQualityAdjustDto : BaseDto
- {
- [DataMember(Name = "IsOn")]
- public bool IsOn { get; set; }
-
- [DataMember(Name = "DtoType")]
- public new BaseDtoType DtoType { get; } = BaseDtoType.AutoQualityAdjust;
- }
-}
diff --git a/Shared/Models/RemoteControlDtos/CaptureFrameDto.cs b/Shared/Models/RemoteControlDtos/CaptureFrameDto.cs
index a80d88d6..e7e67840 100644
--- a/Shared/Models/RemoteControlDtos/CaptureFrameDto.cs
+++ b/Shared/Models/RemoteControlDtos/CaptureFrameDto.cs
@@ -18,9 +18,6 @@ namespace Remotely.Shared.Models.RemoteControlDtos
[DataMember(Name = "ImageBytes")]
public byte[] ImageBytes { get; set; }
- [DataMember(Name = "ImageQuality")]
- public long ImageQuality { get; set; }
-
[DataMember(Name = "Left")]
public int Left { get; set; }
[DataMember(Name = "Top")]
diff --git a/Shared/Models/RemoteControlDtos/QualityChangeDto.cs b/Shared/Models/RemoteControlDtos/QualityChangeDto.cs
deleted file mode 100644
index 9100e442..00000000
--- a/Shared/Models/RemoteControlDtos/QualityChangeDto.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Remotely.Shared.Enums;
-using System.Runtime.Serialization;
-
-namespace Remotely.Shared.Models.RemoteControlDtos
-{
- [DataContract]
- public class QualityChangeDto : BaseDto
- {
- [DataMember(Name = "QualityLevel")]
- public int QualityLevel { get; set; }
-
- [DataMember(Name = "DtoType")]
- public new BaseDtoType DtoType { get; } = BaseDtoType.QualityChange;
- }
-}
diff --git a/Tests/ManualTests.cs b/Tests/ManualTests.cs
index 6b12553c..254230e3 100644
--- a/Tests/ManualTests.cs
+++ b/Tests/ManualTests.cs
@@ -100,8 +100,8 @@ namespace Remotely.Tests
tempImage.Save(ms, jpegEncoder, encoderParams);
diffSize = ms.ToArray().Length;
}
- Debug.WriteLine($"Diff size: {diffSize}");
- Debug.WriteLine($"Diff time: {sw.Elapsed.TotalMilliseconds}");
+ Debug.WriteLine($"Diff area size: {diffSize}");
+ Debug.WriteLine($"Diff area time: {sw.Elapsed.TotalMilliseconds}");
sw.Restart();
@@ -116,76 +116,6 @@ namespace Remotely.Tests
Debug.WriteLine($"Diff Image time: {sw.Elapsed.TotalMilliseconds}");
-
- sw.Restart();
- var gifImage = (Bitmap)diffImage.Clone();
- using (var ms = new MemoryStream())
- {
- gifImage.MakeTransparent(Color.FromArgb(0, 0, 0, 0));
- gifImage.Save(ms, ImageFormat.Gif);
- Debug.WriteLine($"GIF image size: {ms.ToArray().Length}");
- }
- Debug.WriteLine($"GIF Image time: {sw.Elapsed.TotalMilliseconds}");
-
- //sw.Restart();
- //using (var ms = new MemoryStream())
- //{
- // diffImage.Save(ms, ImageFormat.Jpeg);
- // ms.Seek(0, SeekOrigin.Begin);
- // var pngEncoder = new PngEncoder() { CompressionLevel = PngCompressionLevel.BestSpeed };
- // using (var ms2 = new MemoryStream())
- // {
- // SixLabors.ImageSharp.Image.Load(ms).Save(ms2, pngEncoder);
- // Debug.WriteLine($"ImageSharp size: {ms2.ToArray().Length}");
- // }
- //}
- //Debug.WriteLine($"ImageSharp encode time: {sw.Elapsed.TotalMilliseconds}");
-
-
- //sw.Restart();
- //using (var ms = new MemoryStream())
- //{
- // diffImage.Save(ms, ImageFormat.Jpeg);
- // ms.Seek(0, SeekOrigin.Begin);
- // using (var ms2 = new MemoryStream())
- // {
- // Aspose.Imaging.Image.Load(ms).Save(ms2, new PngOptions() { CompressionLevel = 5 });
- // Debug.WriteLine($"Aspose size: {ms2.ToArray().Length}");
- // }
- //}
- //Debug.WriteLine($"Aspose encode time: {sw.Elapsed.TotalMilliseconds}");
-
-
-
-
- //sw.Restart();
- //var drawingBytes = ImageUtils.EncodeBitmap(frame1, null);
- //Debug.WriteLine($"Drawing Encoder time: {sw.Elapsed.TotalMilliseconds}");
- //Debug.WriteLine($"Drawing encoder size: {drawingBytes.Length}");
-
- //sw.Restart();
- //using (var ms = new MemoryStream())
- //{
- // frame1.Clone(new Rectangle(0, 0, 500, 500), PixelFormat.Format32bppArgb)
- // .Save(ms, GetEncoder(ImageFormat.Jpeg), encoderParams);
- // Debug.WriteLine($"Jpeg encode time: {sw.Elapsed.TotalMilliseconds}");
- // Debug.WriteLine($"Jpeg encode size: {ms.ToArray().Length}");
- //}
-
- //var factory = new ImageProcessor.ImageFactory();
- //sw.Restart();
- //using (var ms = new MemoryStream())
- //{
- // var webPFormat = new ImageProcessor.Plugins.WebP.Imaging.Formats.WebPFormat();
- // factory.Load(diffImage)
- // .Format(webPFormat)
- // .Quality(60)
- // .Save(ms);
-
- // Debug.WriteLine($"Webp encode time: {sw.Elapsed.TotalMilliseconds}");
- // Debug.WriteLine($"Webp encode size: {ms.ToArray().Length}");
- //}
-
Debug.WriteLine($"\n");
}
}