Struct Joystick
pub struct Joystick { /* private fields */ }
dep_sdl2
only.Expand description
Wrapper around the SDL_Joystick
object
Implementations§
§impl Joystick
impl Joystick
pub const fn subsystem(&self) -> &JoystickSubsystem
pub fn name(&self) -> String ⓘ
pub fn name(&self) -> String ⓘ
Return the name of the joystick or an empty string if no name is found.
pub fn instance_id(&self) -> u32 ⓘ
pub fn power_level(&self) -> Result<PowerLevel, IntegerOrSdlError> ⓘ
pub fn power_level(&self) -> Result<PowerLevel, IntegerOrSdlError> ⓘ
Retrieve the battery level of this joystick
pub fn axis(&self, axis: u32) -> Result<i16, IntegerOrSdlError> ⓘ
pub fn axis(&self, axis: u32) -> Result<i16, IntegerOrSdlError> ⓘ
Gets the position of the given axis
.
The function will fail if the joystick doesn’t have the provided axis.
Retrieve the number of buttons for this joystick
Return Ok(true)
if button
is pressed.
The function will fail if the joystick doesn’t have the provided button.
pub fn ball(&self, ball: u32) -> Result<(i32, i32), IntegerOrSdlError> ⓘ
pub fn ball(&self, ball: u32) -> Result<(i32, i32), IntegerOrSdlError> ⓘ
Return a pair (dx, dy)
containing the difference in axis
position since the last poll
pub fn hat(&self, hat: u32) -> Result<HatState, IntegerOrSdlError> ⓘ
pub fn hat(&self, hat: u32) -> Result<HatState, IntegerOrSdlError> ⓘ
Return the position of hat
for this joystick
pub fn set_rumble(
&mut self,
low_frequency_rumble: u16,
high_frequency_rumble: u16,
duration_ms: u32,
) -> Result<(), IntegerOrSdlError> ⓘ
pub fn set_rumble( &mut self, low_frequency_rumble: u16, high_frequency_rumble: u16, duration_ms: u32, ) -> Result<(), IntegerOrSdlError> ⓘ
Set the rumble motors to their specified intensities, if supported.
Automatically resets back to zero after duration_ms
milliseconds have passed.
§Notes
The value range for the intensities is 0 to 0xFFFF.
Do not use std::u32::MAX
or similar for duration_ms
if you want
the rumble effect to keep playing for a long time, as this results in
the effect ending immediately after starting due to an overflow.
Use some smaller, “huge enough” number instead.
pub fn set_rumble_triggers(
&mut self,
left_rumble: u16,
right_rumble: u16,
duration_ms: u32,
) -> Result<(), IntegerOrSdlError> ⓘ
pub fn set_rumble_triggers( &mut self, left_rumble: u16, right_rumble: u16, duration_ms: u32, ) -> Result<(), IntegerOrSdlError> ⓘ
Start a rumble effect in the joystick’s triggers.
pub fn has_rumble(&self) -> bool
pub fn has_rumble(&self) -> bool
Query whether a joystick has rumble support.
pub fn has_rumble_triggers(&self) -> bool
pub fn has_rumble_triggers(&self) -> bool
Query whether a joystick has rumble support on triggers.
pub fn set_led(
&mut self,
red: u8,
green: u8,
blue: u8,
) -> Result<(), IntegerOrSdlError> ⓘ
pub fn set_led( &mut self, red: u8, green: u8, blue: u8, ) -> Result<(), IntegerOrSdlError> ⓘ
Update a joystick’s LED color.
pub fn send_effect(&mut self, data: &[u8]) -> Result<(), IntegerOrSdlError> ⓘ
pub fn send_effect(&mut self, data: &[u8]) -> Result<(), IntegerOrSdlError> ⓘ
Send a joystick specific effect packet.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Joystick
impl RefUnwindSafe for Joystick
impl !Send for Joystick
impl !Sync for Joystick
impl Unpin for Joystick
impl UnwindSafe for Joystick
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
Source§fn byte_align(&self) -> usize
fn byte_align(&self) -> usize
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T, R> Chain<R> for Twhere
T: ?Sized,
impl<T, R> Chain<R> for Twhere
T: ?Sized,
Source§impl<T> ExtAny for T
impl<T> ExtAny for T
Source§fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
TypeId
of Self
using a custom hasher.Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§impl<T> ExtMem for Twhere
T: ?Sized,
impl<T> ExtMem for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Source§fn mem_align_of<T>() -> usize
fn mem_align_of<T>() -> usize
Source§fn mem_align_of_val(&self) -> usize
fn mem_align_of_val(&self) -> usize
Source§fn mem_size_of<T>() -> usize
fn mem_size_of<T>() -> usize
Source§fn mem_size_of_val(&self) -> usize
fn mem_size_of_val(&self) -> usize
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
true
if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
self
without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
unsafe_slice
only.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Hook for T
impl<T> Hook for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more