1145482Smp/* SPDX-License-Identifier: GPL-2.0-or-later */
2131966Smp/*
3145482Smp * Linux driver for TerraTec DMX 6Fire USB
459355Sobrien *
5145482Smp * Author:	Torsten Schenk <torsten.schenk@zoho.com>
6145482Smp * Created:	Jan 01, 2011
7145482Smp * Copyright:	(C) Torsten Schenk
859355Sobrien */
9145482Smp
10145482Smp#ifndef USB6FIRE_MIDI_H
1159355Sobrien#define USB6FIRE_MIDI_H
12145482Smp
13145482Smp#include "common.h"
1459355Sobrien
15145482Smpstruct midi_runtime {
16145482Smp	struct sfire_chip *chip;
17145482Smp	struct snd_rawmidi *instance;
1859355Sobrien
19145482Smp	struct snd_rawmidi_substream *in;
20145482Smp	char in_active;
21145482Smp
2259355Sobrien	spinlock_t in_lock;
23145482Smp	spinlock_t out_lock;
24145482Smp	struct snd_rawmidi_substream *out;
2559355Sobrien	struct urb out_urb;
26145482Smp	u8 out_serial; /* serial number of out packet */
27145482Smp	u8 *out_buffer;
2859355Sobrien	int buffer_offset;
29145482Smp
30145482Smp	void (*in_received)(struct midi_runtime *rt, u8 *data, int length);
3159355Sobrien};
32145482Smp
33145482Smpint usb6fire_midi_init(struct sfire_chip *chip);
3459355Sobrienvoid usb6fire_midi_abort(struct sfire_chip *chip);
35145482Smpvoid usb6fire_midi_destroy(struct sfire_chip *chip);
36145482Smp#endif /* USB6FIRE_MIDI_H */
3759355Sobrien
38145482Smp