pub struct Signal { /* private fields */ }Implementations§
Source§impl Signal
impl Signal
Sourcepub fn get_status(&self) -> SignalStatus
pub fn get_status(&self) -> SignalStatus
Get the status of the signal instance.
Calling this function will reset the flags was_set_remote and was_set_local and return their pre-reset values.
§Examples
Use this function to check if you should push or read data from the signal:
use libmapper_rs::device::Device;
use libmapper_rs::signal::Signal;
use std::time::Duration;
fn main_loop(dev: &Device, sig: &mut Signal, value: &mut f64) {
loop {
dev.poll_and_block(Duration::from_millis(10));
if sig.get_status().was_set_remote() { // check if there's a new value waiting for us
let (new_value, _) = sig.get_value_single::<f64>().unwrap();
*value = new_value;
} else {
sig.set_value_single(value);
}
}
}Sourcepub fn get_data_type(&self) -> mpr_type
pub fn get_data_type(&self) -> mpr_type
Get the type of data this signal is storing.
Sourcepub fn get_vector_length(&self) -> u32
pub fn get_vector_length(&self) -> u32
Get the length of the vector this signal is storing. This will be how long the slice returned from Signal::get_value is.
If this is 1, you should use Signal::get_value_single instead.
Source§impl Signal
impl Signal
Sourcepub fn set_value_single<T: MappableType + Copy>(
&mut self,
value: &T,
) -> Result<(), SignalError>
pub fn set_value_single<T: MappableType + Copy>( &mut self, value: &T, ) -> Result<(), SignalError>
Set the value of the signal.
This function will return SignalError::WrongType if the passed generic type doesn’t match the signal’s type.
If this signal is a vector, only the first element of the vector will be set.
Sourcepub fn get_value_single<T: MappableType + Copy>(
&self,
) -> Result<(T, u64), SignalError>
pub fn get_value_single<T: MappableType + Copy>( &self, ) -> Result<(T, u64), SignalError>
Get the value of the signal.
This function will return SignalError::WrongType if the passed generic type doesn’t match the signal’s type.
If this signal is a vector, only the first element of the vector will be returned.
Sourcepub fn get_value<T: MappableType + Copy>(
&self,
) -> Result<(Vec<T>, u64), SignalError>
pub fn get_value<T: MappableType + Copy>( &self, ) -> Result<(Vec<T>, u64), SignalError>
Get the value of the signal.
This function will return SignalError::WrongType if the passed generic type doesn’t match the signal’s type.
The length of the returned slice will be equal to the value returned by get_vector_length.
Sourcepub fn set_value<T: MappableType + Copy>(
&mut self,
values: &[T],
) -> Result<(), SignalError>
pub fn set_value<T: MappableType + Copy>( &mut self, values: &[T], ) -> Result<(), SignalError>
Set the value of the signal.
This function will return SignalError::WrongType if the passed generic type doesn’t match the signal’s type.
The length of the slice must be equal to the value returned by get_vector_length.
If the lengths are not equal this function return an Err of SignalError::WrongLengthArg.
Sourcepub fn get_direction(&self) -> mpr_dir
pub fn get_direction(&self) -> mpr_dir
Get the direction of the signal. This value determines how signal data can flow to/from this signal.
For example, you cannot map to a signal with direction MPR_DIR_OUT.