1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
|
#-
# Copyright (c) 2003 Mathew Kanner
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD$
#
INTERFACE synth;
#include <sys/systm.h>
CODE {
synth_killnote_t nokillnote;
synth_startnote_t nostartnote;
synth_setinstr_t nosetinstr;
synth_hwcontrol_t nohwcontrol;
synth_aftertouch_t noaftertouch;
synth_panning_t nopanning;
synth_controller_t nocontroller;
synth_volumemethod_t novolumemethod;
synth_bender_t nobender;
synth_setupvoice_t nosetupvoice;
synth_sendsysex_t nosendsysex;
synth_allocvoice_t noallocvoice;
synth_writeraw_t nowriteraw;
synth_reset_t noreset;
synth_shortname_t noshortname;
synth_open_t noopen;
synth_close_t noclose;
synth_query_t noquery;
synth_insync_t noinsync;
synth_alloc_t noalloc;
int
nokillnote(void *_kobj, uint8_t _chn, uint8_t _note, uint8_t _vel)
{
printf("nokillnote\n");
return 0;
}
int
noopen(void *_kobj, void *_arg, int mode)
{
printf("noopen\n");
return 0;
}
int
noquery(void *_kboj)
{
printf("noquery\n");
return 0;
}
int
nostartnote(void *_kb, uint8_t _voice, uint8_t _note, uint8_t _parm)
{
printf("nostartnote\n");
return 0;
}
int
nosetinstr(void *_kb, uint8_t _chn, uint16_t _patchno)
{
printf("nosetinstr\n");
return 0;
}
int
nohwcontrol(void *_kb, uint8_t *_event)
{
printf("nohwcontrol\n");
return 0;
}
int
noaftertouch ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2)
{
printf("noaftertouch\n");
return 0;
}
int
nopanning ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2)
{
printf("nopanning\n");
return 0;
}
int
nocontroller ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2, uint16_t _x3)
{
printf("nocontroller\n");
return 0;
}
int
novolumemethod (
void /* X */ * _kobj,
uint8_t _x1)
{
printf("novolumemethod\n");
return 0;
}
int
nobender ( void /* X */ * _kobj, uint8_t _voice, uint16_t _bend)
{
printf("nobender\n");
return 0;
}
int
nosetupvoice ( void /* X */ * _kobj, uint8_t _voice, uint8_t _chn)
{
printf("nosetupvoice\n");
return 0;
}
int
nosendsysex ( void /* X */ * _kobj, void * _buf, size_t _len)
{
printf("nosendsysex\n");
return 0;
}
int
noallocvoice ( void /* X */ * _kobj, uint8_t _chn, uint8_t _note, void *_x)
{
printf("noallocvoice\n");
return 0;
}
int
nowriteraw ( void /* X */ * _kobjt, uint8_t * _buf, size_t _len)
{
printf("nowriteraw\n");
return 1;
}
int
noreset ( void /* X */ * _kobjt)
{
printf("noreset\n");
return 0;
}
char *
noshortname (void /* X */ * _kobjt)
{
printf("noshortname\n");
return "noshortname";
}
int
noclose ( void /* X */ * _kobjt)
{
printf("noclose\n");
return 0;
}
int
noinsync (void /* X */ * _kobjt)
{
printf("noinsync\n");
return 0;
}
int
noalloc ( void /* x */ * _kbojt, uint8_t _chn, uint8_t _note)
{
printf("noalloc\n");
return 0;
}
}
METHOD int killnote {
void /* X */ *_kobj;
uint8_t _chan;
uint8_t _note;
uint8_t _vel;
} DEFAULT nokillnote;
METHOD int startnote {
void /* X */ *_kobj;
uint8_t _voice;
uint8_t _note;
uint8_t _parm;
} DEFAULT nostartnote;
METHOD int setinstr {
void /* X */ *_kobj;
uint8_t _chn;
uint16_t _patchno;
} DEFAULT nosetinstr;
METHOD int hwcontrol {
void /* X */ *_kobj;
uint8_t *_event;
} DEFAULT nohwcontrol;
METHOD int aftertouch {
void /* X */ *_kobj;
uint8_t _x1;
uint8_t _x2;
} DEFAULT noaftertouch;
METHOD int panning {
void /* X */ *_kobj;
uint8_t _x1;
uint8_t _x2;
} DEFAULT nopanning;
METHOD int controller {
void /* X */ *_kobj;
uint8_t _x1;
uint8_t _x2;
uint16_t _x3;
} DEFAULT nocontroller;
METHOD int volumemethod {
void /* X */ *_kobj;
uint8_t _x1;
} DEFAULT novolumemethod;
METHOD int bender {
void /* X */ *_kobj;
uint8_t _voice;
uint16_t _bend;
} DEFAULT nobender;
METHOD int setupvoice {
void /* X */ *_kobj;
uint8_t _voice;
uint8_t _chn;
} DEFAULT nosetupvoice;
METHOD int sendsysex {
void /* X */ *_kobj;
void *_buf;
size_t _len;
} DEFAULT nosendsysex;
METHOD int allocvoice {
void /* X */ *_kobj;
uint8_t _chn;
uint8_t _note;
void *_x;
} DEFAULT noallocvoice;
METHOD int writeraw {
void /* X */ *_kobjt;
uint8_t *_buf;
size_t _len;
} DEFAULT nowriteraw;
METHOD int reset {
void /* X */ *_kobjt;
} DEFAULT noreset;
METHOD char * shortname {
void /* X */ *_kobjt;
} DEFAULT noshortname;
METHOD int open {
void /* X */ *_kobjt;
void *_sythn;
int _mode;
} DEFAULT noopen;
METHOD int close {
void /* X */ *_kobjt;
} DEFAULT noclose;
METHOD int query {
void /* X */ *_kobjt;
} DEFAULT noquery;
METHOD int insync {
void /* X */ *_kobjt;
} DEFAULT noinsync;
METHOD int alloc {
void /* x */ *_kbojt;
uint8_t _chn;
uint8_t _note;
} DEFAULT noalloc;
|