summaryrefslogtreecommitdiff
path: root/kvmd/web/js/hid.js
diff options
context:
space:
mode:
Diffstat (limited to 'kvmd/web/js/hid.js')
-rw-r--r--kvmd/web/js/hid.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/kvmd/web/js/hid.js b/kvmd/web/js/hid.js
new file mode 100644
index 00000000..3d0ed961
--- /dev/null
+++ b/kvmd/web/js/hid.js
@@ -0,0 +1,29 @@
+var hid = new function() {
+ var __install_timer = null;
+
+ this.installCapture = function(ws) {
+ var http = tools.makeRequest("GET", "/kvmd/hid", function() {
+ if (http.readyState === 4) {
+ if (http.status === 200) {
+ features = JSON.parse(http.responseText).result.features;
+ if (features.mouse) {
+ mouse.installCapture(ws);
+ }
+ keyboard.installCapture(ws);
+ } else {
+ tools.error("Can't resolve HID features:", http.responseText);
+ __install_timer = setTimeout(() => hid.installCapture(ws), 1000);
+ }
+ }
+ });
+ };
+
+ this.clearCapture = function() {
+ if (__install_timer) {
+ clearTimeout(__install_timer);
+ __install_timer = null;
+ }
+ mouse.clearCapture();
+ keyboard.clearCapture();
+ };
+}