Fix 3031: implement tuh_midi_itf_get_info()
This commit is contained in:
@@ -346,6 +346,29 @@ uint8_t tuh_midi_itf_get_index(uint8_t daddr, uint8_t itf_num) {
|
|||||||
return TUSB_INDEX_INVALID_8;
|
return TUSB_INDEX_INVALID_8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool tuh_midi_itf_get_info(uint8_t idx, tuh_itf_info_t* info)
|
||||||
|
{
|
||||||
|
midih_interface_t* p_midi = &_midi_host[idx];
|
||||||
|
TU_VERIFY(p_midi && info);
|
||||||
|
|
||||||
|
info->daddr = p_midi->daddr;
|
||||||
|
|
||||||
|
// re-construct descriptor
|
||||||
|
tusb_desc_interface_t* desc = &info->desc;
|
||||||
|
desc->bLength = sizeof(tusb_desc_interface_t);
|
||||||
|
desc->bDescriptorType = TUSB_DESC_INTERFACE;
|
||||||
|
|
||||||
|
desc->bInterfaceNumber = p_midi->bInterfaceNumber;
|
||||||
|
desc->bAlternateSetting = 0;
|
||||||
|
desc->bNumEndpoints = (p_midi->ep_in != 0 ? 1:0) + (p_midi->ep_out != 0 ? 1:0);
|
||||||
|
desc->bInterfaceClass = TUSB_CLASS_AUDIO;
|
||||||
|
desc->bInterfaceSubClass = AUDIO_SUBCLASS_MIDI_STREAMING;
|
||||||
|
desc->bInterfaceProtocol = 0;
|
||||||
|
desc->iInterface = 0;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t tuh_midi_get_tx_cable_count (uint8_t idx) {
|
uint8_t tuh_midi_get_tx_cable_count (uint8_t idx) {
|
||||||
TU_VERIFY(idx < CFG_TUH_MIDI);
|
TU_VERIFY(idx < CFG_TUH_MIDI);
|
||||||
midih_interface_t *p_midi = &_midi_host[idx];
|
midih_interface_t *p_midi = &_midi_host[idx];
|
||||||
|
@@ -90,6 +90,10 @@ bool tuh_midi_mounted(uint8_t idx);
|
|||||||
// return TUSB_INDEX_INVALID_8 (0xFF) if not found
|
// return TUSB_INDEX_INVALID_8 (0xFF) if not found
|
||||||
uint8_t tuh_midi_itf_get_index(uint8_t daddr, uint8_t itf_num);
|
uint8_t tuh_midi_itf_get_index(uint8_t daddr, uint8_t itf_num);
|
||||||
|
|
||||||
|
// Get Interface information
|
||||||
|
// return true if index is correct and interface is currently mounted
|
||||||
|
bool tuh_midi_itf_get_info(uint8_t idx, tuh_itf_info_t* info);
|
||||||
|
|
||||||
// return the number of virtual midi cables on the device's IN endpoint
|
// return the number of virtual midi cables on the device's IN endpoint
|
||||||
uint8_t tuh_midi_get_rx_cable_count(uint8_t idx);
|
uint8_t tuh_midi_get_rx_cable_count(uint8_t idx);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user