mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 00:51:53 +08:00
option to stream forever
This commit is contained in:
@@ -314,6 +314,8 @@ def _get_config_scheme() -> Dict:
|
|||||||
},
|
},
|
||||||
|
|
||||||
"streamer": {
|
"streamer": {
|
||||||
|
"forever": Option(False, type=valid_bool),
|
||||||
|
|
||||||
"reset_delay": Option(1.0, type=valid_float_f0),
|
"reset_delay": Option(1.0, type=valid_float_f0),
|
||||||
"shutdown_delay": Option(10.0, type=valid_float_f01),
|
"shutdown_delay": Option(10.0, type=valid_float_f01),
|
||||||
"state_poll": Option(1.0, type=valid_float_f01),
|
"state_poll": Option(1.0, type=valid_float_f01),
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ def main(argv: Optional[List[str]]=None) -> None:
|
|||||||
config = config.kvmd
|
config = config.kvmd
|
||||||
|
|
||||||
hid = get_hid_class(config.hid.type)(**config.hid._unpack(ignore=["type", "keymap"]))
|
hid = get_hid_class(config.hid.type)(**config.hid._unpack(ignore=["type", "keymap"]))
|
||||||
streamer = Streamer(**config.streamer._unpack())
|
streamer = Streamer(**config.streamer._unpack(ignore=["forever"]))
|
||||||
|
|
||||||
KvmdServer(
|
KvmdServer(
|
||||||
auth_manager=AuthManager(
|
auth_manager=AuthManager(
|
||||||
@@ -95,6 +95,8 @@ def main(argv: Optional[List[str]]=None) -> None:
|
|||||||
sync_chunk_size=config.server.sync_chunk_size,
|
sync_chunk_size=config.server.sync_chunk_size,
|
||||||
|
|
||||||
keymap_path=config.hid.keymap,
|
keymap_path=config.hid.keymap,
|
||||||
|
|
||||||
|
stream_forever=config.streamer.forever,
|
||||||
).run(**config.server._unpack(ignore=["heartbeat", "sync_chunk_size"]))
|
).run(**config.server._unpack(ignore=["heartbeat", "sync_chunk_size"]))
|
||||||
|
|
||||||
get_logger(0).info("Bye-bye")
|
get_logger(0).info("Bye-bye")
|
||||||
|
|||||||
@@ -154,6 +154,8 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
|||||||
sync_chunk_size: int,
|
sync_chunk_size: int,
|
||||||
|
|
||||||
keymap_path: str,
|
keymap_path: str,
|
||||||
|
|
||||||
|
stream_forever: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|
||||||
self.__auth_manager = auth_manager
|
self.__auth_manager = auth_manager
|
||||||
@@ -164,6 +166,8 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
|||||||
|
|
||||||
self.__heartbeat = heartbeat
|
self.__heartbeat = heartbeat
|
||||||
|
|
||||||
|
self.__stream_forever = stream_forever
|
||||||
|
|
||||||
self.__components = [
|
self.__components = [
|
||||||
*[
|
*[
|
||||||
_Component("Auth manager", "", auth_manager),
|
_Component("Auth manager", "", auth_manager),
|
||||||
@@ -399,7 +403,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
|||||||
async def __stream_controller(self) -> None:
|
async def __stream_controller(self) -> None:
|
||||||
prev = False
|
prev = False
|
||||||
while True:
|
while True:
|
||||||
cur = (self.__has_stream_clients() or self.__snapshoter.snapshoting())
|
cur = (self.__has_stream_clients() or self.__snapshoter.snapshoting() or self.__stream_forever)
|
||||||
if not prev and cur:
|
if not prev and cur:
|
||||||
await self.__streamer.ensure_start(reset=False)
|
await self.__streamer.ensure_start(reset=False)
|
||||||
elif prev and not cur:
|
elif prev and not cur:
|
||||||
|
|||||||
Reference in New Issue
Block a user