1*6c94880fSSascha Wildner /*- 2*6c94880fSSascha Wildner * Copyright (c) 2003 Mathew Kanner 3*6c94880fSSascha Wildner * All rights reserved. 4*6c94880fSSascha Wildner * 5*6c94880fSSascha Wildner * Redistribution and use in source and binary forms, with or without 6*6c94880fSSascha Wildner * modification, are permitted provided that the following conditions 7*6c94880fSSascha Wildner * are met: 8*6c94880fSSascha Wildner * 1. Redistributions of source code must retain the above copyright 9*6c94880fSSascha Wildner * notice, this list of conditions and the following disclaimer. 10*6c94880fSSascha Wildner * 2. Redistributions in binary form must reproduce the above copyright 11*6c94880fSSascha Wildner * notice, this list of conditions and the following disclaimer in the 12*6c94880fSSascha Wildner * documentation and/or other materials provided with the distribution. 13*6c94880fSSascha Wildner * 14*6c94880fSSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*6c94880fSSascha Wildner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*6c94880fSSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*6c94880fSSascha Wildner * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*6c94880fSSascha Wildner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*6c94880fSSascha Wildner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*6c94880fSSascha Wildner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*6c94880fSSascha Wildner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*6c94880fSSascha Wildner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*6c94880fSSascha Wildner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*6c94880fSSascha Wildner * SUCH DAMAGE. 25*6c94880fSSascha Wildner * 26*6c94880fSSascha Wildner * $FreeBSD: head/sys/dev/sound/midi/midi.h 166971 2007-02-25 13:51:52Z netchild $ 27*6c94880fSSascha Wildner */ 28*6c94880fSSascha Wildner 29*6c94880fSSascha Wildner #ifndef MIDI_H 30*6c94880fSSascha Wildner #define MIDI_H 31*6c94880fSSascha Wildner 32*6c94880fSSascha Wildner #include <sys/types.h> 33*6c94880fSSascha Wildner #include <sys/malloc.h> 34*6c94880fSSascha Wildner 35*6c94880fSSascha Wildner MALLOC_DECLARE(M_MIDI); 36*6c94880fSSascha Wildner 37*6c94880fSSascha Wildner #define M_RX 0x01 38*6c94880fSSascha Wildner #define M_TX 0x02 39*6c94880fSSascha Wildner #define M_RXEN 0x04 40*6c94880fSSascha Wildner #define M_TXEN 0x08 41*6c94880fSSascha Wildner 42*6c94880fSSascha Wildner #define MIDI_TYPE unsigned char 43*6c94880fSSascha Wildner 44*6c94880fSSascha Wildner struct snd_midi; 45*6c94880fSSascha Wildner 46*6c94880fSSascha Wildner struct snd_midi * 47*6c94880fSSascha Wildner midi_init(kobj_class_t _mpu_cls, int _unit, int _channel, void *cookie); 48*6c94880fSSascha Wildner int midi_uninit(struct snd_midi *_m); 49*6c94880fSSascha Wildner int midi_out(struct snd_midi *_m, MIDI_TYPE *_buf, int _size); 50*6c94880fSSascha Wildner int midi_in(struct snd_midi *_m, MIDI_TYPE *_buf, int _size); 51*6c94880fSSascha Wildner 52*6c94880fSSascha Wildner kobj_t midimapper_addseq(void *arg1, int *unit, void **cookie); 53*6c94880fSSascha Wildner int midimapper_open(void *arg1, void **cookie); 54*6c94880fSSascha Wildner int midimapper_close(void *arg1, void *cookie); 55*6c94880fSSascha Wildner kobj_t midimapper_fetch_synth(void *arg, void *cookie, int unit); 56*6c94880fSSascha Wildner 57*6c94880fSSascha Wildner #endif 58