162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Line 6 Linux USB driver 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef MIDIBUF_H 962306a36Sopenharmony_ci#define MIDIBUF_H 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#define LINE6_MIDIBUF_READ_TX 0 1262306a36Sopenharmony_ci#define LINE6_MIDIBUF_READ_RX 1 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistruct midi_buffer { 1562306a36Sopenharmony_ci unsigned char *buf; 1662306a36Sopenharmony_ci int size; 1762306a36Sopenharmony_ci int split; 1862306a36Sopenharmony_ci int pos_read, pos_write; 1962306a36Sopenharmony_ci int full; 2062306a36Sopenharmony_ci int command_prev; 2162306a36Sopenharmony_ci}; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciextern int line6_midibuf_bytes_used(struct midi_buffer *mb); 2462306a36Sopenharmony_ciextern int line6_midibuf_bytes_free(struct midi_buffer *mb); 2562306a36Sopenharmony_ciextern void line6_midibuf_destroy(struct midi_buffer *mb); 2662306a36Sopenharmony_ciextern int line6_midibuf_ignore(struct midi_buffer *mb, int length); 2762306a36Sopenharmony_ciextern int line6_midibuf_init(struct midi_buffer *mb, int size, int split); 2862306a36Sopenharmony_ciextern int line6_midibuf_read(struct midi_buffer *mb, unsigned char *data, 2962306a36Sopenharmony_ci int length, int read_type); 3062306a36Sopenharmony_ciextern void line6_midibuf_reset(struct midi_buffer *mb); 3162306a36Sopenharmony_ciextern int line6_midibuf_write(struct midi_buffer *mb, unsigned char *data, 3262306a36Sopenharmony_ci int length); 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci#endif 35