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 15a49e483835823ab97028f396531d83b6668734cfGreg Kroah-Hartmanstruct MidiBuffer { 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 241027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabnerextern int line6_midibuf_bytes_used(struct MidiBuffer *mb); 251027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabnerextern int line6_midibuf_bytes_free(struct MidiBuffer *mb); 261027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabnerextern void line6_midibuf_destroy(struct MidiBuffer *mb); 271027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabnerextern int line6_midibuf_ignore(struct MidiBuffer *mb, int length); 281027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabnerextern int line6_midibuf_init(struct MidiBuffer *mb, int size, int split); 29e1a164d7a3e05aae15eb603ee8f1b77446480a3bMarkus Grabnerextern int line6_midibuf_read(struct MidiBuffer *mb, unsigned char *data, 30e1a164d7a3e05aae15eb603ee8f1b77446480a3bMarkus Grabner int length); 311027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabnerextern void line6_midibuf_reset(struct MidiBuffer *mb); 32e1a164d7a3e05aae15eb603ee8f1b77446480a3bMarkus Grabnerextern int line6_midibuf_skip_message(struct MidiBuffer *mb, 33e1a164d7a3e05aae15eb603ee8f1b77446480a3bMarkus Grabner unsigned short mask); 341027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabnerextern void line6_midibuf_status(struct MidiBuffer *mb); 351027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabnerextern int line6_midibuf_write(struct MidiBuffer *mb, unsigned char *data, 361027f476f507ef7ed9919cd3e3d32310f3985da1Markus Grabner int length); 37705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner 38705ececd1c60d0f5d6ef2a719008847883516970Markus Grabner#endif 39