mirror of
https://github.com/antos-rde/antosdk-apps.git
synced 2024-12-26 12:18:21 +01:00
Update RemoteDesktop
This commit is contained in:
parent
86e2c1246c
commit
9800f701e6
@ -7,6 +7,7 @@ Further information on **wvnc**: [https://blog.lxsang.me/post/id/23](https://blo
|
|||||||
|
|
||||||
|
|
||||||
## Change logs
|
## Change logs
|
||||||
|
* v0.1.7-8 - remove package dependencies, use web assembly for jpeg decoding, improve rendering performance and connection stability
|
||||||
* v0.1.6 - Change category
|
* v0.1.6 - Change category
|
||||||
* v0.1.5 - add package dependencies and use the new **libwvnc**
|
* v0.1.5 - add package dependencies and use the new **libwvnc**
|
||||||
* v0.1.0 - adapt to the new AntOS API
|
* v0.1.0 - adapt to the new AntOS API
|
||||||
|
@ -7,6 +7,7 @@ Further information on **wvnc**: [https://blog.lxsang.me/post/id/23](https://blo
|
|||||||
|
|
||||||
|
|
||||||
## Change logs
|
## Change logs
|
||||||
|
* v0.1.7-8 - remove package dependencies, use web assembly for jpeg decoding, improve rendering performance and connection stability
|
||||||
* v0.1.6 - Change category
|
* v0.1.6 - Change category
|
||||||
* v0.1.5 - add package dependencies and use the new **libwvnc**
|
* v0.1.5 - add package dependencies and use the new **libwvnc**
|
||||||
* v0.1.0 - adapt to the new AntOS API
|
* v0.1.0 - adapt to the new AntOS API
|
||||||
|
File diff suppressed because one or more lines are too long
@ -7,7 +7,7 @@
|
|||||||
"author": "Dany LE",
|
"author": "Dany LE",
|
||||||
"email": "contact@iohub.dev"
|
"email": "contact@iohub.dev"
|
||||||
},
|
},
|
||||||
"version":"0.1.7-b",
|
"version":"0.1.8-b",
|
||||||
"dependencies": [],
|
"dependencies": [],
|
||||||
"category":"Internet",
|
"category":"Internet",
|
||||||
"icon": "icon.png",
|
"icon": "icon.png",
|
||||||
|
Binary file not shown.
@ -9,7 +9,8 @@ class WVNC
|
|||||||
@canvas = args.element
|
@canvas = args.element
|
||||||
@canvas = document.getElementById @canvas if typeof @canvas is 'string'
|
@canvas = document.getElementById @canvas if typeof @canvas is 'string'
|
||||||
@decoder = new Worker worker
|
@decoder = new Worker worker
|
||||||
@enableEvent = true
|
@enableEvent = false
|
||||||
|
@pingto = false
|
||||||
me = @
|
me = @
|
||||||
@mouseMask = 0
|
@mouseMask = 0
|
||||||
@decoder.onmessage = (e) ->
|
@decoder.onmessage = (e) ->
|
||||||
@ -20,6 +21,8 @@ class WVNC
|
|||||||
return e('Canvas is not set') if not me.canvas
|
return e('Canvas is not set') if not me.canvas
|
||||||
# fix keyboard event problem
|
# fix keyboard event problem
|
||||||
$(me.canvas).attr 'tabindex', '1'
|
$(me.canvas).attr 'tabindex', '1'
|
||||||
|
$(me.canvas).on "focus", () =>
|
||||||
|
me.resetModifierKeys()
|
||||||
me.initInputEvent()
|
me.initInputEvent()
|
||||||
r()
|
r()
|
||||||
|
|
||||||
@ -64,7 +67,7 @@ class WVNC
|
|||||||
#console.log e
|
#console.log e
|
||||||
switch keycode
|
switch keycode
|
||||||
when 8 then code = 0xFF08 #back space
|
when 8 then code = 0xFF08 #back space
|
||||||
when 9 then code = 0xff89 #0xFF09 # tab ?
|
when 9 then code = 0xFF09 # tab ? 0xff89
|
||||||
when 13 then code = 0xFF0D # return
|
when 13 then code = 0xFF0D # return
|
||||||
when 27 then code = 0xFF1B # esc
|
when 27 then code = 0xFF1B # esc
|
||||||
when 46 then code = 0xFFFF # delete to verify
|
when 46 then code = 0xFFFF # delete to verify
|
||||||
@ -180,12 +183,15 @@ class WVNC
|
|||||||
me.socket = null
|
me.socket = null
|
||||||
me.canvas.style.cursor = "auto"
|
me.canvas.style.cursor = "auto"
|
||||||
me.canvas.getContext('2d').clearRect 0,0, me.resolution.w, me.resolution.h if me.canvas and me.resolution
|
me.canvas.getContext('2d').clearRect 0,0, me.resolution.w, me.resolution.h if me.canvas and me.resolution
|
||||||
|
clearTimeout(me.pingto) if me.pingto
|
||||||
|
me.pingto = undefined
|
||||||
console.log "socket closed"
|
console.log "socket closed"
|
||||||
|
|
||||||
disconnect: (close_worker) ->
|
disconnect: (close_worker) ->
|
||||||
@socket.close() if @socket
|
@socket.close() if @socket
|
||||||
@socket = undefined
|
@socket = undefined
|
||||||
@decoder.terminate() if close_worker
|
@decoder.terminate() if close_worker
|
||||||
|
@enableEvent = false
|
||||||
|
|
||||||
initConnection: (vncserver, params) ->
|
initConnection: (vncserver, params) ->
|
||||||
#vncserver = "192.168.1.20:5901"
|
#vncserver = "192.168.1.20:5901"
|
||||||
@ -198,8 +204,18 @@ class WVNC
|
|||||||
data.set (new TextEncoder()).encode(vncserver), 1
|
data.set (new TextEncoder()).encode(vncserver), 1
|
||||||
@socket.send(@buildCommand 0x01, data)
|
@socket.send(@buildCommand 0x01, data)
|
||||||
|
|
||||||
|
resetModifierKeys: () ->
|
||||||
|
return unless @socket
|
||||||
|
return unless @enableEvent
|
||||||
|
@sendKeyEvent 0xFFE7, 0 # meta left
|
||||||
|
@sendKeyEvent 0xFFE8, 0 # meta right
|
||||||
|
@sendKeyEvent 0xFFE1, 0 # shift left
|
||||||
|
@sendKeyEvent 0xFFE3, 0 # ctrl left
|
||||||
|
@sendKeyEvent 0xFFE9, 0 # alt left
|
||||||
|
|
||||||
sendPointEvent: (x, y, mask) ->
|
sendPointEvent: (x, y, mask) ->
|
||||||
return unless @socket
|
return unless @socket
|
||||||
|
return unless @enableEvent
|
||||||
data = new Uint8Array 5
|
data = new Uint8Array 5
|
||||||
data[0] = x & 0xFF
|
data[0] = x & 0xFF
|
||||||
data[1] = x >> 8
|
data[1] = x >> 8
|
||||||
@ -214,10 +230,14 @@ class WVNC
|
|||||||
return unless @enableEvent
|
return unless @enableEvent
|
||||||
data = new Uint8Array 3
|
data = new Uint8Array 3
|
||||||
data[0] = code & 0xFF
|
data[0] = code & 0xFF
|
||||||
data[1] = code >> 8
|
data[1] = (code >> 8) & 0xFF
|
||||||
data[2] = v
|
data[2] = v
|
||||||
@socket.send( @buildCommand 0x06, data )
|
@socket.send( @buildCommand 0x06, data )
|
||||||
|
|
||||||
|
sendPing: () ->
|
||||||
|
return unless @socket
|
||||||
|
@socket.send( @buildCommand 0x08, 'PING WVNC' )
|
||||||
|
|
||||||
buildCommand: (hex, o) ->
|
buildCommand: (hex, o) ->
|
||||||
data = undefined
|
data = undefined
|
||||||
switch typeof o
|
switch typeof o
|
||||||
@ -289,7 +309,14 @@ class WVNC
|
|||||||
@initCanvas w, h, depth
|
@initCanvas w, h, depth
|
||||||
# status command for ack
|
# status command for ack
|
||||||
@socket.send(@buildCommand 0x04, 1)
|
@socket.send(@buildCommand 0x04, 1)
|
||||||
|
@enableEvent = true
|
||||||
|
# @resetModifierKeys()
|
||||||
@onresize()
|
@onresize()
|
||||||
|
return if @pingto
|
||||||
|
fn = () =>
|
||||||
|
@sendPing()
|
||||||
|
@pingto = setTimeout(fn, 5000)
|
||||||
|
@pingto = setTimeout(fn, 5000)
|
||||||
when 0x84
|
when 0x84
|
||||||
# send data to web assembly for decoding
|
# send data to web assembly for decoding
|
||||||
@decoder.postMessage data.buffer, [data.buffer]
|
@decoder.postMessage data.buffer, [data.buffer]
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"author": "Dany LE",
|
"author": "Dany LE",
|
||||||
"email": "contact@iohub.dev"
|
"email": "contact@iohub.dev"
|
||||||
},
|
},
|
||||||
"version":"0.1.7-b",
|
"version":"0.1.8-b",
|
||||||
"dependencies": [],
|
"dependencies": [],
|
||||||
"category":"Internet",
|
"category":"Internet",
|
||||||
"icon": "icon.png",
|
"icon": "icon.png",
|
||||||
|
@ -365,7 +365,7 @@
|
|||||||
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/README.md",
|
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/README.md",
|
||||||
"category": "Internet",
|
"category": "Internet",
|
||||||
"author": "Dany LE",
|
"author": "Dany LE",
|
||||||
"version": "0.1.7-b",
|
"version": "0.1.8-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/master/RemoteDesktop/build/release/RemoteDesktop.zip"
|
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/build/release/RemoteDesktop.zip"
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user