@@ -13,18 +13,31 @@ This crate requires the use of a HAL that implements the `usb-device` traits.
1313Turn on an LED as long as note C2 is pressed. The example only shows the hardware-independent parts.
1414
1515``` rust
16+ use usb_device :: prelude :: * ;
17+ use usbd_midi :: {
18+ data :: {
19+ midi :: {channel :: Channel , message :: Message , notes :: Note },
20+ usb_midi :: midi_packet_reader :: MidiPacketBufferReader ,
21+ },
22+ midi_device :: MidiClass ,
23+ };
24+
1625// Prerequisites, must be setup according to the used board.
1726let mut led = todo! (); // Must implement `embedded_hal::digital::OutputPin`.
1827let usb_bus = todo! (); // Must be of type `usb_device::bus::UsbBusAllocator`.
1928
2029// Create a MIDI class with 1 input and 1 output jack.
21- let mut midi = MidiClass :: new (& usb_bus , 1 , 1 );
22-
23- let mut usb_dev = UsbDeviceBuilder :: new (& usb_bus , UsbVidPid (0x16c0 , 0x5e4 ))
24- . product (" MIDI Test" )
25- . device_class (0 )
26- . device_sub_class (0 )
27- . build ();
30+ let mut midi = MidiClass :: new (& usb_bus , 1 , 1 ). unwrap ();
31+
32+ let mut usb_dev = UsbDeviceBuilder :: new (& usb_bus , UsbVidPid (0x16c0 , 0x5e4 ))
33+ . device_class (0 )
34+ . device_sub_class (0 )
35+ . strings (& [StringDescriptors :: default ()
36+ . manufacturer (" Music Company" )
37+ . product (" MIDI Device" )
38+ . serial_number (" 12345678" )])
39+ . unwrap ()
40+ . build ();
2841
2942loop {
3043 if ! usb_dev . poll (& mut [& mut midi ]) {
0 commit comments