Commit Graph

432 Commits

Author SHA1 Message Date
Miroslav Šedivý
e0366905ad use glob to load plugins. 2024-03-17 13:10:58 +01:00
Miroslav Šedivý
bdacd55480 fix members. 2024-03-17 11:33:20 +01:00
Miroslav Šedivý
4b1fbbf836 fix watchers and intervals. 2024-03-17 11:21:14 +01:00
Miroslav Šedivý
27d88cee08 WIP. 2024-03-17 00:00:14 +01:00
Miroslav Šedivý
37f93eae6b fix private properties. 2024-02-21 18:10:18 +01:00
Miroslav Šedivý
09acada1af fix icon. 2024-02-20 18:28:26 +01:00
Miroslav Šedivý
4e693ae4a3
Upgrade to node 18 and dependencies (#46)
* upgrade to nodejs 18.

* npm update.

* upgrade linter.

* upgrade axios.

* upgrade saas loader.

* upgrade typescript.
2024-01-26 19:25:22 +01:00
Miroslav Šedivý
91dee46db4
Add Xorg modifiers (#44)
* add modifiers.

* use modifiers.

* scroll rename to delta and add ctrl key.
2023-09-11 16:38:12 +02:00
Miroslav Šedivý
c71a9d7626
split touch events to enabled and supported. (#43) 2023-08-31 13:50:57 +02:00
Miroslav Šedivý
0d830998e5
Native touch events (#42)
* add webrtc touch events.

* bind touch events to overlay.

* we care only for changed touches.

* switch to int32.

* pressure uint16.

* add implicit control.

* add touch to controls.

* fix iteration of changedTouches.

* switch pressure to uint8.

* convert force to pressure.

* add hasTouchEvents.

* add touch_events to state.

* bind touch or gesture handler on demand.

* remove duplicate gesture detach.
2023-08-17 16:16:08 +02:00
Miroslav Šedivý
e13c97299d
disable pointer events when session can not control. (#41) 2023-07-16 16:54:28 +02:00
Miroslav Šedivý
4918c62c9a
Add support for touch gestures (#40)
* implement control using webrtc.

* overlay to use NekoControl.

* WIP.

* add is_host to control state.

* control use webrtc only if hosting.

* add proper links to 3rd party code.

* fix button events for gestureHandler.

* lint.

* fix implicit control gain for touch events.
2023-07-07 14:59:54 +02:00
Miroslav Šedivý
e58aecc49c
Refactor signaling for video and audio (#39)
* refactor webrtc video and audio.

* do not reconnect if video is disabled.

* export webrtc types.
2023-06-26 21:27:26 +02:00
Miroslav Šedivý
810759b641 hotfix: capslock on macos chrome. 2023-06-13 23:39:15 +02:00
Miroslav Šedivý
2c67394a7a add locked_controls to settings clear. 2023-06-07 17:36:20 +02:00
Miroslav Šedivý
4f08056c59 do not fail on remote ICE candidate error in offer. 2023-06-02 12:54:10 +02:00
Miroslav Šedivý
720c2f7a3d call onDisconnected in webrtc close. 2023-06-02 12:54:10 +02:00
Miroslav Šedivý
78a9a31624 add await to setLocalDescription. 2023-06-02 12:54:10 +02:00
Miroslav Šedivý
147c94958e add plugins to state. 2023-05-20 18:27:22 +02:00
Miroslav Šedivý
8d39a95e92
WebRTC congestion control (#24)
* Move congestion control to server

* Address MR comments

* lint.

* bring back webrtc stats sync with state.

* update webrtc messages.

* set bitrate & video auto for signal request.

* clear up bitrate & video_auto.

* add bitrate and audio for connect function.

* reintroduce server side congestion control if video auto is false.

* mov ecode around.

* fix default video_auto.

* revert bitrate addition.

* remove video from signal provide.

---------

Co-authored-by: Aleksandar Sukovic <aleksandar.sukovic@gmail.com>
2023-05-15 19:32:21 +02:00
Miroslav Šedivý
da252dfd31 add stats to session state. 2023-05-15 17:09:19 +02:00
Miroslav Šedivý
0f9679d6d6 update api. 2023-05-15 17:09:08 +02:00
Miroslav Šedivý
af5aefd669 add locked_controls to state. 2023-05-15 17:09:08 +02:00
Miroslav Šedivý
13caeb3746 fix autoplay. 2023-05-14 22:20:10 +02:00
Miroslav Šedivý
645c4aa184 fix autoconnect for set url. 2023-05-14 22:20:10 +02:00
Miroslav Šedivý
2ee592baf3 audio & video devices select. 2023-04-30 23:57:39 +02:00
Miroslav Šedivý
fa0ac9d82e
Add touch events (#33)
* add touch events handler.

* bind events as non-passive.

* fix touch events.
2023-04-28 19:44:35 +02:00
Miroslav Šedivý
8df29744b0
Screen sync add custom multiplier and rate settings (#32)
* screen sync add custom multiplier and rate settings.

* fix rate.

* add to page.
2023-04-28 19:39:11 +02:00
Miroslav Šedivý
1d076cc20c
Add TS types support for build (#28)
* build ts types.

* fix default export for lib.
2023-04-22 14:23:17 +02:00
Miroslav Šedivý
9f8310fe10
ensure that close is not intercepted by any other event. (#29) 2023-04-22 14:23:06 +02:00
Miroslav Šedivý
9b851aac61 use window matchMedia. 2023-04-19 12:32:48 +02:00
Miroslav Šedivý
f9417db520 add pixel ratio change listener. 2023-04-19 12:32:48 +02:00
Miroslav Šedivý
a79a5cfd39 use canvas size when clearing canvas. 2023-04-19 12:32:48 +02:00
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