1  /* SPDX-License-Identifier: GPL-2.0-only */
2  /*
3   * Line 6 Linux USB driver
4   *
5   * Copyright (C) 2004-2010 Markus Grabner (line6@grabner-graz.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