summaryrefslogtreecommitdiff
path: root/src/types/controller.rs
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2025-09-19 12:02:54 +1200
committerBen Bridle <ben@derelict.engineering>2025-09-19 12:05:46 +1200
commit1836ac3c6b2abd5dce487f1d7589cfe7466c0fd2 (patch)
treed1e34ba91f7ecef855dc9652ca2063ac33dabf6c /src/types/controller.rs
parent661b4012654c8b41a782adf6a5cc1092b8942803 (diff)
downloadbedrock-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.rs6
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) => {{