1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Line 6 Linux USB driver 4 * 5 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) 6 */ 7 8 #ifndef MIDIBUF_H 9 #define MIDIBUF_H 10 11 #define LINE6_MIDIBUF_READ_TX 0 12 #define LINE6_MIDIBUF_READ_RX 1 13 14 struct midi_buffer { 15 unsigned char *buf; 16 int size; 17 int split; 18 int pos_read, pos_write; 19 int full; 20 int command_prev; 21 }; 22 23 extern int line6_midibuf_bytes_used(struct midi_buffer *mb); 24 extern int line6_midibuf_bytes_free(struct midi_buffer *mb); 25 extern void line6_midibuf_destroy(struct midi_buffer *mb); 26 extern int line6_midibuf_ignore(struct midi_buffer *mb, int length); 27 extern int line6_midibuf_init(struct midi_buffer *mb, int size, int split); 28 extern int line6_midibuf_read(struct midi_buffer *mb, unsigned char *data, 29 int length, int read_type); 30 extern void line6_midibuf_reset(struct midi_buffer *mb); 31 extern int line6_midibuf_write(struct midi_buffer *mb, unsigned char *data, 32 int length); 33 34 #endif 35