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 struct midi_buffer { 12 unsigned char *buf; 13 int size; 14 int split; 15 int pos_read, pos_write; 16 int full; 17 int command_prev; 18 }; 19 20 extern int line6_midibuf_bytes_used(struct midi_buffer *mb); 21 extern int line6_midibuf_bytes_free(struct midi_buffer *mb); 22 extern void line6_midibuf_destroy(struct midi_buffer *mb); 23 extern int line6_midibuf_ignore(struct midi_buffer *mb, int length); 24 extern int line6_midibuf_init(struct midi_buffer *mb, int size, int split); 25 extern int line6_midibuf_read(struct midi_buffer *mb, unsigned char *data, 26 int length); 27 extern void line6_midibuf_reset(struct midi_buffer *mb); 28 extern int line6_midibuf_write(struct midi_buffer *mb, unsigned char *data, 29 int length); 30 31 #endif 32