pub struct Builder<'d, D: Driver<'d>> { /* private fields */ }
Expand description
UsbDevice
builder.
Implementations§
Source§impl<'d, D: Driver<'d>> Builder<'d, D>
impl<'d, D: Driver<'d>> Builder<'d, D>
Sourcepub fn new(
driver: D,
config: Config<'d>,
config_descriptor_buf: &'d mut [u8],
bos_descriptor_buf: &'d mut [u8],
msos_descriptor_buf: &'d mut [u8],
control_buf: &'d mut [u8],
) -> Self
pub fn new( driver: D, config: Config<'d>, config_descriptor_buf: &'d mut [u8], bos_descriptor_buf: &'d mut [u8], msos_descriptor_buf: &'d mut [u8], control_buf: &'d mut [u8], ) -> Self
Creates a builder for constructing a new UsbDevice
.
control_buf
is a buffer used for USB control request data. It should be sized
large enough for the length of the largest control request (in or out)
anticipated by any class added to the device.
Sourcepub fn build(self) -> UsbDevice<'d, D>
pub fn build(self) -> UsbDevice<'d, D>
Creates the UsbDevice
instance with the configuration in this builder.
Sourcepub fn control_buf_len(&self) -> usize
pub fn control_buf_len(&self) -> usize
Returns the size of the control request data buffer. Can be used by classes to validate the buffer is large enough for their needs.
Sourcepub fn function(
&mut self,
class: u8,
subclass: u8,
protocol: u8,
) -> FunctionBuilder<'_, 'd, D>
pub fn function( &mut self, class: u8, subclass: u8, protocol: u8, ) -> FunctionBuilder<'_, 'd, D>
Add an USB function.
If Config::composite_with_iads
is set, this will add an IAD descriptor
with the given class/subclass/protocol, associating all the child interfaces.
If it’s not set, no IAD descriptor is added.
Sourcepub fn handler(&mut self, handler: &'d mut dyn Handler)
pub fn handler(&mut self, handler: &'d mut dyn Handler)
Add a Handler.
The Handler is called on some USB bus events, and to handle all control requests not already handled by the USB stack.
Sourcepub fn string(&mut self) -> StringIndex
pub fn string(&mut self) -> StringIndex
Allocates a new string index.
Sourcepub fn msos_descriptor(&mut self, windows_version: u32, vendor_code: u8)
pub fn msos_descriptor(&mut self, windows_version: u32, vendor_code: u8)
Add an MS OS 2.0 Descriptor Set.
Panics if called more than once.
Sourcepub fn msos_feature<T: DeviceLevelDescriptor>(&mut self, desc: T)
pub fn msos_feature<T: DeviceLevelDescriptor>(&mut self, desc: T)
Add an MS OS 2.0 Device Level Feature Descriptor.
Sourcepub fn msos_writer(&mut self) -> &mut MsOsDescriptorWriter<'d>
pub fn msos_writer(&mut self) -> &mut MsOsDescriptorWriter<'d>
Gets the underlying MsOsDescriptorWriter
to allow adding subsets and features for classes that
do not add their own.