From 8359c5391f1f87d1a29df94ae90d431d432bc344 Mon Sep 17 00:00:00 2001 From: "1992414357@qq.com" <1992414357@qq.com> Date: Mon, 9 Jun 2025 03:26:09 +0800 Subject: 完成了控制台部分 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- console/src/bin/padc.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'console') diff --git a/console/src/bin/padc.rs b/console/src/bin/padc.rs index 742b6c2..3887dd2 100644 --- a/console/src/bin/padc.rs +++ b/console/src/bin/padc.rs @@ -14,6 +14,8 @@ use std::process::exit; use std::str::FromStr; use std::sync::Arc; use log::LevelFilter; +use tokio::signal::ctrl_c; +use nogamepads::entry_mutex; use nogamepads::logger_utils::logger_build; use nogamepads_core::data::controller::cli::cli_command::{process_controller_cli, ControllerCli}; use nogamepads_core::data::controller::structs::ControllerData; @@ -450,6 +452,16 @@ fn connect(data: &mut LocalData, args: ConnectArgs) { logger_build(LevelFilter::Info); } + // Ctrl + C + let shutdown_runtime = Arc::clone(&runtime); + let shutdown = async move { + let _ = ctrl_c().await; + entry_mutex!(shutdown_runtime, |guard| { + guard.close(); + }); + }; + services.push(Box::pin(shutdown)); + ServiceRunner::run(services); } } @@ -510,6 +522,16 @@ fn listen(data: &mut LocalData, args: ListenArgs) { logger_build(LevelFilter::Info); } + // Ctrl + C + let shutdown_runtime = Arc::clone(&runtime); + let shutdown = async move { + let _ = ctrl_c().await; + entry_mutex!(shutdown_runtime, |guard| { + guard.close_game(); + }); + }; + services.push(Box::pin(shutdown)); + ServiceRunner::run(services); } -- cgit