aboutsummaryrefslogtreecommitdiff
path: root/core/src/pad_service/client.rs
diff options
context:
space:
mode:
author1992414357@qq.com <1992414357@qq.com>2025-05-29 14:20:04 +0800
committer1992414357@qq.com <1992414357@qq.com>2025-05-29 14:20:04 +0800
commit3d23632d7c6330e0ec98dad53656dfed5f5767b0 (patch)
treed8d59726ca5b046b55ba502f1b8d5ba3a561a569 /core/src/pad_service/client.rs
parent9d3d6d4195e58c51166811d8357a331d53c4cdd4 (diff)
1. 优化了服务器的消息处理方式
2. 将c和c#的绑定移动到了./bindings/文件夹
Diffstat (limited to 'core/src/pad_service/client.rs')
-rw-r--r--core/src/pad_service/client.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/src/pad_service/client.rs b/core/src/pad_service/client.rs
index c0b8282..ea0f4ba 100644
--- a/core/src/pad_service/client.rs
+++ b/core/src/pad_service/client.rs
@@ -21,6 +21,7 @@ pub mod nogamepads_client {
use crate::DEFAULT_PORT;
use crate::pad_data::game_profile::game_profile::GameProfile;
use crate::pad_data::pad_messages::nogamepads_message_encoder::NgpdMessageEncoder;
+ use crate::pad_data::pad_messages::nogamepads_messages::ControlMessage::{Axis, Dir, Msg, Pressed, Released};
type WriteList = Arc<Mutex<VecDeque<ControlMessage>>>;
type ReadList = Arc<Mutex<VecDeque<GameMessage>>>;
@@ -129,6 +130,30 @@ pub mod nogamepads_client {
// 客户端消息管理
impl PadClient {
+ pub fn key_press(&self, key_id: u8) {
+ self.put_msg(Pressed(key_id));
+ }
+
+ pub fn key_release(&self, key_id: u8) {
+ self.put_msg(Released(key_id));
+ }
+
+ pub fn change_axis(&self, axis_id: u8, axis: f64) {
+ self.put_msg(Axis(axis_id, axis));
+ }
+
+ pub fn change_direction(&self, direction_id: u8, x: f64, y: f64) {
+ self.put_msg(Dir(direction_id, (x.clamp(0.0, 1.0), y.clamp(0.0, 1.0))));
+ }
+
+ pub fn say_str(&self, msg: &str) {
+ self.put_msg(Msg(msg.to_owned()));
+ }
+
+ pub fn say(&self, msg: String) {
+ self.put_msg(Msg(msg));
+ }
+
pub fn put_msg(&self, msg: ControlMessage) {
let mut guard = self.write_list.lock().unwrap();
guard.push_back(msg);