1705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner/* 2e1a164d7a3e05aae15eb603ee8f1b77446480a3bMarkus Grabner * Line6 Linux USB driver - 0.9.1beta 3705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner * 41027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabner * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) 5705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner * 6705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner * This program is free software; you can redistribute it and/or 7705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner * modify it under the terms of the GNU General Public License as 8705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner * published by the Free Software Foundation, version 2. 9705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner * 10705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner */ 11705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner 12705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner#ifndef MIDIBUF_H 13705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner#define MIDIBUF_H 14705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner 15269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnoczistruct midi_buffer { 16705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner unsigned char *buf; 17705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner int size; 18705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner int split; 19705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner int pos_read, pos_write; 20705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner int full; 21705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner int command_prev; 22705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner}; 23705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner 24269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern int line6_midibuf_bytes_used(struct midi_buffer *mb); 25269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern int line6_midibuf_bytes_free(struct midi_buffer *mb); 26269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern void line6_midibuf_destroy(struct midi_buffer *mb); 27269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern int line6_midibuf_ignore(struct midi_buffer *mb, int length); 28269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern int line6_midibuf_init(struct midi_buffer *mb, int size, int split); 29269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern int line6_midibuf_read(struct midi_buffer *mb, unsigned char *data, 30e1a164d7a3e05aae15eb603ee8f1b77446480a3bMarkus Grabner int length); 31269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern void line6_midibuf_reset(struct midi_buffer *mb); 32269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern int line6_midibuf_skip_message(struct midi_buffer *mb, 33e1a164d7a3e05aae15eb603ee8f1b77446480a3bMarkus Grabner unsigned short mask); 34269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern void line6_midibuf_status(struct midi_buffer *mb); 35269edc8ee93c59820b2b54c2d010ab09c5e45cfeStefan Hajnocziextern int line6_midibuf_write(struct midi_buffer *mb, unsigned char *data, 361027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabner int length); 37705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner 38705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner#endif 39