#[cfg(feature = "Gaming_Input_Custom")] pub mod Custom; #[cfg(feature = "Gaming_Input_ForceFeedback")] pub mod ForceFeedback; #[cfg(feature = "Gaming_Input_Preview")] pub mod Preview; pub type ArcadeStick = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct ArcadeStickButtons(pub u32); impl ArcadeStickButtons { pub const None: Self = Self(0u32); pub const StickUp: Self = Self(1u32); pub const StickDown: Self = Self(2u32); pub const StickLeft: Self = Self(4u32); pub const StickRight: Self = Self(8u32); pub const Action1: Self = Self(16u32); pub const Action2: Self = Self(32u32); pub const Action3: Self = Self(64u32); pub const Action4: Self = Self(128u32); pub const Action5: Self = Self(256u32); pub const Action6: Self = Self(512u32); pub const Special1: Self = Self(1024u32); pub const Special2: Self = Self(2048u32); } impl ::core::marker::Copy for ArcadeStickButtons {} impl ::core::clone::Clone for ArcadeStickButtons { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Gaming_Input\"`*"] pub struct ArcadeStickReading { pub Timestamp: u64, pub Buttons: ArcadeStickButtons, } impl ::core::marker::Copy for ArcadeStickReading {} impl ::core::clone::Clone for ArcadeStickReading { fn clone(&self) -> Self { *self } } pub type FlightStick = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct FlightStickButtons(pub u32); impl FlightStickButtons { pub const None: Self = Self(0u32); pub const FirePrimary: Self = Self(1u32); pub const FireSecondary: Self = Self(2u32); } impl ::core::marker::Copy for FlightStickButtons {} impl ::core::clone::Clone for FlightStickButtons { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Gaming_Input\"`*"] pub struct FlightStickReading { pub Timestamp: u64, pub Buttons: FlightStickButtons, pub HatSwitch: GameControllerSwitchPosition, pub Roll: f64, pub Pitch: f64, pub Yaw: f64, pub Throttle: f64, } impl ::core::marker::Copy for FlightStickReading {} impl ::core::clone::Clone for FlightStickReading { fn clone(&self) -> Self { *self } } #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct GameControllerButtonLabel(pub i32); impl GameControllerButtonLabel { pub const None: Self = Self(0i32); pub const XboxBack: Self = Self(1i32); pub const XboxStart: Self = Self(2i32); pub const XboxMenu: Self = Self(3i32); pub const XboxView: Self = Self(4i32); pub const XboxUp: Self = Self(5i32); pub const XboxDown: Self = Self(6i32); pub const XboxLeft: Self = Self(7i32); pub const XboxRight: Self = Self(8i32); pub const XboxA: Self = Self(9i32); pub const XboxB: Self = Self(10i32); pub const XboxX: Self = Self(11i32); pub const XboxY: Self = Self(12i32); pub const XboxLeftBumper: Self = Self(13i32); pub const XboxLeftTrigger: Self = Self(14i32); pub const XboxLeftStickButton: Self = Self(15i32); pub const XboxRightBumper: Self = Self(16i32); pub const XboxRightTrigger: Self = Self(17i32); pub const XboxRightStickButton: Self = Self(18i32); pub const XboxPaddle1: Self = Self(19i32); pub const XboxPaddle2: Self = Self(20i32); pub const XboxPaddle3: Self = Self(21i32); pub const XboxPaddle4: Self = Self(22i32); pub const Mode: Self = Self(23i32); pub const Select: Self = Self(24i32); pub const Menu: Self = Self(25i32); pub const View: Self = Self(26i32); pub const Back: Self = Self(27i32); pub const Start: Self = Self(28i32); pub const Options: Self = Self(29i32); pub const Share: Self = Self(30i32); pub const Up: Self = Self(31i32); pub const Down: Self = Self(32i32); pub const Left: Self = Self(33i32); pub const Right: Self = Self(34i32); pub const LetterA: Self = Self(35i32); pub const LetterB: Self = Self(36i32); pub const LetterC: Self = Self(37i32); pub const LetterL: Self = Self(38i32); pub const LetterR: Self = Self(39i32); pub const LetterX: Self = Self(40i32); pub const LetterY: Self = Self(41i32); pub const LetterZ: Self = Self(42i32); pub const Cross: Self = Self(43i32); pub const Circle: Self = Self(44i32); pub const Square: Self = Self(45i32); pub const Triangle: Self = Self(46i32); pub const LeftBumper: Self = Self(47i32); pub const LeftTrigger: Self = Self(48i32); pub const LeftStickButton: Self = Self(49i32); pub const Left1: Self = Self(50i32); pub const Left2: Self = Self(51i32); pub const Left3: Self = Self(52i32); pub const RightBumper: Self = Self(53i32); pub const RightTrigger: Self = Self(54i32); pub const RightStickButton: Self = Self(55i32); pub const Right1: Self = Self(56i32); pub const Right2: Self = Self(57i32); pub const Right3: Self = Self(58i32); pub const Paddle1: Self = Self(59i32); pub const Paddle2: Self = Self(60i32); pub const Paddle3: Self = Self(61i32); pub const Paddle4: Self = Self(62i32); pub const Plus: Self = Self(63i32); pub const Minus: Self = Self(64i32); pub const DownLeftArrow: Self = Self(65i32); pub const DialLeft: Self = Self(66i32); pub const DialRight: Self = Self(67i32); pub const Suspension: Self = Self(68i32); } impl ::core::marker::Copy for GameControllerButtonLabel {} impl ::core::clone::Clone for GameControllerButtonLabel { fn clone(&self) -> Self { *self } } #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct GameControllerSwitchKind(pub i32); impl GameControllerSwitchKind { pub const TwoWay: Self = Self(0i32); pub const FourWay: Self = Self(1i32); pub const EightWay: Self = Self(2i32); } impl ::core::marker::Copy for GameControllerSwitchKind {} impl ::core::clone::Clone for GameControllerSwitchKind { fn clone(&self) -> Self { *self } } #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct GameControllerSwitchPosition(pub i32); impl GameControllerSwitchPosition { pub const Center: Self = Self(0i32); pub const Up: Self = Self(1i32); pub const UpRight: Self = Self(2i32); pub const Right: Self = Self(3i32); pub const DownRight: Self = Self(4i32); pub const Down: Self = Self(5i32); pub const DownLeft: Self = Self(6i32); pub const Left: Self = Self(7i32); pub const UpLeft: Self = Self(8i32); } impl ::core::marker::Copy for GameControllerSwitchPosition {} impl ::core::clone::Clone for GameControllerSwitchPosition { fn clone(&self) -> Self { *self } } pub type Gamepad = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct GamepadButtons(pub u32); impl GamepadButtons { pub const None: Self = Self(0u32); pub const Menu: Self = Self(1u32); pub const View: Self = Self(2u32); pub const A: Self = Self(4u32); pub const B: Self = Self(8u32); pub const X: Self = Self(16u32); pub const Y: Self = Self(32u32); pub const DPadUp: Self = Self(64u32); pub const DPadDown: Self = Self(128u32); pub const DPadLeft: Self = Self(256u32); pub const DPadRight: Self = Self(512u32); pub const LeftShoulder: Self = Self(1024u32); pub const RightShoulder: Self = Self(2048u32); pub const LeftThumbstick: Self = Self(4096u32); pub const RightThumbstick: Self = Self(8192u32); pub const Paddle1: Self = Self(16384u32); pub const Paddle2: Self = Self(32768u32); pub const Paddle3: Self = Self(65536u32); pub const Paddle4: Self = Self(131072u32); } impl ::core::marker::Copy for GamepadButtons {} impl ::core::clone::Clone for GamepadButtons { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Gaming_Input\"`*"] pub struct GamepadReading { pub Timestamp: u64, pub Buttons: GamepadButtons, pub LeftTrigger: f64, pub RightTrigger: f64, pub LeftThumbstickX: f64, pub LeftThumbstickY: f64, pub RightThumbstickX: f64, pub RightThumbstickY: f64, } impl ::core::marker::Copy for GamepadReading {} impl ::core::clone::Clone for GamepadReading { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Gaming_Input\"`*"] pub struct GamepadVibration { pub LeftMotor: f64, pub RightMotor: f64, pub LeftTrigger: f64, pub RightTrigger: f64, } impl ::core::marker::Copy for GamepadVibration {} impl ::core::clone::Clone for GamepadVibration { fn clone(&self) -> Self { *self } } pub type Headset = *mut ::core::ffi::c_void; pub type IGameController = *mut ::core::ffi::c_void; pub type IGameControllerBatteryInfo = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct OptionalUINavigationButtons(pub u32); impl OptionalUINavigationButtons { pub const None: Self = Self(0u32); pub const Context1: Self = Self(1u32); pub const Context2: Self = Self(2u32); pub const Context3: Self = Self(4u32); pub const Context4: Self = Self(8u32); pub const PageUp: Self = Self(16u32); pub const PageDown: Self = Self(32u32); pub const PageLeft: Self = Self(64u32); pub const PageRight: Self = Self(128u32); pub const ScrollUp: Self = Self(256u32); pub const ScrollDown: Self = Self(512u32); pub const ScrollLeft: Self = Self(1024u32); pub const ScrollRight: Self = Self(2048u32); } impl ::core::marker::Copy for OptionalUINavigationButtons {} impl ::core::clone::Clone for OptionalUINavigationButtons { fn clone(&self) -> Self { *self } } pub type RacingWheel = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct RacingWheelButtons(pub u32); impl RacingWheelButtons { pub const None: Self = Self(0u32); pub const PreviousGear: Self = Self(1u32); pub const NextGear: Self = Self(2u32); pub const DPadUp: Self = Self(4u32); pub const DPadDown: Self = Self(8u32); pub const DPadLeft: Self = Self(16u32); pub const DPadRight: Self = Self(32u32); pub const Button1: Self = Self(64u32); pub const Button2: Self = Self(128u32); pub const Button3: Self = Self(256u32); pub const Button4: Self = Self(512u32); pub const Button5: Self = Self(1024u32); pub const Button6: Self = Self(2048u32); pub const Button7: Self = Self(4096u32); pub const Button8: Self = Self(8192u32); pub const Button9: Self = Self(16384u32); pub const Button10: Self = Self(32768u32); pub const Button11: Self = Self(65536u32); pub const Button12: Self = Self(131072u32); pub const Button13: Self = Self(262144u32); pub const Button14: Self = Self(524288u32); pub const Button15: Self = Self(1048576u32); pub const Button16: Self = Self(2097152u32); } impl ::core::marker::Copy for RacingWheelButtons {} impl ::core::clone::Clone for RacingWheelButtons { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Gaming_Input\"`*"] pub struct RacingWheelReading { pub Timestamp: u64, pub Buttons: RacingWheelButtons, pub PatternShifterGear: i32, pub Wheel: f64, pub Throttle: f64, pub Brake: f64, pub Clutch: f64, pub Handbrake: f64, } impl ::core::marker::Copy for RacingWheelReading {} impl ::core::clone::Clone for RacingWheelReading { fn clone(&self) -> Self { *self } } pub type RawGameController = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Gaming_Input\"`*"] #[repr(transparent)] pub struct RequiredUINavigationButtons(pub u32); impl RequiredUINavigationButtons { pub const None: Self = Self(0u32); pub const Menu: Self = Self(1u32); pub const View: Self = Self(2u32); pub const Accept: Self = Self(4u32); pub const Cancel: Self = Self(8u32); pub const Up: Self = Self(16u32); pub const Down: Self = Self(32u32); pub const Left: Self = Self(64u32); pub const Right: Self = Self(128u32); } impl ::core::marker::Copy for RequiredUINavigationButtons {} impl ::core::clone::Clone for RequiredUINavigationButtons { fn clone(&self) -> Self { *self } } pub type UINavigationController = *mut ::core::ffi::c_void; #[repr(C)] #[doc = "*Required features: `\"Gaming_Input\"`*"] pub struct UINavigationReading { pub Timestamp: u64, pub RequiredButtons: RequiredUINavigationButtons, pub OptionalButtons: OptionalUINavigationButtons, } impl ::core::marker::Copy for UINavigationReading {} impl ::core::clone::Clone for UINavigationReading { fn clone(&self) -> Self { *self } }