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": {
|
||||
"forever": Option(False, type=valid_bool),
|
||||
|
||||
"reset_delay": Option(1.0, type=valid_float_f0),
|
||||
"shutdown_delay": Option(10.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
|
||||
|
||||
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(
|
||||
auth_manager=AuthManager(
|
||||
@@ -95,6 +95,8 @@ def main(argv: Optional[List[str]]=None) -> None:
|
||||
sync_chunk_size=config.server.sync_chunk_size,
|
||||
|
||||
keymap_path=config.hid.keymap,
|
||||
|
||||
stream_forever=config.streamer.forever,
|
||||
).run(**config.server._unpack(ignore=["heartbeat", "sync_chunk_size"]))
|
||||
|
||||
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,
|
||||
|
||||
keymap_path: str,
|
||||
|
||||
stream_forever: bool,
|
||||
) -> None:
|
||||
|
||||
self.__auth_manager = auth_manager
|
||||
@@ -164,6 +166,8 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
||||
|
||||
self.__heartbeat = heartbeat
|
||||
|
||||
self.__stream_forever = stream_forever
|
||||
|
||||
self.__components = [
|
||||
*[
|
||||
_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:
|
||||
prev = False
|
||||
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:
|
||||
await self.__streamer.ensure_start(reset=False)
|
||||
elif prev and not cur:
|
||||
|
||||
Reference in New Issue
Block a user