diff options
author | Ben Bridle <ben@derelict.engineering> | 2025-09-19 12:02:54 +1200 |
---|---|---|
committer | Ben Bridle <ben@derelict.engineering> | 2025-09-19 12:05:46 +1200 |
commit | 1836ac3c6b2abd5dce487f1d7589cfe7466c0fd2 (patch) | |
tree | d1e34ba91f7ecef855dc9652ca2063ac33dabf6c /src/types/controller.rs | |
parent | 661b4012654c8b41a782adf6a5cc1092b8942803 (diff) | |
download | bedrock-pc-1836ac3c6b2abd5dce487f1d7589cfe7466c0fd2.zip |
Gate gamepad support behind a feature flag
This is to make it possible to compile bedrock-pc without gamepad
support, which is useful when the target platform doesn't have the
libraries for udev (required by the gilrs dependency).
This commit is a bit of a hack, it'd be nice to implement this better
some day.
Diffstat (limited to 'src/types/controller.rs')
-rw-r--r-- | src/types/controller.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/types/controller.rs b/src/types/controller.rs index 76b77e3..42d3f8c 100644 --- a/src/types/controller.rs +++ b/src/types/controller.rs @@ -1,11 +1,15 @@ use crate::*; +#[cfg(feature = "gamepad")] pub use gilrs::{Gilrs, GamepadId}; pub struct OwnedGamepad { tag: usize, + #[cfg(feature = "gamepad")] id: Option<GamepadId>, + #[cfg(not(feature = "gamepad"))] + id: Option<()>, gamepad: Gamepad, } @@ -15,6 +19,7 @@ impl OwnedGamepad { } /// Returns Some if the ID owns this gamepad. + #[cfg(feature = "gamepad")] pub fn register(&mut self, new_id: GamepadId) -> Option<&mut Gamepad> { if let Some(id) = self.id { match id == new_id { @@ -102,6 +107,7 @@ impl Gamepad { } // Returns true if the state changed. + #[cfg(feature = "gamepad")] pub fn process_event(&mut self, event: &gilrs::Event) -> bool { macro_rules! schmitt { ($name_neg:ident, $name_pos:ident, $v:expr) => {{ |