pub struct AudioClass<'a, B: UsbBus> { /* private fields */ }Expand description
USB device class for audio devices.
This device class based on the “Universal Serial Bus Device Class Definition for Audio Devices”, Release 1.0. It supports one input stream and/or one output stream.
Implementations§
Source§impl<B: UsbBus> AudioClass<'_, B>
impl<B: UsbBus> AudioClass<'_, B>
Sourcepub fn read(&self, data: &mut [u8]) -> Result<usize, Error>
pub fn read(&self, data: &mut [u8]) -> Result<usize, Error>
Read audio frames as output by the host. Returns an Error if no output stream has been configured.
Sourcepub fn write(&self, data: &[u8]) -> Result<usize, Error>
pub fn write(&self, data: &[u8]) -> Result<usize, Error>
Write audio frames to be input by the host. Returns an Error when no input stream has been configured.
Sourcepub fn input_alt_setting(&self) -> Result<u8, Error>
pub fn input_alt_setting(&self) -> Result<u8, Error>
Get current Alternate Setting of the input stream. Returns an error if the stream is not configured.
Sourcepub fn output_alt_setting(&self) -> Result<u8, Error>
pub fn output_alt_setting(&self) -> Result<u8, Error>
Get current Alternate Setting of the output stream. Returns an error if the stream is not configured.
Trait Implementations§
Source§impl<B: UsbBus> UsbClass<B> for AudioClass<'_, B>
impl<B: UsbBus> UsbClass<B> for AudioClass<'_, B>
Source§fn get_configuration_descriptors(
&self,
writer: &mut DescriptorWriter<'_>,
) -> Result<()>
fn get_configuration_descriptors( &self, writer: &mut DescriptorWriter<'_>, ) -> Result<()>
Called when a GET_DESCRIPTOR request is received for a configuration descriptor. When
called, the implementation should write its interface, endpoint and any extra class
descriptors into
writer. The configuration descriptor itself will be written by
UsbDevice and shouldn’t be written by classes. Read moreSource§fn control_in(&mut self, xfer: ControlIn<'_, '_, '_, B>)
fn control_in(&mut self, xfer: ControlIn<'_, '_, '_, B>)
Called when a control request is received with direction DeviceToHost. Read more
Source§fn control_out(&mut self, xfer: ControlOut<'_, '_, '_, B>)
fn control_out(&mut self, xfer: ControlOut<'_, '_, '_, B>)
Called when a control request is received with direction HostToDevice. Read more
Source§fn get_bos_descriptors(
&self,
writer: &mut BosWriter<'_, '_>,
) -> Result<(), UsbError>
fn get_bos_descriptors( &self, writer: &mut BosWriter<'_, '_>, ) -> Result<(), UsbError>
Called when a GET_DESCRIPTOR request is received for a BOS descriptor.
When called, the implementation should write its blobs such as capability
descriptors into
writer. The BOS descriptor itself will be written by
UsbDevice and shouldn’t be written by classes.Source§fn get_string(&self, index: StringIndex, lang_id: LangID) -> Option<&str>
fn get_string(&self, index: StringIndex, lang_id: LangID) -> Option<&str>
Gets a class-specific string descriptor. Read more
Source§fn endpoint_setup(&mut self, addr: EndpointAddress)
fn endpoint_setup(&mut self, addr: EndpointAddress)
Called when endpoint with address
addr has received a SETUP packet. Implementing this
shouldn’t be necessary in most cases, but is provided for completeness’ sake. Read moreSource§fn endpoint_out(&mut self, addr: EndpointAddress)
fn endpoint_out(&mut self, addr: EndpointAddress)
Called when endpoint with address
addr has received data (OUT packet). Read moreSource§fn endpoint_in_complete(&mut self, addr: EndpointAddress)
fn endpoint_in_complete(&mut self, addr: EndpointAddress)
Called when endpoint with address
addr has completed transmitting data (IN packet). Read moreSource§fn get_alt_setting(&mut self, interface: InterfaceNumber) -> Option<u8>
fn get_alt_setting(&mut self, interface: InterfaceNumber) -> Option<u8>
Called when the interfaces alternate setting state is requested. Read more
Source§fn set_alt_setting(
&mut self,
interface: InterfaceNumber,
alternative: u8,
) -> bool
fn set_alt_setting( &mut self, interface: InterfaceNumber, alternative: u8, ) -> bool
Called when the interfaces alternate setting state is altered. Read more
Auto Trait Implementations§
impl<'a, B> Freeze for AudioClass<'a, B>
impl<'a, B> RefUnwindSafe for AudioClass<'a, B>
impl<'a, B> Send for AudioClass<'a, B>
impl<'a, B> Sync for AudioClass<'a, B>
impl<'a, B> Unpin for AudioClass<'a, B>
impl<'a, B> UnwindSafe for AudioClass<'a, B>
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
Mutably borrows from an owned value. Read more