Commit Graph

449 Commits

Author SHA1 Message Date
Miroslav Šedivý
d3514b9698
Fix textarea focus for touchscreens with keyboard (#30)
* check if touchscreen has mouse.

* add inputMode to props.

* fix formatting.
2023-04-18 10:19:52 +02:00
Miroslav Šedivý
1f461cb322
Optimizing canvas for cursor rendering (#27)
* use dpr as canvas scale.

* wheel use event timestamp.

* remove vue set.

* add cursor rendering fps.
2023-04-13 12:25:36 +02:00
Miroslav Šedivý
84dcd1807c
Throttle cursor events (#26)
* clear inactive cursors.

* add mouse move throttle.
2023-04-12 13:19:57 +02:00
Miroslav Šedivý
ebeaf9bb30 fix ice servers type. 2023-03-26 21:05:11 +02:00
Miroslav Šedivý
3eeb589f3f add click on color. 2023-02-18 21:52:57 +01:00
Miroslav Šedivý
9b579a8cbd
Screen size sync (#23)
* allow choosing any screen configuration.

* add screen sync option.

* round size to int.

* lint.
2023-02-14 21:20:05 +01:00
Miroslav Šedivý
ae80753378
skip onnegotiationneeded if in progress. (#22) 2023-01-30 11:33:52 +01:00
Miroslav Šedivý
dc2ef37e17
Add mobile keyboard API (#21)
* fix page for mobile - minor changes.

* fix textarea overlay to hide caret and avodi zooming on mobiles.

* fix typo.

* show keyboard btn if is touch device.

* lint fix.

* add to API.

* mobile keybaord fix andorid blur.

* add mobile keybaord toggle.

* fix overlay.

* mobile keybaord, skip if not a touch device.
2023-01-27 19:21:42 +01:00
Miroslav Šedivý
a22c48c4ca
WebRTC latency in stats (#20)
* webrtc stats full report.

* add ping+pong latency counter.

* single console log.

* remove report & add latency to webrtc stats.

* fix.
2023-01-20 23:09:01 +01:00
Miroslav Šedivý
737bf7da02
fix stereo for chromium. (#18) 2023-01-13 12:02:35 +01:00
Miroslav Šedivý
863de78b70
Add WebSocket heartbeat (#16)
* add heartbeat.

* rename.
2022-11-11 18:00:36 +01:00
Miroslav Šedivý
b27b8e028d
add bitrate switcher. (#15) 2022-11-07 19:40:36 +01:00
Miroslav Šedivý
ba931ea52e fix upload dialog files - forEach not found. 2022-10-24 22:21:39 +02:00
Miroslav Šedivý
9307fbea97 fix default cursor tag pos. 2022-10-22 16:37:44 +02:00
Miroslav Šedivý
0371a7dc4c
Add NoVnc keyboard (#13)
* novnc wip.

* remove blacklistKeys.

* eslint ignore all js files.

* ad common keyboard interface.

* upgrade novnc.

* fix novnc.

* fix novnc keyboard.

* fix keyboard remapping.

* conditionally include novnc at build time.
2022-10-04 20:28:07 +02:00
Miroslav Šedivý
3a75b1bf54 do not trigger changes during IME composition. 2022-10-04 20:23:09 +02:00
Miroslav Šedivý
a6698a3ef2 register mouseup globally. 2022-09-16 10:51:29 +02:00
Miroslav Šedivý
cc6722fee2 remove keybaord reset on mouse leave. 2022-09-16 10:51:29 +02:00
Miroslav Šedivý
fb5d9affd9 logger: color only if enabled in env. 2022-09-16 10:50:57 +02:00
Miroslav Šedivý
84a1d16de3 accept ?token= in server URL. 2022-09-16 10:50:57 +02:00
Miroslav Šedivý
80e5277fb6 set URL from query. 2022-09-16 10:50:57 +02:00
Miroslav Šedivý
a1860d5f56 fix implicit control req: race condition deadlock. 2022-09-15 21:11:42 +02:00
Miroslav Šedivý
abb28b1d10 canvas cursor draw, reset x & y before clear #9. 2022-08-30 23:02:44 +02:00
Miroslav Šedivý
cfcc06fdcd hide overlay only if disconnected. 2022-08-25 00:15:31 +02:00
Miroslav Šedivý
11b3738244 websocket status code when disconnecting. 2022-08-25 00:15:31 +02:00
Miroslav Šedivý
ac6df17036 emit close event after closing all reconnectors. 2022-08-25 00:15:31 +02:00
Miroslav Šedivý
9a77f6adea
Canvas cursor draw - do not use save and restore. (#9) 2022-08-25 00:14:47 +02:00
Miroslav Šedivý
f4b22e82a9 control pos interface. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
56b7c8087d rename to wsControl. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
84708c77d2 overlay send events over WS if not connected. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
4b2c03b88d overlay onControlChange use control events. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
6f18bde058 overlay onAction move to control. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
3180102006 control add button and optionally pos. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
3382126f40 implement move and scroll for websocket control. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
f3850e022c overlay use control instead of event emitter. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
cf97610067
Inactive cursors proper clearing (#7)
* extract canvasDrawPoints and use new_last_points.

* lint fix.

* canvasDrawPoints default percent 1,
2022-07-28 12:21:03 +02:00
Miroslav Šedivý
cd15007e3c
hide elements around textarea if added by browsers extensions. (#5) 2022-07-28 12:20:42 +02:00
Miroslav Šedivý
5b035e4348 fix page paddings. 2022-07-18 23:11:13 +02:00
Miroslav Šedivý
2ef599b90e
hide textarea resize. (#3) 2022-07-18 22:59:21 +02:00
Miroslav Šedivý
78b0ee6b3c add plugins. 2022-07-17 00:52:29 +02:00
Miroslav Šedivý
19b9ff6b88 add test page. 2022-07-16 21:30:35 +02:00
Miroslav Šedivý
17be646493 add openapi. 2022-07-16 20:51:16 +02:00
Miroslav Šedivý
4428441d0d upgrade guac kbd. 2022-06-01 11:42:35 +02:00
Miroslav Šedivý
3b6431ced2 use default cursor. 2022-05-29 20:22:28 +02:00
Miroslav Šedivý
9c20591e3d add sendMessage. 2022-05-29 19:58:30 +02:00
Miroslav Šedivý
e96e54f791 messages event. 2022-05-27 00:25:34 +02:00
Miroslav Šedivý
44f21b2f13 with external api. 2022-05-21 15:36:29 +01:00
Miroslav Šedivý
b9c4a9b597 keySymsRemap before clipboard logic. 2022-05-03 21:56:37 +02:00
Miroslav Šedivý
b7277bc291 catch client clipboard errors. 2022-05-03 21:56:21 +02:00
Miroslav Šedivý
63cad4df72 do not remove focus on mouse leave. 2022-05-03 21:46:16 +02:00
Miroslav Šedivý
9ba33292ea ignored keyup hashmap. 2022-05-01 21:51:10 +02:00
Miroslav Šedivý
d87c78ba50 bi directional clipboard handling over WS. 2022-04-29 00:00:41 +02:00
Miroslav Šedivý
968082d7b4 paste control with clipboard. 2022-04-28 23:58:31 +02:00
Miroslav Šedivý
0aae212c1f sync user's clipboard. 2022-04-28 23:25:33 +02:00
Miroslav Šedivý
e65c10005e use textarea for pasting. 2022-04-28 22:48:04 +02:00
Miroslav Šedivý
ca49272bf2 move paused to webrtc stats. 2022-03-29 23:39:12 +02:00
Miroslav Šedivý
7435ff68a6 do not show screencast if not connected to webrtc. 2022-03-27 22:49:52 +02:00
Miroslav Šedivý
f7f533f269 implement private mode. 2022-03-27 22:49:12 +02:00
Miroslav Šedivý
5f6aef469a implement settings structure. 2022-03-27 01:16:19 +01:00
Miroslav Šedivý
67c62a1516 fix screencast start race. 2022-03-19 00:24:52 +01:00
Miroslav Šedivý
a58ae0b95f catch videoSnap error. 2022-03-19 00:23:57 +01:00
Miroslav Šedivý
33245fea03 webrtc fallback image video snap. 2022-03-18 23:56:27 +01:00
Miroslav Šedivý
8f8094e7bd screencast switch to image src. 2022-03-12 00:16:27 +01:00
Miroslav Šedivý
82f45bfedd add videoSnap. 2022-03-12 00:01:54 +01:00
Miroslav Šedivý
9ea1fb00d3 show screencast if not playing instead of unplayable. 2022-03-11 00:23:44 +01:00
Miroslav Šedivý
cee6332587 screencast as overlay, load when webrtc unstable. 2022-03-10 23:46:30 +01:00
Miroslav Šedivý
e61b04671b fix onsignalingstatechange. 2022-03-10 22:39:55 +01:00
Miroslav Šedivý
45e8ad19a9 webrtc send: check only data channel availability. 2022-03-10 22:39:34 +01:00
Miroslav Šedivý
f536552377 add webrtc stable to state. 2022-03-10 22:38:33 +01:00
Miroslav Šedivý
134db3d0c9 lint. 2022-03-10 20:44:23 +01:00
Miroslav Šedivý
e2db39fe69 add comments to reconnector. 2022-03-09 00:05:50 +01:00
Miroslav Šedivý
7a7041625a webrtc set video on track unmute. 2022-03-07 23:28:13 +01:00
Miroslav Šedivý
e78ee758c5 fix webrtc _connected. 2022-02-13 23:30:58 +01:00
Miroslav Šedivý
53a78140ea webrtc statsStop in diesconnect function. 2022-02-12 18:39:26 +01:00
Miroslav Šedivý
37b0a82167 webrtc on connected singleton. 2022-02-12 18:39:05 +01:00
Miroslav Šedivý
b3eba8bd14 add original event to control events. 2022-02-12 14:25:25 +01:00
Miroslav Šedivý
1fdcac5826 add signal close. 2022-02-12 14:19:48 +01:00
Miroslav Šedivý
c5e845c025 Resolve "Fallback image caching problem" 2022-02-07 13:31:11 +00:00
Miroslav Šedivý
b2e1eba4c2 update control API. 2022-01-30 21:09:13 +01:00
Miroslav Šedivý
7d779396ba move control events to own emitter. 2022-01-30 21:01:14 +01:00
Miroslav Šedivý
87766d4e41 add control lock. 2022-01-30 20:55:19 +01:00
Miroslav Šedivý
d5125ea8e1 add control. 2022-01-30 19:44:27 +01:00
Miroslav Šedivý
de62a349ed add overlay events. 2022-01-30 17:09:35 +01:00
Miroslav Šedivý
bd5f02223a fix log. 2022-01-30 01:28:38 +01:00
Miroslav Šedivý
d546c5f65f add media input methods. 2022-01-06 22:32:40 +01:00
Miroslav Šedivý
88886972e2 chromium webrtc track workaround. 2021-12-12 23:55:43 +01:00
Miroslav Šedivý
f12d77f78f webrtc update error reporting. 2021-12-12 23:40:12 +01:00
Miroslav Šedivý
da3b6df703 catch messages async errors. 2021-12-12 23:25:54 +01:00
Miroslav Šedivý
693ac08e10 member profile can share media. 2021-12-09 21:01:05 +01:00
Miroslav Šedivý
fc2979d5ce sendonly track and remove func. 2021-12-02 22:37:37 +01:00
Miroslav Šedivý
9be83e5160 add TODOs. 2021-11-28 18:41:34 +01:00
Miroslav Šedivý
846dda7e3e add TODOs. 2021-11-28 18:39:27 +01:00
Miroslav Šedivý
b03fad914b SDP add remote answer. 2021-11-28 18:36:36 +01:00
Miroslav Šedivý
ed8fab1afa do not fire onnegotiation when not stable. 2021-11-25 23:48:41 +01:00
Miroslav Šedivý
18e04fdb03 add track. 2021-11-25 23:47:42 +01:00
Miroslav Šedivý
4479096a48 accept offer from server. 2021-11-25 21:44:31 +01:00
Miroslav Šedivý
ed600e5588 implement signal offer. 2021-11-25 00:02:19 +01:00
Miroslav Šedivý
40d79e69b0 WebRTC: add onnegotiationneeded handler. 2021-11-24 23:56:36 +01:00
Miroslav Šedivý
c67e6c7dc3 use session ID in cursor draw functions. 2021-11-15 19:10:12 +01:00
Miroslav Šedivý
b902747b18 tentative cursor movement support. 2021-11-14 20:51:08 +01:00