xref: /openbmc/linux/sound/usb/line6/midibuf.h (revision 61864d844c296933d40c02683252bbea5193b101)
1*61864d84STakashi Iwai /*
2*61864d84STakashi Iwai  * Line6 Linux USB driver - 0.9.1beta
3*61864d84STakashi Iwai  *
4*61864d84STakashi Iwai  * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
5*61864d84STakashi Iwai  *
6*61864d84STakashi Iwai  *	This program is free software; you can redistribute it and/or
7*61864d84STakashi Iwai  *	modify it under the terms of the GNU General Public License as
8*61864d84STakashi Iwai  *	published by the Free Software Foundation, version 2.
9*61864d84STakashi Iwai  *
10*61864d84STakashi Iwai  */
11*61864d84STakashi Iwai 
12*61864d84STakashi Iwai #ifndef MIDIBUF_H
13*61864d84STakashi Iwai #define MIDIBUF_H
14*61864d84STakashi Iwai 
15*61864d84STakashi Iwai struct midi_buffer {
16*61864d84STakashi Iwai 	unsigned char *buf;
17*61864d84STakashi Iwai 	int size;
18*61864d84STakashi Iwai 	int split;
19*61864d84STakashi Iwai 	int pos_read, pos_write;
20*61864d84STakashi Iwai 	int full;
21*61864d84STakashi Iwai 	int command_prev;
22*61864d84STakashi Iwai };
23*61864d84STakashi Iwai 
24*61864d84STakashi Iwai extern int line6_midibuf_bytes_used(struct midi_buffer *mb);
25*61864d84STakashi Iwai extern int line6_midibuf_bytes_free(struct midi_buffer *mb);
26*61864d84STakashi Iwai extern void line6_midibuf_destroy(struct midi_buffer *mb);
27*61864d84STakashi Iwai extern int line6_midibuf_ignore(struct midi_buffer *mb, int length);
28*61864d84STakashi Iwai extern int line6_midibuf_init(struct midi_buffer *mb, int size, int split);
29*61864d84STakashi Iwai extern int line6_midibuf_read(struct midi_buffer *mb, unsigned char *data,
30*61864d84STakashi Iwai 			      int length);
31*61864d84STakashi Iwai extern void line6_midibuf_reset(struct midi_buffer *mb);
32*61864d84STakashi Iwai extern int line6_midibuf_skip_message(struct midi_buffer *mb,
33*61864d84STakashi Iwai 				      unsigned short mask);
34*61864d84STakashi Iwai extern void line6_midibuf_status(struct midi_buffer *mb);
35*61864d84STakashi Iwai extern int line6_midibuf_write(struct midi_buffer *mb, unsigned char *data,
36*61864d84STakashi Iwai 			       int length);
37*61864d84STakashi Iwai 
38*61864d84STakashi Iwai #endif
39