pub struct MultiJoystickBusDevice<D> {
pub joystick: JoystickSelect,
/* private fields */
}Expand description
A selectable joystick controller, providing a BusDevice implementation.
This controller allows changing the implementation of the joystick device at run time.
Fields§
§joystick: JoystickSelectImplementations§
Source§impl<D> MultiJoystickBusDevice<D>where
D: Default,
impl<D> MultiJoystickBusDevice<D>where
D: Default,
pub fn new_with(joystick: JoystickSelect) -> MultiJoystickBusDevice<D>
Methods from Deref<Target = JoystickSelect>§
pub const MAX_GLOBAL_INDEX: usize = 4usize
Sourcepub fn joystick_interface(
&mut self,
index: usize,
) -> Option<&mut (dyn JoystickInterface + 'static)>
pub fn joystick_interface( &mut self, index: usize, ) -> Option<&mut (dyn JoystickInterface + 'static)>
Provides a mutable reference to the selected joystick type via a dynamic trait.
Some variants contain more than one joystick, so provide an appropriate index to
select one of them.
Returns None if a joystick with the given index doesn’t exist.
Sourcepub fn select_next_joystick(&mut self, index: usize) -> usize
pub fn select_next_joystick(&mut self, index: usize) -> usize
Returns an index of the next joystick in the current variant.
Optionally changes the current joystick device variant to the next one cyclically.
Some variants contain more than one joystick, provide an appropriate index to
select one of them. If index + 1 exceeds the number of joysticks available then
the next variant is being selected.
pub fn is_last(&self) -> bool
pub fn is_kempston(&self) -> bool
pub fn is_fuller(&self) -> bool
pub fn is_sinclair(&self) -> bool
pub fn is_cursor(&self) -> bool
Trait Implementations§
Source§impl<D> BusDevice for MultiJoystickBusDevice<D>where
D: BusDevice,
impl<D> BusDevice for MultiJoystickBusDevice<D>where
D: BusDevice,
Source§type NextDevice = D
type NextDevice = D
A type of the next device in a daisy chain.
Source§fn next_device_mut(
&mut self,
) -> &mut <MultiJoystickBusDevice<D> as BusDevice>::NextDevice
fn next_device_mut( &mut self, ) -> &mut <MultiJoystickBusDevice<D> as BusDevice>::NextDevice
Returns a mutable reference to the next device.
Source§fn next_device_ref(
&self,
) -> &<MultiJoystickBusDevice<D> as BusDevice>::NextDevice
fn next_device_ref( &self, ) -> &<MultiJoystickBusDevice<D> as BusDevice>::NextDevice
Returns a reference to the next device.
Source§fn into_next_device(
self,
) -> <MultiJoystickBusDevice<D> as BusDevice>::NextDevice
fn into_next_device( self, ) -> <MultiJoystickBusDevice<D> as BusDevice>::NextDevice
Destructs self and returns the instance of the next bus device.
Source§fn read_io(
&mut self,
port: u16,
timestamp: <MultiJoystickBusDevice<D> as BusDevice>::Timestamp,
) -> Option<(u8, Option<NonZero<u16>>)>
fn read_io( &mut self, port: u16, timestamp: <MultiJoystickBusDevice<D> as BusDevice>::Timestamp, ) -> Option<(u8, Option<NonZero<u16>>)>
This method is called by the control unit during an I/O read cycle. Read more
Source§fn reset(&mut self, timestamp: Self::Timestamp)
fn reset(&mut self, timestamp: Self::Timestamp)
Resets the device and all devices in this chain. Read more
Source§fn update_timestamp(&mut self, timestamp: Self::Timestamp)
fn update_timestamp(&mut self, timestamp: Self::Timestamp)
This method should be called near the end of each frame. Read more
Source§fn next_frame(&mut self, eof_timestamp: Self::Timestamp)
fn next_frame(&mut self, eof_timestamp: Self::Timestamp)
This method should be called just before the T-state counter of the control unit is wrapped when preparing
for the next frame. Read more
Source§impl<D> Clone for MultiJoystickBusDevice<D>where
D: Clone,
impl<D> Clone for MultiJoystickBusDevice<D>where
D: Clone,
Source§fn clone(&self) -> MultiJoystickBusDevice<D>
fn clone(&self) -> MultiJoystickBusDevice<D>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<D> Debug for MultiJoystickBusDevice<D>where
D: Debug,
impl<D> Debug for MultiJoystickBusDevice<D>where
D: Debug,
Source§impl<D> Default for MultiJoystickBusDevice<D>where
D: Default,
impl<D> Default for MultiJoystickBusDevice<D>where
D: Default,
Source§fn default() -> MultiJoystickBusDevice<D>
fn default() -> MultiJoystickBusDevice<D>
Returns the “default value” for a type. Read more
Source§impl<D> Deref for MultiJoystickBusDevice<D>
impl<D> Deref for MultiJoystickBusDevice<D>
Source§type Target = JoystickSelect
type Target = JoystickSelect
The resulting type after dereferencing.
Source§impl<D> DerefMut for MultiJoystickBusDevice<D>
impl<D> DerefMut for MultiJoystickBusDevice<D>
Source§impl<'de, D> Deserialize<'de> for MultiJoystickBusDevice<D>where
D: Deserialize<'de> + Default,
impl<'de, D> Deserialize<'de> for MultiJoystickBusDevice<D>where
D: Deserialize<'de> + Default,
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<MultiJoystickBusDevice<D>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<MultiJoystickBusDevice<D>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<D> Serialize for MultiJoystickBusDevice<D>where
D: Serialize,
impl<D> Serialize for MultiJoystickBusDevice<D>where
D: Serialize,
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl<D> Copy for MultiJoystickBusDevice<D>where
D: Copy,
impl<D> PassByAyAudioBusDevice for MultiJoystickBusDevice<D>
Auto Trait Implementations§
impl<D> Freeze for MultiJoystickBusDevice<D>where
D: Freeze,
impl<D> RefUnwindSafe for MultiJoystickBusDevice<D>where
D: RefUnwindSafe,
impl<D> Send for MultiJoystickBusDevice<D>where
D: Send,
impl<D> Sync for MultiJoystickBusDevice<D>where
D: Sync,
impl<D> Unpin for MultiJoystickBusDevice<D>where
D: Unpin,
impl<D> UnwindSafe for MultiJoystickBusDevice<D>where
D: UnwindSafe,
Blanket Implementations§
Source§impl<D, N> AyAudioBusDevice for Dwhere
<D as BusDevice>::Timestamp: Into<i32>,
D: BusDevice<NextDevice = N> + PassByAyAudioBusDevice,
N: BusDevice<Timestamp = <D as BusDevice>::Timestamp> + AyAudioBusDevice,
impl<D, N> AyAudioBusDevice for Dwhere
<D as BusDevice>::Timestamp: Into<i32>,
D: BusDevice<NextDevice = N> + PassByAyAudioBusDevice,
N: BusDevice<Timestamp = <D as BusDevice>::Timestamp> + AyAudioBusDevice,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.Source§impl<S, T> IntoSample<S> for Twhere
S: FromSample<T>,
impl<S, T> IntoSample<S> for Twhere
S: FromSample<T>,
Source§fn into_sample(self) -> S
fn into_sample(self) -> S
Convert to
S a sample type from self.Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.