Skip to main content

Driver

Struct Driver 

Source
pub struct Driver {
    pub buttplug: Arc<ButtplugClient>,
    /* private fields */
}
Expand description

Driver that can send patterns to buttplug devices.

Fields§

§buttplug: Arc<ButtplugClient>

Implementations§

Source§

impl Driver

Source

pub fn new<P: 'static + Pattern>(bp: Arc<ButtplugClient>, pattern: P) -> Self

Creates a new driver with a given ButtplugClient and Pattern.

The ButtplugClient is passed via an Arc to allow for applications to maintain access to the client after the driver has been created.

Source

pub fn set_tickrate(&mut self, hz: u64) -> &mut Self

Sets the tickrate of the driver, in Hz. The tickrate is the number of times per second that the driver samples the pattern and sends the new intensity to the device.

The default tickrate is 10 Hz.

Source

pub fn set_pattern<P: 'static + PatternGenerator>( &mut self, pattern: P, ) -> &mut Self

Sets the global pattern of the driver. This pattern is applied to all actuators on all devices that do not have a more specific pattern.

Source

pub fn set_device_pattern<P: 'static + PatternGenerator>( &mut self, device_id: u32, pattern: P, ) -> &mut Self

Sets the pattern of a specific device based on its index.

Device indexes can be found using the index() method of the ButtplugClientDevice.

Source

pub fn remove_device_pattern(&mut self, device_id: u32) -> &mut Self

Removes the pattern of a specific device based on its ID.

Source

pub fn set_actuator_pattern<P: 'static + PatternGenerator>( &mut self, device_id: u32, actuator_id: u32, pattern: P, ) -> &mut Self

Sets the pattern of a specific actuator based on its device ID and actuator ID.

Source

pub fn remove_actuator_pattern( &mut self, device_id: u32, actuator_id: u32, ) -> &mut Self

Removes the pattern of a specific actuator based on its device and actuator ID.

Source

pub async fn run(&mut self) -> Result<(), ButtplugClientError>

Runs the driver, actuating all connected devices with the current pattern. All devices will stop when run exits.

Source

pub async fn run_while( &mut self, running: AtomicBool, ) -> Result<(), ButtplugClientError>

Runs the driver, actuating all connected devices with the current pattern, while the running is true.

This is useful for when you want to cancel the driver early. All devices will stop when run_while exits.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Driver

§

impl !Send for Driver

§

impl !Sync for Driver

§

impl !UnwindSafe for Driver

§

impl Freeze for Driver

§

impl Unpin for Driver

§

impl UnsafeUnpin for Driver

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more