Skip to content

Commit 3dd59c3

Browse files
committed
Polish thanks to Dan's feedback
1 parent b5e40f5 commit 3dd59c3

6 files changed

Lines changed: 21 additions & 11 deletions

File tree

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ git:
2121
# that SDK is shortest and add it there. In the case of major re-organizations,
2222
# just try to make the builds "about equal in run time"
2323
env:
24-
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="feather_huzzah circuitplayground_express mini_sam_m4 grandcentral_m4_express pca10056 pca10059 feather_nrf52832 feather_nrf52840_express makerdiary_nrf52840_mdk particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini" TRAVIS_SDK=arm:nrf:esp8266
24+
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="feather_huzzah circuitplayground_express mini_sam_m4 grandcentral_m4_express pca10056 pca10059 feather_nrf52840_express makerdiary_nrf52840_mdk particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini" TRAVIS_SDK=arm:nrf:esp8266
2525
- TRAVIS_BOARDS="metro_m0_express metro_m4_express pirkey_m0 trellis_m4_express trinket_m0" TRAVIS_SDK=arm
2626
- TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow" TRAVIS_SDK=arm
2727
- TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero" TRAVIS_SDK=arm

shared-bindings/usb_midi/PortIn.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
//|
4646
//| Not currently dynamically supported.
4747
//|
48+
//| PortIn objects are constructed for every corresponding entry in the USB descriptor and added
49+
//| to the `usb_midi.ports` tuple.
50+
//|
4851

4952
STATIC mp_obj_t usb_midi_portin_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *pos_args) {
5053
return mp_const_none;

shared-bindings/usb_midi/PortOut.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
//|
4646
//| Not currently dynamically supported.
4747
//|
48+
//| PortOut objects are constructed for every corresponding entry in the USB descriptor and added
49+
//| to the `usb_midi.ports` tuple.
50+
//|
4851

4952
STATIC mp_obj_t usb_midi_portout_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *pos_args) {
5053
return mp_const_none;

shared-module/usb_midi/__init__.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,11 @@
3838

3939
supervisor_allocation* usb_midi_allocation;
4040

41-
static inline uint16_t word_align(uint16_t size) {
42-
if (size % 4 != 0) {
43-
return (size & 0xfffc) + 0x4;
44-
}
45-
return size;
46-
}
47-
4841
void usb_midi_init(void) {
4942
// TODO(tannewt): Make this dynamic.
50-
uint16_t tuple_size = word_align(sizeof(mp_obj_tuple_t) + sizeof(mp_obj_t*) * 2);
51-
uint16_t portin_size = word_align(sizeof(usb_midi_portin_obj_t));
52-
uint16_t portout_size = word_align(sizeof(usb_midi_portout_obj_t));
43+
uint16_t tuple_size = align32_size(sizeof(mp_obj_tuple_t) + sizeof(mp_obj_t*) * 2);
44+
uint16_t portin_size = align32_size(sizeof(usb_midi_portin_obj_t));
45+
uint16_t portout_size = align32_size(sizeof(usb_midi_portout_obj_t));
5346

5447
// For each embedded MIDI Jack in the descriptor we create a Port
5548
usb_midi_allocation = allocate_memory(tuple_size + portin_size + portout_size, false);

supervisor/memory.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ typedef struct {
3939
uint32_t length; // in bytes
4040
} supervisor_allocation;
4141

42+
43+
4244
void memory_init(void);
4345
void free_memory(supervisor_allocation* allocation);
4446
supervisor_allocation* allocate_remaining_memory(void);
@@ -48,4 +50,11 @@ supervisor_allocation* allocate_remaining_memory(void);
4850
// statically allocated memory.
4951
supervisor_allocation* allocate_memory(uint32_t length, bool high_address);
5052

53+
static inline uint16_t align32_size(uint16_t size) {
54+
if (size % 4 != 0) {
55+
return (size & 0xfffc) + 0x4;
56+
}
57+
return size;
58+
}
59+
5160
#endif // MICROPY_INCLUDED_SUPERVISOR_MEMORY_H

tools/gen_usb_descriptor.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,8 @@ def strings_in_order(cls):
274274
descriptor_list.append(cdc_iad)
275275
descriptor_list.extend(cdc_interfaces)
276276
descriptor_list.extend(msc_interfaces)
277+
# Only add the control interface because other audio interfaces are managed by it to ensure the
278+
# correct ordering.
277279
descriptor_list.append(audio_control_interface)
278280
# Put the CDC IAD just before the CDC interfaces.
279281
# There appears to be a bug in the Windows composite USB driver that requests the

0 commit comments

Comments
 (0)