#include <linux/slab.h>
#include <linux/usb.h>
#include <linux/export.h>
#include <sound/core.h>
#include <sound/rawmidi.h>
#include "driver.h"
#include "midi.h"
#define line6_rawmidi_substream_midi(substream) …
static int send_midi_async(struct usb_line6 *line6, unsigned char *data,
int length);
void line6_midi_receive(struct usb_line6 *line6, unsigned char *data,
int length)
{ … }
static void line6_midi_transmit(struct snd_rawmidi_substream *substream)
{ … }
static void midi_sent(struct urb *urb)
{ … }
static int send_midi_async(struct usb_line6 *line6, unsigned char *data,
int length)
{ … }
static int line6_midi_output_open(struct snd_rawmidi_substream *substream)
{ … }
static int line6_midi_output_close(struct snd_rawmidi_substream *substream)
{ … }
static void line6_midi_output_trigger(struct snd_rawmidi_substream *substream,
int up)
{ … }
static void line6_midi_output_drain(struct snd_rawmidi_substream *substream)
{ … }
static int line6_midi_input_open(struct snd_rawmidi_substream *substream)
{ … }
static int line6_midi_input_close(struct snd_rawmidi_substream *substream)
{ … }
static void line6_midi_input_trigger(struct snd_rawmidi_substream *substream,
int up)
{ … }
static const struct snd_rawmidi_ops line6_midi_output_ops = …;
static const struct snd_rawmidi_ops line6_midi_input_ops = …;
static int snd_line6_new_midi(struct usb_line6 *line6,
struct snd_rawmidi **rmidi_ret)
{ … }
static void snd_line6_midi_free(struct snd_rawmidi *rmidi)
{ … }
int line6_init_midi(struct usb_line6 *line6)
{ … }
EXPORT_SYMBOL_GPL(…);