otg keyboard leds

This commit is contained in:
Devaev Maxim
2020-02-20 11:11:39 +03:00
parent d732b4f518
commit 6cd4a0a988
12 changed files with 302 additions and 66 deletions

View File

@@ -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")

View File

@@ -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";