cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

midi.h (2018B)


      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 */
      9struct 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	int16_t  assoc_in_jacks[16];
     17	int16_t  assoc_out_jacks[16];
     18};
     19
     20/* for QUIRK_MIDI_YAMAHA, data is NULL */
     21
     22/* for QUIRK_MIDI_MIDIMAN, data points to a snd_usb_midi_endpoint_info
     23 * structure (out_cables and in_cables only) */
     24
     25/* for QUIRK_COMPOSITE, data points to an array of snd_usb_audio_quirk
     26 * structures, terminated with .ifnum = -1 */
     27
     28/* for QUIRK_AUDIO_FIXED_ENDPOINT, data points to an audioformat structure */
     29
     30/* for QUIRK_AUDIO/MIDI_STANDARD_INTERFACE, data is NULL */
     31
     32/* for QUIRK_AUDIO_EDIROL_UA700_UA25/UA1000, data is NULL */
     33
     34/* for QUIRK_IGNORE_INTERFACE, data is NULL */
     35
     36/* for QUIRK_MIDI_NOVATION and _RAW, data is NULL */
     37
     38/* for QUIRK_MIDI_EMAGIC, data points to a snd_usb_midi_endpoint_info
     39 * structure (out_cables and in_cables only) */
     40
     41/* for QUIRK_MIDI_CME, data is NULL */
     42
     43/* for QUIRK_MIDI_AKAI, data is NULL */
     44
     45int __snd_usbmidi_create(struct snd_card *card,
     46			 struct usb_interface *iface,
     47			 struct list_head *midi_list,
     48			 const struct snd_usb_audio_quirk *quirk,
     49			 unsigned int usb_id);
     50
     51static inline int snd_usbmidi_create(struct snd_card *card,
     52		       struct usb_interface *iface,
     53		       struct list_head *midi_list,
     54		       const struct snd_usb_audio_quirk *quirk)
     55{
     56	return __snd_usbmidi_create(card, iface, midi_list, quirk, 0);
     57}
     58
     59void snd_usbmidi_input_stop(struct list_head *p);
     60void snd_usbmidi_input_start(struct list_head *p);
     61void snd_usbmidi_disconnect(struct list_head *p);
     62void snd_usbmidi_suspend(struct list_head *p);
     63void snd_usbmidi_resume(struct list_head *p);
     64
     65#endif /* __USBMIDI_H */