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