xref: /dflybsd-src/sys/dev/sound/midi/sequencer.h (revision 6c94880f12b914ad3317d68d4d3ec7f4b13c0b7b)
1*6c94880fSSascha Wildner /*-
2*6c94880fSSascha Wildner  * Copyright (c) 2003 Mathew Kanner
3*6c94880fSSascha Wildner  * Copyright (c) 1999 Seigo Tanimura
4*6c94880fSSascha Wildner  * All rights reserved.
5*6c94880fSSascha Wildner  *
6*6c94880fSSascha Wildner  * Redistribution and use in source and binary forms, with or without
7*6c94880fSSascha Wildner  * modification, are permitted provided that the following conditions
8*6c94880fSSascha Wildner  * are met:
9*6c94880fSSascha Wildner  * 1. Redistributions of source code must retain the above copyright
10*6c94880fSSascha Wildner  *    notice, this list of conditions and the following disclaimer.
11*6c94880fSSascha Wildner  * 2. Redistributions in binary form must reproduce the above copyright
12*6c94880fSSascha Wildner  *    notice, this list of conditions and the following disclaimer in the
13*6c94880fSSascha Wildner  *    documentation and/or other materials provided with the distribution.
14*6c94880fSSascha Wildner  *
15*6c94880fSSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16*6c94880fSSascha Wildner  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17*6c94880fSSascha Wildner  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18*6c94880fSSascha Wildner  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19*6c94880fSSascha Wildner  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20*6c94880fSSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21*6c94880fSSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22*6c94880fSSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23*6c94880fSSascha Wildner  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24*6c94880fSSascha Wildner  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25*6c94880fSSascha Wildner  * SUCH DAMAGE.
26*6c94880fSSascha Wildner  *
27*6c94880fSSascha Wildner  * $FreeBSD: head/sys/dev/sound/midi/sequencer.h 193640 2009-06-07 19:12:08Z ariff $
28*6c94880fSSascha Wildner  */
29*6c94880fSSascha Wildner 
30*6c94880fSSascha Wildner /*
31*6c94880fSSascha Wildner  * Include file for the midi sequence driver.
32*6c94880fSSascha Wildner  */
33*6c94880fSSascha Wildner 
34*6c94880fSSascha Wildner #ifndef _SEQUENCER_H_
35*6c94880fSSascha Wildner #define _SEQUENCER_H_
36*6c94880fSSascha Wildner 
37*6c94880fSSascha Wildner 
38*6c94880fSSascha Wildner #define NSEQ_MAX	16
39*6c94880fSSascha Wildner 
40*6c94880fSSascha Wildner /*
41*6c94880fSSascha Wildner  * many variables should be reduced to a range. Here define a macro
42*6c94880fSSascha Wildner  */
43*6c94880fSSascha Wildner 
44*6c94880fSSascha Wildner #define RANGE(var, low, high) (var) = \
45*6c94880fSSascha Wildner ((var)<(low)?(low) : (var)>(high)?(high) : (var))
46*6c94880fSSascha Wildner 
47*6c94880fSSascha Wildner #ifdef _KERNEL
48*6c94880fSSascha Wildner 
49*6c94880fSSascha Wildner void	seq_timer(void *arg);
50*6c94880fSSascha Wildner 
51*6c94880fSSascha Wildner SYSCTL_DECL(_hw_midi_seq);
52*6c94880fSSascha Wildner 
53*6c94880fSSascha Wildner extern int seq_debug;
54*6c94880fSSascha Wildner 
55*6c94880fSSascha Wildner #define SEQ_DEBUG(y, x)			\
56*6c94880fSSascha Wildner 	do {				\
57*6c94880fSSascha Wildner 		if (seq_debug >= y) {	\
58*6c94880fSSascha Wildner 			(x);		\
59*6c94880fSSascha Wildner 		}			\
60*6c94880fSSascha Wildner 	} while (0)
61*6c94880fSSascha Wildner 
62*6c94880fSSascha Wildner SYSCTL_DECL(_hw_midi);
63*6c94880fSSascha Wildner 
64*6c94880fSSascha Wildner #endif					/* _KERNEL */
65*6c94880fSSascha Wildner 
66*6c94880fSSascha Wildner #define SYNTHPROP_MIDI		1
67*6c94880fSSascha Wildner #define SYNTHPROP_SYNTH		2
68*6c94880fSSascha Wildner #define SYNTHPROP_RX		4
69*6c94880fSSascha Wildner #define SYNTHPROP_TX		8
70*6c94880fSSascha Wildner 
71*6c94880fSSascha Wildner struct _midi_cmdtab {
72*6c94880fSSascha Wildner 	int	cmd;
73*6c94880fSSascha Wildner 	char   *name;
74*6c94880fSSascha Wildner };
75*6c94880fSSascha Wildner typedef struct _midi_cmdtab midi_cmdtab;
76*6c94880fSSascha Wildner extern midi_cmdtab cmdtab_seqevent[];
77*6c94880fSSascha Wildner extern midi_cmdtab cmdtab_seqioctl[];
78*6c94880fSSascha Wildner extern midi_cmdtab cmdtab_timer[];
79*6c94880fSSascha Wildner extern midi_cmdtab cmdtab_seqcv[];
80*6c94880fSSascha Wildner extern midi_cmdtab cmdtab_seqccmn[];
81*6c94880fSSascha Wildner 
82*6c94880fSSascha Wildner char   *midi_cmdname(int cmd, midi_cmdtab * tab);
83*6c94880fSSascha Wildner 
84*6c94880fSSascha Wildner enum {
85*6c94880fSSascha Wildner 	MORE,
86*6c94880fSSascha Wildner 	TIMERARMED,
87*6c94880fSSascha Wildner 	QUEUEFULL
88*6c94880fSSascha Wildner };
89*6c94880fSSascha Wildner 
90*6c94880fSSascha Wildner #endif
91