1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __USBMIDI_H 3 #define __USBMIDI_H 4 5 /* maximum number of endpoints per interface */ 6 #define MIDI_MAX_ENDPOINTS 2 7 8 /* data for QUIRK_MIDI_FIXED_ENDPOINT */ 9 struct snd_usb_midi_endpoint_info { 10 int8_t out_ep; /* ep number, 0 autodetect */ 11 uint8_t out_interval; /* interval for interrupt endpoints */ 12 int8_t in_ep; 13 uint8_t in_interval; 14 uint16_t out_cables; /* bitmask */ 15 uint16_t in_cables; /* bitmask */ 16 }; 17 18 /* for QUIRK_MIDI_YAMAHA, data is NULL */ 19 20 /* for QUIRK_MIDI_MIDIMAN, data points to a snd_usb_midi_endpoint_info 21 * structure (out_cables and in_cables only) */ 22 23 /* for QUIRK_COMPOSITE, data points to an array of snd_usb_audio_quirk 24 * structures, terminated with .ifnum = -1 */ 25 26 /* for QUIRK_AUDIO_FIXED_ENDPOINT, data points to an audioformat structure */ 27 28 /* for QUIRK_AUDIO/MIDI_STANDARD_INTERFACE, data is NULL */ 29 30 /* for QUIRK_AUDIO_EDIROL_UA700_UA25/UA1000, data is NULL */ 31 32 /* for QUIRK_IGNORE_INTERFACE, data is NULL */ 33 34 /* for QUIRK_MIDI_NOVATION and _RAW, data is NULL */ 35 36 /* for QUIRK_MIDI_EMAGIC, data points to a snd_usb_midi_endpoint_info 37 * structure (out_cables and in_cables only) */ 38 39 /* for QUIRK_MIDI_CME, data is NULL */ 40 41 /* for QUIRK_MIDI_AKAI, data is NULL */ 42 43 int __snd_usbmidi_create(struct snd_card *card, 44 struct usb_interface *iface, 45 struct list_head *midi_list, 46 const struct snd_usb_audio_quirk *quirk, 47 unsigned int usb_id); 48 49 static inline int snd_usbmidi_create(struct snd_card *card, 50 struct usb_interface *iface, 51 struct list_head *midi_list, 52 const struct snd_usb_audio_quirk *quirk) 53 { 54 return __snd_usbmidi_create(card, iface, midi_list, quirk, 0); 55 } 56 57 void snd_usbmidi_input_stop(struct list_head *p); 58 void snd_usbmidi_input_start(struct list_head *p); 59 void snd_usbmidi_disconnect(struct list_head *p); 60 void snd_usbmidi_suspend(struct list_head *p); 61 void snd_usbmidi_resume(struct list_head *p); 62 63 #endif /* __USBMIDI_H */ 64