xref: /OK3568_Linux_fs/kernel/sound/usb/line6/midibuf.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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