]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - sound/usb/line6/midi.h
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[mirror_ubuntu-jammy-kernel.git] / sound / usb / line6 / midi.h
CommitLineData
a10e763b 1/* SPDX-License-Identifier: GPL-2.0-only */
705ececd 2/*
c078a4aa 3 * Line 6 Linux USB driver
705ececd 4 *
1027f476 5 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
705ececd
MG
6 */
7
8#ifndef MIDI_H
9#define MIDI_H
10
705ececd
MG
11#include <sound/rawmidi.h>
12
13#include "midibuf.h"
14
705ececd
MG
15#define MIDI_BUFFER_SIZE 1024
16
a49e4838 17struct snd_line6_midi {
cddbd4f1 18 /* Pointer back to the Line 6 driver data structure */
705ececd
MG
19 struct usb_line6 *line6;
20
cddbd4f1 21 /* MIDI substream for receiving (or NULL if not active) */
705ececd
MG
22 struct snd_rawmidi_substream *substream_receive;
23
cddbd4f1 24 /* MIDI substream for transmitting (or NULL if not active) */
705ececd
MG
25 struct snd_rawmidi_substream *substream_transmit;
26
cddbd4f1 27 /* Number of currently active MIDI send URBs */
705ececd
MG
28 int num_active_send_urbs;
29
cddbd4f1 30 /* Spin lock to protect MIDI buffer handling */
bc518ba4 31 spinlock_t lock;
705ececd 32
cddbd4f1 33 /* Wait queue for MIDI transmission */
705ececd
MG
34 wait_queue_head_t send_wait;
35
cddbd4f1 36 /* Buffer for incoming MIDI stream */
269edc8e 37 struct midi_buffer midibuf_in;
705ececd 38
cddbd4f1 39 /* Buffer for outgoing MIDI stream */
269edc8e 40 struct midi_buffer midibuf_out;
705ececd
MG
41};
42
705ececd 43extern int line6_init_midi(struct usb_line6 *line6);
a49e4838
GKH
44extern void line6_midi_receive(struct usb_line6 *line6, unsigned char *data,
45 int length);
705ececd 46
705ececd 47#endif