1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* 1 /* 3 * Line 6 Linux USB driver 2 * Line 6 Linux USB driver 4 * 3 * 5 * Copyright (C) 2004-2010 Markus Grabner (lin !! 4 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) >> 5 * >> 6 * This program is free software; you can redistribute it and/or >> 7 * modify it under the terms of the GNU General Public License as >> 8 * published by the Free Software Foundation, version 2. >> 9 * 6 */ 10 */ 7 11 8 #ifndef MIDI_H 12 #ifndef MIDI_H 9 #define MIDI_H 13 #define MIDI_H 10 14 11 #include <sound/rawmidi.h> 15 #include <sound/rawmidi.h> 12 16 13 #include "midibuf.h" 17 #include "midibuf.h" 14 18 15 #define MIDI_BUFFER_SIZE 1024 19 #define MIDI_BUFFER_SIZE 1024 16 20 17 struct snd_line6_midi { 21 struct snd_line6_midi { 18 /* Pointer back to the Line 6 driver d 22 /* Pointer back to the Line 6 driver data structure */ 19 struct usb_line6 *line6; 23 struct usb_line6 *line6; 20 24 21 /* MIDI substream for receiving (or NU 25 /* MIDI substream for receiving (or NULL if not active) */ 22 struct snd_rawmidi_substream *substrea 26 struct snd_rawmidi_substream *substream_receive; 23 27 24 /* MIDI substream for transmitting (or 28 /* MIDI substream for transmitting (or NULL if not active) */ 25 struct snd_rawmidi_substream *substrea 29 struct snd_rawmidi_substream *substream_transmit; 26 30 27 /* Number of currently active MIDI sen 31 /* Number of currently active MIDI send URBs */ 28 int num_active_send_urbs; 32 int num_active_send_urbs; 29 33 30 /* Spin lock to protect MIDI buffer ha 34 /* Spin lock to protect MIDI buffer handling */ 31 spinlock_t lock; 35 spinlock_t lock; 32 36 33 /* Wait queue for MIDI transmission */ 37 /* Wait queue for MIDI transmission */ 34 wait_queue_head_t send_wait; 38 wait_queue_head_t send_wait; 35 39 36 /* Buffer for incoming MIDI stream */ 40 /* Buffer for incoming MIDI stream */ 37 struct midi_buffer midibuf_in; 41 struct midi_buffer midibuf_in; 38 42 39 /* Buffer for outgoing MIDI stream */ 43 /* Buffer for outgoing MIDI stream */ 40 struct midi_buffer midibuf_out; 44 struct midi_buffer midibuf_out; 41 }; 45 }; 42 46 43 extern int line6_init_midi(struct usb_line6 *l 47 extern int line6_init_midi(struct usb_line6 *line6); 44 extern void line6_midi_receive(struct usb_line 48 extern void line6_midi_receive(struct usb_line6 *line6, unsigned char *data, 45 int length); 49 int length); 46 50 47 #endif 51 #endif 48 52
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.