1*a10e763bSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 261864d84STakashi Iwai /* 3c078a4aaSChris Rorvick * Line 6 Linux USB driver 461864d84STakashi Iwai * 561864d84STakashi Iwai * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) 661864d84STakashi Iwai */ 761864d84STakashi Iwai 861864d84STakashi Iwai #ifndef MIDIBUF_H 961864d84STakashi Iwai #define MIDIBUF_H 1061864d84STakashi Iwai 1161864d84STakashi Iwai struct midi_buffer { 1261864d84STakashi Iwai unsigned char *buf; 1361864d84STakashi Iwai int size; 1461864d84STakashi Iwai int split; 1561864d84STakashi Iwai int pos_read, pos_write; 1661864d84STakashi Iwai int full; 1761864d84STakashi Iwai int command_prev; 1861864d84STakashi Iwai }; 1961864d84STakashi Iwai 2061864d84STakashi Iwai extern int line6_midibuf_bytes_used(struct midi_buffer *mb); 2161864d84STakashi Iwai extern int line6_midibuf_bytes_free(struct midi_buffer *mb); 2261864d84STakashi Iwai extern void line6_midibuf_destroy(struct midi_buffer *mb); 2361864d84STakashi Iwai extern int line6_midibuf_ignore(struct midi_buffer *mb, int length); 2461864d84STakashi Iwai extern int line6_midibuf_init(struct midi_buffer *mb, int size, int split); 2561864d84STakashi Iwai extern int line6_midibuf_read(struct midi_buffer *mb, unsigned char *data, 2661864d84STakashi Iwai int length); 2761864d84STakashi Iwai extern void line6_midibuf_reset(struct midi_buffer *mb); 2861864d84STakashi Iwai extern int line6_midibuf_write(struct midi_buffer *mb, unsigned char *data, 2961864d84STakashi Iwai int length); 3061864d84STakashi Iwai 3161864d84STakashi Iwai #endif 32