diff options
author | Devaev Maxim <[email protected]> | 2019-09-11 06:28:04 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2019-09-11 06:28:04 +0300 |
commit | e17889ba426a167804796a830043e59e1941972f (patch) | |
tree | 82662396ba0d4de24a7dede7ac9d667b23bba9de /kvmd/plugins/hid/__init__.py | |
parent | 447904e46804f27ee0b3b8efdd39dd2d441fc1f6 (diff) |
plugin hid
Diffstat (limited to 'kvmd/plugins/hid/__init__.py')
-rw-r--r-- | kvmd/plugins/hid/__init__.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/kvmd/plugins/hid/__init__.py b/kvmd/plugins/hid/__init__.py new file mode 100644 index 00000000..cbab9775 --- /dev/null +++ b/kvmd/plugins/hid/__init__.py @@ -0,0 +1,67 @@ +# ========================================================================== # +# # +# KVMD - The main Pi-KVM daemon. # +# # +# Copyright (C) 2018 Maxim Devaev <[email protected]> # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see <https://www.gnu.org/licenses/>. # +# # +# ========================================================================== # + + +from typing import Dict +from typing import AsyncGenerator +from typing import Type + +from .. import BasePlugin +from .. import get_plugin_class + + +# ===== +class BaseHid(BasePlugin): + def start(self) -> None: + pass + + def get_state(self) -> Dict: + raise NotImplementedError + + async def poll_state(self) -> AsyncGenerator[Dict, None]: + yield {} + raise NotImplementedError + + async def reset(self) -> None: + raise NotImplementedError + + async def send_key_event(self, key: str, state: bool) -> None: + raise NotImplementedError + + async def send_mouse_move_event(self, to_x: int, to_y: int) -> None: + raise NotImplementedError + + async def send_mouse_button_event(self, button: str, state: bool) -> None: + raise NotImplementedError + + async def send_mouse_wheel_event(self, delta_y: int) -> None: + raise NotImplementedError + + async def clear_events(self) -> None: + raise NotImplementedError + + async def cleanup(self) -> None: + pass + + +# ===== +def get_hid_class(name: str) -> Type[BaseHid]: + return get_plugin_class("hid", name) # type: ignore |