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