midi.h revision 158979
1204076Spjd/*- 2204076Spjd * (c) 2003 Mathew Kanner 3204076Spjd * 4204076Spjd * Redistribution and use in source and binary forms, with or without 5204076Spjd * modification, are permitted provided that the following conditions are 6204076Spjd * met: 1. Redistributions of source code must retain the above copyright 7204076Spjd * notice, this list of conditions and the following disclaimer. 2. 8204076Spjd * Redistributions in binary form must reproduce the above copyright notice, 9204076Spjd * this list of conditions and the following disclaimer in the documentation 10204076Spjd * and/or other materials provided with the distribution. 11204076Spjd * 12204076Spjd * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY 13204076Spjd * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 14204076Spjd * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 15204076Spjd * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR 16204076Spjd * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17204076Spjd * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 18204076Spjd * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 19204076Spjd * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20204076Spjd * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21204076Spjd * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 22204076Spjd * SUCH DAMAGE. 23204076Spjd * 24204076Spjd * $FreeBSD: head/sys/dev/sound/midi/midi.h 158979 2006-05-27 16:32:05Z netchild $ 25204076Spjd */ 26204076Spjd 27204076Spjd#ifndef MIDI_H 28204076Spjd#define MIDI_H 29204076Spjd 30204076Spjd#include <sys/types.h> 31204076Spjd#include <sys/malloc.h> 32204076Spjd 33204076SpjdMALLOC_DECLARE(M_MIDI); 34204076Spjd 35204076Spjd#define M_RX 0x01 36211876Spjd#define M_TX 0x02 37204076Spjd#define M_RXEN 0x04 38211876Spjd#define M_TXEN 0x08 39204076Spjd 40204076Spjd#define MIDI_TYPE unsigned char 41204076Spjd 42204076Spjdstruct snd_midi; 43204076Spjd 44204076Spjdstruct snd_midi *midi_init(kobj_class_t _mpu_cls, int _unit, int _channel, 45204076Spjd void *cookie); 46204076Spjdint midi_uninit(struct snd_midi * _m); 47204076Spjdint midi_out(struct snd_midi * _m, MIDI_TYPE * _buf, int _size); 48204076Spjdint midi_in(struct snd_midi * _m, MIDI_TYPE * _buf, int _size); 49204076Spjd 50204076Spjdkobj_t midimapper_addseq(void *arg1, int *unit, void **cookie); 51204076Spjdint midimapper_open(void *arg1, void **cookie); 52204076Spjdint midimapper_close(void *arg1, void *cookie); 53204076Spjdkobj_t midimapper_fetch_synth(void *arg, void *cookie, int unit); 54204076Spjd 55204076Spjd#endif 56204076Spjd