1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * Linux driver for TerraTec DMX 6Fire USB 4 * 5 * Author: Torsten Schenk <torsten.schenk@zoho.com> 6 * Created: Jan 01, 2011 7 * Copyright: (C) Torsten Schenk 8 */ 9 10 #ifndef USB6FIRE_MIDI_H 11 #define USB6FIRE_MIDI_H 12 13 #include "common.h" 14 15 struct midi_runtime { 16 struct sfire_chip *chip; 17 struct snd_rawmidi *instance; 18 19 struct snd_rawmidi_substream *in; 20 char in_active; 21 22 spinlock_t in_lock; 23 spinlock_t out_lock; 24 struct snd_rawmidi_substream *out; 25 struct urb out_urb; 26 u8 out_serial; /* serial number of out packet */ 27 u8 *out_buffer; 28 int buffer_offset; 29 30 void (*in_received)(struct midi_runtime *rt, u8 *data, int length); 31 }; 32 33 int usb6fire_midi_init(struct sfire_chip *chip); 34 void usb6fire_midi_abort(struct sfire_chip *chip); 35 void usb6fire_midi_destroy(struct sfire_chip *chip); 36 #endif /* USB6FIRE_MIDI_H */ 37 38