diff options
author | Devaev Maxim <[email protected]> | 2020-02-20 11:11:39 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2020-02-20 11:11:39 +0300 |
commit | 6cd4a0a988da566243381d7387114f4cfe9eba5f (patch) | |
tree | d6ce16b110429a0c874421ce9e595e082ffff0ef /web/share/js | |
parent | d732b4f518ba59a69c608c8b2a46e5ec74ee294b (diff) |
otg keyboard leds
Diffstat (limited to 'web/share/js')
-rw-r--r-- | web/share/js/kvm/keyboard.js | 37 | ||||
-rw-r--r-- | web/share/js/kvm/mouse.js | 10 |
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"; |