mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 09:01:54 +08:00
new hid protocol with crc
This commit is contained in:
@@ -62,6 +62,11 @@ function Hid() {
|
||||
__mouse.setSocket(ws);
|
||||
};
|
||||
|
||||
self.setState = function(state) {
|
||||
__keyboard.setState(state);
|
||||
__mouse.setState(state);
|
||||
};
|
||||
|
||||
var __releaseAll = function() {
|
||||
__keyboard.releaseAll();
|
||||
};
|
||||
|
||||
@@ -4,6 +4,7 @@ function Keyboard() {
|
||||
/********************************************************************************/
|
||||
|
||||
var __ws = null;
|
||||
var __ok = true;
|
||||
|
||||
var __keys = [].slice.call($$$("div#keyboard-desktop div.keyboard-block div.keyboard-row div.key"));
|
||||
var __modifiers = [].slice.call($$$("div#keyboard-desktop div.keyboard-block div.keyboard-row div.modifier"));
|
||||
@@ -53,6 +54,10 @@ function Keyboard() {
|
||||
__updateLeds();
|
||||
};
|
||||
|
||||
self.setState = function(state) {
|
||||
__ok = state.ok;
|
||||
};
|
||||
|
||||
self.releaseAll = function() {
|
||||
__keys.concat(__modifiers).forEach(function(el_key) {
|
||||
if (__isActive(el_key)) {
|
||||
@@ -73,8 +78,13 @@ function Keyboard() {
|
||||
|| $("keyboard-window").classList.contains("window-active")
|
||||
)
|
||||
) {
|
||||
$("hid-keyboard-led").className = "led-green";
|
||||
$("hid-keyboard-led").title = "Keyboard captured";
|
||||
if (__ok) {
|
||||
$("hid-keyboard-led").className = "led-green";
|
||||
$("hid-keyboard-led").title = "Keyboard captured";
|
||||
} else {
|
||||
$("hid-keyboard-led").className = "led-yellow";
|
||||
$("hid-keyboard-led").title = "Keyboard captured, HID offline";
|
||||
}
|
||||
} else {
|
||||
$("hid-keyboard-led").className = "led-gray";
|
||||
$("hid-keyboard-led").title = "Keyboard free";
|
||||
|
||||
@@ -4,6 +4,7 @@ function Mouse() {
|
||||
/********************************************************************************/
|
||||
|
||||
var __ws = null;
|
||||
var __ok = true;
|
||||
|
||||
var __current_pos = {x: 0, y:0};
|
||||
var __sent_pos = {x: 0, y:0};
|
||||
@@ -44,6 +45,10 @@ function Mouse() {
|
||||
__updateLeds();
|
||||
};
|
||||
|
||||
self.setState = function(state) {
|
||||
__ok = state.ok;
|
||||
};
|
||||
|
||||
var __hoverStream = function() {
|
||||
__stream_hovered = true;
|
||||
__updateLeds();
|
||||
@@ -57,8 +62,13 @@ function Mouse() {
|
||||
var __updateLeds = function() {
|
||||
if (__ws && (__stream_hovered || tools.browser.is_ios)) {
|
||||
// Mouse is always available on iOS via touchscreen
|
||||
$("hid-mouse-led").className = "led-green";
|
||||
$("hid-mouse-led").title = "Mouse tracked";
|
||||
if (__ok) {
|
||||
$("hid-mouse-led").className = "led-green";
|
||||
$("hid-mouse-led").title = "Mouse tracked";
|
||||
} else {
|
||||
$("hid-mouse-led").className = "led-yellow";
|
||||
$("hid-mouse-led").title = "Mouse tracked, HID offline";
|
||||
}
|
||||
} else {
|
||||
$("hid-mouse-led").className = "led-gray";
|
||||
$("hid-mouse-led").title = "Mouse free";
|
||||
|
||||
@@ -84,6 +84,8 @@ function Session() {
|
||||
} else if (event.msg_type === "event") {
|
||||
if (event.msg.event === "info_state") {
|
||||
__setKvmdInfo(event.msg.event_attrs);
|
||||
} else if (event.msg.event === "hid_state") {
|
||||
__hid.setState(event.msg.event_attrs);
|
||||
} else if (event.msg.event === "atx_state") {
|
||||
__atx.setState(event.msg.event_attrs);
|
||||
} else if (event.msg.event === "msd_state") {
|
||||
|
||||
Reference in New Issue
Block a user