pub struct Lirc { /* private fields */ }Expand description
A physical or virtual lirc device
Implementations§
Source§impl Lirc
impl Lirc
Sourcepub fn open<P: AsRef<Path>>(path: P) -> Result<Lirc>
pub fn open<P: AsRef<Path>>(path: P) -> Result<Lirc>
Open a lirc chardev, which should have a path like “/dev/lirc0”
Sourcepub fn send(&mut self, data: &[u32]) -> Result<()>
pub fn send(&mut self, data: &[u32]) -> Result<()>
Transmit infrared. Each element in the array describes the number of microseconds the IR should be on and off, respectively.
Sourcepub fn can_set_send_carrier(&self) -> bool
pub fn can_set_send_carrier(&self) -> bool
Does this lirc device support setting send carrier
Sourcepub fn can_set_send_duty_cycle(&self) -> bool
pub fn can_set_send_duty_cycle(&self) -> bool
Does this lirc device support setting send duty cycle
Sourcepub fn can_set_send_transmitter_mask(&self) -> bool
pub fn can_set_send_transmitter_mask(&self) -> bool
Does this lirc device support setting transmitter mask
Sourcepub fn set_send_carrier(&mut self, carrier: u32) -> Result<()>
pub fn set_send_carrier(&mut self, carrier: u32) -> Result<()>
Set the send carrier. A carrier of 0 means unmodulated
Sourcepub fn set_send_duty_cycle(&mut self, duty_cycle: u32) -> Result<()>
pub fn set_send_duty_cycle(&mut self, duty_cycle: u32) -> Result<()>
Set the send carrier. A carrier of 0 means unmodulated
pub fn num_transmitters(&mut self) -> Result<u32>
Sourcepub fn set_transmitter_mask(&mut self, transmitter_mask: u32) -> Result<()>
pub fn set_transmitter_mask(&mut self, transmitter_mask: u32) -> Result<()>
Set the send carrier. A carrier of 0 means unmodulated
Sourcepub fn can_set_timeout(&self) -> bool
pub fn can_set_timeout(&self) -> bool
Does this lirc device support setting send carrier
Sourcepub fn set_timeout(&mut self, timeout: u32) -> Result<()>
pub fn set_timeout(&mut self, timeout: u32) -> Result<()>
Set the receiving timeout in microseconds
Sourcepub fn get_timeout(&self) -> Result<u32>
pub fn get_timeout(&self) -> Result<u32>
Get the current receiving timeout in microseconds
Sourcepub fn get_min_max_timeout(&self) -> Result<Range<u32>>
pub fn get_min_max_timeout(&self) -> Result<Range<u32>>
Get the minimum and maximum timeout this lirc device supports
Sourcepub fn can_use_wideband_receiver(&self) -> bool
pub fn can_use_wideband_receiver(&self) -> bool
Does this lirc device support setting send carrier
Sourcepub fn set_wideband_receiver(&mut self, enable: bool) -> Result<()>
pub fn set_wideband_receiver(&mut self, enable: bool) -> Result<()>
Set the receiving timeout in microseconds
Sourcepub fn can_measure_carrier(&self) -> bool
pub fn can_measure_carrier(&self) -> bool
Does this lirc device support measuring the carrier
Sourcepub fn set_measure_carrier(&mut self, enable: bool) -> Result<()>
pub fn set_measure_carrier(&mut self, enable: bool) -> Result<()>
Enabling measuring the carrier
Sourcepub fn can_receive_raw(&self) -> bool
pub fn can_receive_raw(&self) -> bool
Does this lirc device support receiving in raw format
Sourcepub fn receive_raw(&mut self, result: &mut Vec<LircRaw>) -> Result<()>
pub fn receive_raw(&mut self, result: &mut Vec<LircRaw>) -> Result<()>
Read the raw IR. If there is nothing to be read, the result vector will be set to length 0. Otherwise, up to the capacity of result entries will be read.
Sourcepub fn can_receive_scancodes(&self) -> bool
pub fn can_receive_scancodes(&self) -> bool
Does this lirc device support receiving in decoded scancode format
Sourcepub fn scancode_mode(&mut self) -> Result<()>
pub fn scancode_mode(&mut self) -> Result<()>
Switch to scancode mode
Sourcepub fn receive_scancodes(
&mut self,
result: &mut Vec<LircScancode>,
) -> Result<()>
pub fn receive_scancodes( &mut self, result: &mut Vec<LircScancode>, ) -> Result<()>
Read the decoded IR.
Sourcepub fn can_get_rec_resolution(&self) -> bool
pub fn can_get_rec_resolution(&self) -> bool
Can we get the receiver resolution
Sourcepub fn receiver_resolution(&self) -> Result<u32>
pub fn receiver_resolution(&self) -> Result<u32>
Enabling measuring the carrier
Sourcepub fn attach_bpf(&self, bpf: &[u8]) -> Result<(), String>
pub fn attach_bpf(&self, bpf: &[u8]) -> Result<(), String>
Load and attach bpf program. The bpf program should a valid ELF object file, which contains a single LircMode2 program.
Sourcepub fn query_bpf(&self) -> Result<Option<Vec<String>>, ProgramError>
pub fn query_bpf(&self) -> Result<Option<Vec<String>>, ProgramError>
Query bpf programs attached to lirc dev. Returns Ok(None) if there is no support for bpf programs with the current kernel.
Sourcepub fn clear_bpf(&self) -> Result<(), ProgramError>
pub fn clear_bpf(&self) -> Result<(), ProgramError>
Remove all attached bpf programs
Trait Implementations§
Source§impl AsFd for Lirc
impl AsFd for Lirc
Source§fn as_fd(&self) -> BorrowedFd<'_>
fn as_fd(&self) -> BorrowedFd<'_>
Auto Trait Implementations§
impl Freeze for Lirc
impl RefUnwindSafe for Lirc
impl Send for Lirc
impl Sync for Lirc
impl Unpin for Lirc
impl UnsafeUnpin for Lirc
impl UnwindSafe for Lirc
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> 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,
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,
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,
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,
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,
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,
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,
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,
self to use its UpperHex implementation when
Debug-formatted.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 moreSource§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,
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,
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,
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
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
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
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
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
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
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
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
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
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
.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
.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
.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
.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
.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
.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
.tap_deref() only in debug builds, and is erased in release
builds.