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