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 | |