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