separate keyboard and mouse statuses

This commit is contained in:
Devaev Maxim 2019-09-30 00:43:35 +03:00
parent a60e4142b8
commit a089334371
2 changed files with 9 additions and 4 deletions

View File

@ -118,7 +118,7 @@ class _MouseButtonEvent(_BoolEvent):
class _MouseWheelEvent(_IntEvent):
def __post_init__(self) -> None:
assert self.x == 0 # Горизонтальная прокрутка пока не поддерживается
assert -128 <= self.y <= 127
assert -127 <= self.y <= 127
def make_command(self) -> bytes:
return b"\x14\x00" + struct.pack(">b", self.y) + b"\x00\x00"
@ -188,7 +188,12 @@ class Plugin(BaseHid, multiprocessing.Process): # pylint: disable=too-many-inst
multiprocessing.Process.start(self)
def get_state(self) -> Dict:
return {"online": bool(self.__online_shared.value)}
online = bool(self.__online_shared.value)
return {
"online": online,
"keyboard": {"online": online},
"mouse": {"online": online},
}
async def poll_state(self) -> AsyncGenerator[Dict, None]:
prev_state: Dict = {}

View File

@ -95,8 +95,8 @@ export function Hid() {
};
self.setState = function(state) {
__keyboard.setState(state);
__mouse.setState(state);
__keyboard.setState(state.keyboard);
__mouse.setState(state.mouse);
};
var __releaseAll = function() {