diff options
| author | 1992414357@qq.com <1992414357@qq.com> | 2025-06-14 16:13:13 +0800 |
|---|---|---|
| committer | 1992414357@qq.com <1992414357@qq.com> | 2025-06-14 16:13:13 +0800 |
| commit | 9d55a51782e811e8a71cda1a3d7872371ec54aeb (patch) | |
| tree | 49870217e4523a63656542c9ead0fa49ad63bc1b | |
| parent | 1ce8a3cda8ff5fd64f476ebaa036ae96ca0600ed (diff) | |
Change std::os::raw to std::ffi
| -rw-r--r-- | core/bindings/lang/clang/src/data/ngpd_game_info.rs | 3 | ||||
| -rw-r--r-- | core/bindings/lang/clang/src/data/ngpd_message.rs | 8 | ||||
| -rw-r--r-- | core/bindings/lang/clang/src/data/ngpd_player.rs | 9 |
3 files changed, 15 insertions, 5 deletions
diff --git a/core/bindings/lang/clang/src/data/ngpd_game_info.rs b/core/bindings/lang/clang/src/data/ngpd_game_info.rs index af45758..b83d0f7 100644 --- a/core/bindings/lang/clang/src/data/ngpd_game_info.rs +++ b/core/bindings/lang/clang/src/data/ngpd_game_info.rs @@ -1,6 +1,5 @@ use std::collections::HashMap; -use std::ffi::{CStr, CString}; -use std::os::raw::c_char; +use std::ffi::{c_char, CStr, CString}; #[repr(C)] pub struct KeyValuePair { diff --git a/core/bindings/lang/clang/src/data/ngpd_message.rs b/core/bindings/lang/clang/src/data/ngpd_message.rs index c11ac12..466b50d 100644 --- a/core/bindings/lang/clang/src/data/ngpd_message.rs +++ b/core/bindings/lang/clang/src/data/ngpd_message.rs @@ -1,10 +1,10 @@ +use std::ffi::{c_char, c_double}; use crate::converter::string_converter::{str_c_to_rs, str_rs_to_c}; use crate::data::ngpd_game_info::FfiGameInfo; use crate::data::ngpd_player::FfiPlayer; use nogamepads_core::data::message::message_enums::{ConnectionMessage, ConnectionResponseMessage, ControlMessage, ExitReason, GameMessage, JoinFailedMessage}; use std::mem::ManuallyDrop; use std::ops::Deref; -use std::os::raw::{c_char, c_double}; #[repr(C)] pub struct FfiControlMessage { @@ -481,31 +481,37 @@ impl From<&FfiJoinFailedMessage> for JoinFailedMessage { } } +/// Free ControlMessage #[unsafe(no_mangle)] pub extern "C" fn free_control_message(msg: FfiControlMessage) { let _ = msg; } +/// Free GameMessage #[unsafe(no_mangle)] pub extern "C" fn free_game_message(msg: FfiGameMessage) { let _ = msg; } +/// Free ExitReason #[unsafe(no_mangle)] pub extern "C" fn free_exit_reason(msg: FfiExitReason) { let _ = msg; } +/// Free ConnectionMessage #[unsafe(no_mangle)] pub extern "C" fn free_connection_message(msg: FfiConnectionMessage) { let _ = msg; } +/// Free ConnectionResponseMessage #[unsafe(no_mangle)] pub extern "C" fn free_connection_response_message(msg: FfiConnectionResponseMessage) { let _ = msg; } +/// Free JoinFailedMessage #[unsafe(no_mangle)] pub extern "C" fn free_join_failed_message(msg: FfiJoinFailedMessage) { let _ = msg; diff --git a/core/bindings/lang/clang/src/data/ngpd_player.rs b/core/bindings/lang/clang/src/data/ngpd_player.rs index a1a8370..3f6a84a 100644 --- a/core/bindings/lang/clang/src/data/ngpd_player.rs +++ b/core/bindings/lang/clang/src/data/ngpd_player.rs @@ -1,5 +1,4 @@ -use std::ffi::{CStr, CString}; -use std::os::raw::{c_char, c_double, c_int}; +use std::ffi::{c_char, c_double, c_int, CStr, CString}; use std::ptr; use nogamepads_core::data::player::player_data::{Account, Customize, Player}; @@ -73,6 +72,7 @@ impl TryFrom<&FfiPlayer> for Player { } } +/// Register a player #[unsafe(no_mangle)] pub extern "C" fn player_register(id: *const c_char, password: *const c_char) -> *mut FfiPlayer { let id_str = unsafe { CStr::from_ptr(id) }.to_string_lossy(); @@ -82,6 +82,7 @@ pub extern "C" fn player_register(id: *const c_char, password: *const c_char) -> Box::into_raw(Box::new(FfiPlayer::from(&player))) } +/// Check if the player's password is correct #[unsafe(no_mangle)] pub extern "C" fn player_check(player: *const FfiPlayer, password: *const c_char) -> bool { let player = unsafe { &*player }; @@ -92,6 +93,7 @@ pub extern "C" fn player_check(player: *const FfiPlayer, password: *const c_char .unwrap_or(false) } +/// Set the player's nickname #[unsafe(no_mangle)] pub extern "C" fn player_set_nickname(player: *mut FfiPlayer, nickname: *const c_char) { let nickname_str = unsafe { CStr::from_ptr(nickname) }.to_string_lossy().into_owned(); @@ -101,6 +103,7 @@ pub extern "C" fn player_set_nickname(player: *mut FfiPlayer, nickname: *const c *unsafe { &mut *player } = FfiPlayer::from(&rust_player); } +/// Set the player's hue #[unsafe(no_mangle)] pub extern "C" fn player_set_hue(player: *mut FfiPlayer, hue: c_int) { let mut rust_player : Player = unsafe { (&*player).try_into().unwrap() }; @@ -109,6 +112,7 @@ pub extern "C" fn player_set_hue(player: *mut FfiPlayer, hue: c_int) { *unsafe { &mut *player } = FfiPlayer::from(&rust_player); } +/// Set the player's HSV color #[unsafe(no_mangle)] pub extern "C" fn player_set_hsv( player: *mut FfiPlayer, hue: c_int, saturation: c_double, value: c_double @@ -119,6 +123,7 @@ pub extern "C" fn player_set_hsv( *unsafe { &mut *player } = FfiPlayer::from(&rust_player); } +/// Free the player #[unsafe(no_mangle)] pub extern "C" fn player_free(player: *mut FfiPlayer) { if player.is_null() { return; } |
