summaryrefslogtreecommitdiff
path: root/web/share/js
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2020-02-20 11:11:39 +0300
committerDevaev Maxim <[email protected]>2020-02-20 11:11:39 +0300
commit6cd4a0a988da566243381d7387114f4cfe9eba5f (patch)
treed6ce16b110429a0c874421ce9e595e082ffff0ef /web/share/js
parentd732b4f518ba59a69c608c8b2a46e5ec74ee294b (diff)
otg keyboard leds
Diffstat (limited to 'web/share/js')
-rw-r--r--web/share/js/kvm/keyboard.js37
-rw-r--r--web/share/js/kvm/mouse.js10
2 files changed, 32 insertions, 15 deletions
diff --git a/web/share/js/kvm/keyboard.js b/web/share/js/kvm/keyboard.js
index a443b2c9..0398baef 100644
--- a/web/share/js/kvm/keyboard.js
+++ b/web/share/js/kvm/keyboard.js
@@ -20,7 +20,7 @@
*****************************************************************************/
-import {tools, $} from "../tools.js";
+import {tools, $, $$$} from "../tools.js";
import {Keypad} from "../keypad.js";
@@ -42,16 +42,16 @@ export function Keyboard() {
$("keyboard-window").onkeydown = (event) => __keyboardHandler(event, true);
$("keyboard-window").onkeyup = (event) => __keyboardHandler(event, false);
- $("keyboard-window").onfocus = __updateLeds;
- $("keyboard-window").onblur = __updateLeds;
+ $("keyboard-window").onfocus = __updateOnlineLeds;
+ $("keyboard-window").onblur = __updateOnlineLeds;
$("stream-window").onkeydown = (event) => __keyboardHandler(event, true);
$("stream-window").onkeyup = (event) => __keyboardHandler(event, false);
- $("stream-window").onfocus = __updateLeds;
- $("stream-window").onblur = __updateLeds;
+ $("stream-window").onfocus = __updateOnlineLeds;
+ $("stream-window").onblur = __updateOnlineLeds;
- window.addEventListener("focusin", __updateLeds);
- window.addEventListener("focusout", __updateLeds);
+ window.addEventListener("focusin", __updateOnlineLeds);
+ window.addEventListener("focusout", __updateOnlineLeds);
if (tools.browser.is_mac) {
// https://bugs.chromium.org/p/chromium/issues/detail?id=28089
@@ -68,12 +68,29 @@ export function Keyboard() {
self.releaseAll();
__ws = ws;
}
- __updateLeds();
+ __updateOnlineLeds();
};
self.setState = function(state) {
__online = state.online;
- __updateLeds();
+ __updateOnlineLeds();
+
+ for (let el of $$$(".hid-keyboard-leds")) {
+ console.log(el, state.features.leds);
+ el.classList.toggle("feature-disabled", !state.features.leds);
+ }
+
+ for (let led of ["caps", "scroll", "num"]) {
+ for (let el of $$$(`.hid-keyboard-${led}-led`)) {
+ if (state.leds[led]) {
+ el.classList.add("led-green");
+ el.classList.remove("led-gray");
+ } else {
+ el.classList.add("led-gray");
+ el.classList.remove("led-green");
+ }
+ }
+ }
};
self.releaseAll = function() {
@@ -84,7 +101,7 @@ export function Keyboard() {
__keyboardHandler({code: code}, state);
};
- var __updateLeds = function() {
+ var __updateOnlineLeds = function() {
let is_captured = (
$("stream-window").classList.contains("window-active")
|| $("keyboard-window").classList.contains("window-active")
diff --git a/web/share/js/kvm/mouse.js b/web/share/js/kvm/mouse.js
index 1b8aa716..b4978dfe 100644
--- a/web/share/js/kvm/mouse.js
+++ b/web/share/js/kvm/mouse.js
@@ -65,12 +65,12 @@ export function Mouse() {
self.setSocket = function(ws) {
__ws = ws;
$("stream-box").classList.toggle("stream-box-mouse-enabled", ws);
- __updateLeds();
+ __updateOnlineLeds();
};
self.setState = function(state) {
__online = state.online;
- __updateLeds();
+ __updateOnlineLeds();
};
self.releaseAll = function() {
@@ -79,15 +79,15 @@ export function Mouse() {
var __hoverStream = function() {
__stream_hovered = true;
- __updateLeds();
+ __updateOnlineLeds();
};
var __leaveStream = function() {
__stream_hovered = false;
- __updateLeds();
+ __updateOnlineLeds();
};
- var __updateLeds = function() {
+ var __updateOnlineLeds = function() {
let is_captured = (__stream_hovered || tools.browser.is_ios);
let led = "led-gray";
let title = "Mouse free";