RemoteDesktop: * v0.1.15 - Only send ACK command when finish rendering the received frame, this allows to vastly improve performance and bandwidth

This commit is contained in:
DanyLE 2023-01-07 19:36:47 +01:00
commit b3db4861ef
12 changed files with 62 additions and 784 deletions

View File

@ -7,6 +7,8 @@ Further information on **wvnc**: [https://blog.lxsang.me/post/id/23](https://blo
## Change logs ## Change logs
* v0.1.15 - Only send ACK command when finish rendering the received frame, this allows to vastly improve performance and bandwidth
* v0.1.14 - Add toolbar for canvas size control
* v0.1.13 - support AntOS v2.0.x * v0.1.13 - support AntOS v2.0.x
* v0.1.12 - improve UI handling * v0.1.12 - improve UI handling
* v0.1.11 - Support 16 bits per pixel * v0.1.11 - Support 16 bits per pixel

View File

@ -1,6 +1,7 @@
afx-app-window[data-id="RemoteDesktop"] div[data-id="container"] afx-app-window[data-id="RemoteDesktop"] div[data-id="container"]
{ {
background-color: #272822; background-color: #272822;
overflow: hidden;
} }
afx-app-window[data-id="RemoteDesktop"] canvas[data-id="screen"] afx-app-window[data-id="RemoteDesktop"] canvas[data-id="screen"]
{ {

View File

@ -1,7 +1,17 @@
<afx-app-window apptitle="VNC Remote Desktop" width="720" height="576" data-id="RemoteDesktop"> <afx-app-window apptitle="VNC Remote Desktop" width="720" height="576" data-id="RemoteDesktop">
<afx-hbox > <afx-vbox >
<div data-id="container"> <div data-id="container">
<canvas data-id="screen"></canvas> <canvas data-id="screen"></canvas>
</div> </div>
</afx-hbox> <afx-hbox data-height="35">
<afx-button iconclass="fa fa-arrows-alt" data-id="btreset" data-width="content"></afx-button>
<div data-width = "5" ></div>
<afx-slider data-id="zoom" ></afx-slider>
<div data-width = "5" ></div>
<afx-button iconclass="bi bi-box-arrow-down" data-id="scroll_down" data-width="content"></afx-button>
<afx-button iconclass="bi bi-box-arrow-up" data-id="scroll_up" data-width="content"></afx-button>
<afx-button iconclass="bi bi-box-arrow-left" data-id="scroll_left" data-width="content"></afx-button>
<afx-button iconclass="bi bi-box-arrow-right" data-id="scroll_right" data-width="content"></afx-button>
</afx-hbox>
</afx-vbox>
</afx-app-window> </afx-app-window>

View File

@ -7,6 +7,8 @@ Further information on **wvnc**: [https://blog.lxsang.me/post/id/23](https://blo
## Change logs ## Change logs
* v0.1.15 - Only send ACK command when finish rendering the received frame, this allows to vastly improve performance and bandwidth
* v0.1.14 - Add toolbar for canvas size control
* v0.1.13 - support AntOS v2.0.x * v0.1.13 - support AntOS v2.0.x
* v0.1.12 - improve UI handling * v0.1.12 - improve UI handling
* v0.1.11 - Support 16 bits per pixel * v0.1.11 - Support 16 bits per pixel

View File

@ -1,6 +1,7 @@
afx-app-window[data-id="RemoteDesktop"] div[data-id="container"] afx-app-window[data-id="RemoteDesktop"] div[data-id="container"]
{ {
background-color: #272822; background-color: #272822;
overflow: hidden;
} }
afx-app-window[data-id="RemoteDesktop"] canvas[data-id="screen"] afx-app-window[data-id="RemoteDesktop"] canvas[data-id="screen"]
{ {

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,7 @@
"author": "Dany LE", "author": "Dany LE",
"email": "contact@iohub.dev" "email": "contact@iohub.dev"
}, },
"version":"0.1.13-b", "version":"0.1.15-b",
"dependencies": [], "dependencies": [],
"category":"Internet", "category":"Internet",
"icon": "icon.png", "icon": "icon.png",

View File

@ -1,7 +1,17 @@
<afx-app-window apptitle="VNC Remote Desktop" width="720" height="576" data-id="RemoteDesktop"> <afx-app-window apptitle="VNC Remote Desktop" width="720" height="576" data-id="RemoteDesktop">
<afx-hbox > <afx-vbox >
<div data-id="container"> <div data-id="container">
<canvas data-id="screen"></canvas> <canvas data-id="screen"></canvas>
</div> </div>
</afx-hbox> <afx-hbox data-height="35">
<afx-button iconclass="fa fa-arrows-alt" data-id="btreset" data-width="content"></afx-button>
<div data-width = "5" ></div>
<afx-slider data-id="zoom" ></afx-slider>
<div data-width = "5" ></div>
<afx-button iconclass="bi bi-box-arrow-down" data-id="scroll_down" data-width="content"></afx-button>
<afx-button iconclass="bi bi-box-arrow-up" data-id="scroll_up" data-width="content"></afx-button>
<afx-button iconclass="bi bi-box-arrow-left" data-id="scroll_left" data-width="content"></afx-button>
<afx-button iconclass="bi bi-box-arrow-right" data-id="scroll_right" data-width="content"></afx-button>
</afx-hbox>
</afx-vbox>
</afx-app-window> </afx-app-window>

View File

@ -57,7 +57,6 @@ class CredentialDialog extends this.OS.GUI.BasicDialog
password: (@find "txtPass").value password: (@find "txtPass").value
@handle data @handle data
@quit() @quit()
@find("bt-cancel").onbtclick = () => @find("bt-cancel").onbtclick = () =>
@quit() @quit()
@ -83,6 +82,29 @@ class RemoteDesktop extends this.OS.application.BaseApplication
main: () -> main: () ->
@canvas = @find "screen" @canvas = @find "screen"
@container = @find "container" @container = @find "container"
@zoom = @find "zoom"
@btreset = @find "btreset"
@zoom.max = 200
@zoom.value = 100
@zoom.onvaluechange = (e) => @setScale()
@find("scroll_down").onbtclick = (e) =>
@container.scrollTop += 20
@find("scroll_up").onbtclick = (e) =>
@container.scrollTop -= 20
@find("scroll_left").onbtclick = (e) =>
@container.scrollLeft -= 20
@find("scroll_right").onbtclick = (e) =>
@container.scrollLeft += 20
@btreset.onbtclick = (e) =>
w = $(@container).width()
h = $(@container).height()
sx = w / @client.resolution.w
sy = h / @client.resolution.h
if sx > sy
@zoom.value = sy*100
else
@zoom.value = sx*100
@setScale()
@client = new WVNC { @client = new WVNC {
element: @canvas element: @canvas
} }
@ -113,7 +135,7 @@ class RemoteDesktop extends this.OS.application.BaseApplication
@openDialog new CredentialDialog, { title: __("User credential") } @openDialog new CredentialDialog, { title: __("User credential") }
.then (d) -> .then (d) ->
r(d.username, d.password) r(d.username, d.password)
@on "resize", (e)=> @setScale() # @on "resize", (e)=> @setScale()
@on "focus", (e) => $(@canvas).focus() @on "focus", (e) => $(@canvas).focus()
@client.init().then () => @client.init().then () =>
@showConnectionDialog() @showConnectionDialog()
@ -136,12 +158,11 @@ class RemoteDesktop extends this.OS.application.BaseApplication
.catch (err) => @error err.toString(), err .catch (err) => @error err.toString(), err
setScale: () -> setScale: () ->
console.log "scale changed"
return unless @client and @client.resolution return unless @client and @client.resolution
w = $(@container).width() @client.setScale @zoom.value / 100.0
h = $(@container).height() @container.scrollLeft = 0
sx = w / @client.resolution.w @container.scrollTop = 0
sy = h / @client.resolution.h
if sx > sy then @client.setScale sy else @client.setScale sx
menu: () -> menu: () ->

View File

@ -7,7 +7,7 @@
"author": "Dany LE", "author": "Dany LE",
"email": "contact@iohub.dev" "email": "contact@iohub.dev"
}, },
"version":"0.1.13-b", "version":"0.1.15-b",
"dependencies": [], "dependencies": [],
"category":"Internet", "category":"Internet",
"icon": "icon.png", "icon": "icon.png",

View File

@ -365,7 +365,7 @@
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/2.0.x/RemoteDesktop/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/2.0.x/RemoteDesktop/README.md",
"category": "Internet", "category": "Internet",
"author": "Dany LE", "author": "Dany LE",
"version": "0.1.13-b", "version": "0.1.15-b",
"dependencies": [],"category":"Internet","icon":"icon.png","mimes":["none"], "dependencies": [],"category":"Internet","icon":"icon.png","mimes":["none"],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/2.0.x/RemoteDesktop/build/release/RemoteDesktop.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/2.0.x/RemoteDesktop/build/release/RemoteDesktop.zip"
}, },