commonlibsse_ng\re\b/
BSInputDeviceManager.rs1use crate::re::BSFixedString::BSFixedString;
2use crate::re::BSIInputDevice::BSIInputDevice;
3use crate::re::BSTEvent::BSTEventSource;
4use crate::re::InputDevices::INPUT_DEVICE;
5use crate::re::InputEvent::InputEvent;
6
7#[repr(C)]
8#[derive(Debug)]
9pub struct BSInputDeviceManager {
10 pub __base: BSTEventSource<*mut InputEvent>, #[allow(unused)]
14 pad59: u8, #[allow(unused)]
16 pad5A: u16, #[allow(unused)]
18 pad5C: u32, pub devices: [*mut BSIInputDevice; 4], }
22const _: () = assert!(core::mem::size_of::<BSInputDeviceManager>() == 0x80);
23
24impl BSInputDeviceManager {
25 #[commonlibsse_ng_derive_internal::relocate(
27 cast_as = "*mut *mut BSInputDeviceManager",
28 default = "None",
29 deref_once,
30 id(se = 516574, ae = 402776)
31 )]
32 pub fn get_singleton() -> Option<&'static BSInputDeviceManager> {
33 |deref_type: DerefType| unsafe { deref_type.as_ref() }
34 }
35
36 #[commonlibsse_ng_derive_internal::relocate(
38 cast_as = "*mut *mut BSInputDeviceManager",
39 default = "None",
40 deref_once,
41 id(se = 516574, ae = 402776)
42 )]
43 pub fn get_singleton_mut() -> Option<&'static mut BSInputDeviceManager> {
44 |deref_type: DerefType| unsafe { deref_type.as_mut() }
45 }
46
47 #[inline]
49 pub fn get_button_name_from_id(
50 &mut self,
51 device: INPUT_DEVICE,
52 id: u32,
53 ) -> Option<BSFixedString> {
54 let device = unsafe { self.devices.get_mut(device.0 as usize)?.as_mut() }?;
55
56 let mut output = BSFixedString::new(c"");
57 unsafe { (device.vtable.as_ref()?.GetKeyMapping)(device, id, &mut output) };
58 Some(output)
59 }
60}