synth_if.m revision 302408
1254490Spjd#- 2254490Spjd# Copyright (c) 2003 Mathew Kanner 3254490Spjd# All rights reserved. 4254490Spjd# 5254490Spjd# Redistribution and use in source and binary forms, with or without 6254490Spjd# modification, are permitted provided that the following conditions 7254490Spjd# are met: 8254490Spjd# 1. Redistributions of source code must retain the above copyright 9254490Spjd# notice, this list of conditions and the following disclaimer. 10254490Spjd# 2. Redistributions in binary form must reproduce the above copyright 11254490Spjd# notice, this list of conditions and the following disclaimer in the 12254490Spjd# documentation and/or other materials provided with the distribution. 13254490Spjd# 14254490Spjd# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15254490Spjd# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16254490Spjd# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17254490Spjd# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18254490Spjd# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19254490Spjd# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20254490Spjd# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21254490Spjd# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22254490Spjd# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23254490Spjd# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24254490Spjd# SUCH DAMAGE. 25254490Spjd# 26254490Spjd# $FreeBSD: stable/11/sys/dev/sound/midi/synth_if.m 166971 2007-02-25 13:51:52Z netchild $ 27254490Spjd# 28254490Spjd 29254490SpjdINTERFACE synth; 30254490Spjd 31254490Spjd#include <sys/systm.h> 32254490Spjd 33254490SpjdCODE { 34254490Spjd 35254490Spjdsynth_killnote_t nokillnote; 36254490Spjdsynth_startnote_t nostartnote; 37254490Spjdsynth_setinstr_t nosetinstr; 38254490Spjdsynth_hwcontrol_t nohwcontrol; 39254490Spjdsynth_aftertouch_t noaftertouch; 40254490Spjdsynth_panning_t nopanning; 41254490Spjdsynth_controller_t nocontroller; 42254490Spjdsynth_volumemethod_t novolumemethod; 43254490Spjdsynth_bender_t nobender; 44254490Spjdsynth_setupvoice_t nosetupvoice; 45254490Spjdsynth_sendsysex_t nosendsysex; 46254490Spjdsynth_allocvoice_t noallocvoice; 47254490Spjdsynth_writeraw_t nowriteraw; 48synth_reset_t noreset; 49synth_shortname_t noshortname; 50synth_open_t noopen; 51synth_close_t noclose; 52synth_query_t noquery; 53synth_insync_t noinsync; 54synth_alloc_t noalloc; 55 56 int 57 nokillnote(void *_kobj, uint8_t _chn, uint8_t _note, uint8_t _vel) 58 { 59 printf("nokillnote\n"); 60 return 0; 61 } 62 63 int 64 noopen(void *_kobj, void *_arg, int mode) 65 { 66 printf("noopen\n"); 67 return 0; 68 } 69 70 int 71 noquery(void *_kboj) 72 { 73 printf("noquery\n"); 74 return 0; 75 } 76 77 int 78 nostartnote(void *_kb, uint8_t _voice, uint8_t _note, uint8_t _parm) 79 { 80 printf("nostartnote\n"); 81 return 0; 82 } 83 84 int 85 nosetinstr(void *_kb, uint8_t _chn, uint16_t _patchno) 86 { 87 printf("nosetinstr\n"); 88 return 0; 89 } 90 91 int 92 nohwcontrol(void *_kb, uint8_t *_event) 93 { 94 printf("nohwcontrol\n"); 95 return 0; 96 } 97 98 int 99 noaftertouch ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2) 100 { 101 printf("noaftertouch\n"); 102 return 0; 103 } 104 105 int 106 nopanning ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2) 107 { 108 printf("nopanning\n"); 109 return 0; 110 } 111 112 int 113 nocontroller ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2, uint16_t _x3) 114 { 115 printf("nocontroller\n"); 116 return 0; 117 } 118 119 int 120 novolumemethod ( 121 void /* X */ * _kobj, 122 uint8_t _x1) 123 { 124 printf("novolumemethod\n"); 125 return 0; 126 } 127 128 int 129 nobender ( void /* X */ * _kobj, uint8_t _voice, uint16_t _bend) 130 { 131 printf("nobender\n"); 132 return 0; 133 } 134 135 int 136 nosetupvoice ( void /* X */ * _kobj, uint8_t _voice, uint8_t _chn) 137 { 138 139 printf("nosetupvoice\n"); 140 return 0; 141 } 142 143 int 144 nosendsysex ( void /* X */ * _kobj, void * _buf, size_t _len) 145 { 146 printf("nosendsysex\n"); 147 return 0; 148 } 149 150 int 151 noallocvoice ( void /* X */ * _kobj, uint8_t _chn, uint8_t _note, void *_x) 152 { 153 printf("noallocvoice\n"); 154 return 0; 155 } 156 157 int 158 nowriteraw ( void /* X */ * _kobjt, uint8_t * _buf, size_t _len) 159 { 160 printf("nowriteraw\n"); 161 return 1; 162 } 163 164 int 165 noreset ( void /* X */ * _kobjt) 166 { 167 168 printf("noreset\n"); 169 return 0; 170 } 171 172 char * 173 noshortname (void /* X */ * _kobjt) 174 { 175 printf("noshortname\n"); 176 return "noshortname"; 177 } 178 179 int 180 noclose ( void /* X */ * _kobjt) 181 { 182 183 printf("noclose\n"); 184 return 0; 185 } 186 187 int 188 noinsync (void /* X */ * _kobjt) 189 { 190 191 printf("noinsync\n"); 192 return 0; 193 } 194 195 int 196 noalloc ( void /* x */ * _kbojt, uint8_t _chn, uint8_t _note) 197 { 198 printf("noalloc\n"); 199 return 0; 200 } 201} 202 203METHOD int killnote { 204 void /* X */ *_kobj; 205 uint8_t _chan; 206 uint8_t _note; 207 uint8_t _vel; 208} DEFAULT nokillnote; 209 210METHOD int startnote { 211 void /* X */ *_kobj; 212 uint8_t _voice; 213 uint8_t _note; 214 uint8_t _parm; 215} DEFAULT nostartnote; 216 217METHOD int setinstr { 218 void /* X */ *_kobj; 219 uint8_t _chn; 220 uint16_t _patchno; 221} DEFAULT nosetinstr; 222 223METHOD int hwcontrol { 224 void /* X */ *_kobj; 225 uint8_t *_event; 226} DEFAULT nohwcontrol; 227 228METHOD int aftertouch { 229 void /* X */ *_kobj; 230 uint8_t _x1; 231 uint8_t _x2; 232} DEFAULT noaftertouch; 233 234METHOD int panning { 235 void /* X */ *_kobj; 236 uint8_t _x1; 237 uint8_t _x2; 238} DEFAULT nopanning; 239 240METHOD int controller { 241 void /* X */ *_kobj; 242 uint8_t _x1; 243 uint8_t _x2; 244 uint16_t _x3; 245} DEFAULT nocontroller; 246 247METHOD int volumemethod { 248 void /* X */ *_kobj; 249 uint8_t _x1; 250} DEFAULT novolumemethod; 251 252METHOD int bender { 253 void /* X */ *_kobj; 254 uint8_t _voice; 255 uint16_t _bend; 256} DEFAULT nobender; 257 258METHOD int setupvoice { 259 void /* X */ *_kobj; 260 uint8_t _voice; 261 uint8_t _chn; 262} DEFAULT nosetupvoice; 263 264METHOD int sendsysex { 265 void /* X */ *_kobj; 266 void *_buf; 267 size_t _len; 268} DEFAULT nosendsysex; 269 270METHOD int allocvoice { 271 void /* X */ *_kobj; 272 uint8_t _chn; 273 uint8_t _note; 274 void *_x; 275} DEFAULT noallocvoice; 276 277METHOD int writeraw { 278 void /* X */ *_kobjt; 279 uint8_t *_buf; 280 size_t _len; 281} DEFAULT nowriteraw; 282 283METHOD int reset { 284 void /* X */ *_kobjt; 285} DEFAULT noreset; 286 287METHOD char * shortname { 288 void /* X */ *_kobjt; 289} DEFAULT noshortname; 290 291METHOD int open { 292 void /* X */ *_kobjt; 293 void *_sythn; 294 int _mode; 295} DEFAULT noopen; 296 297METHOD int close { 298 void /* X */ *_kobjt; 299} DEFAULT noclose; 300 301METHOD int query { 302 void /* X */ *_kobjt; 303} DEFAULT noquery; 304 305METHOD int insync { 306 void /* X */ *_kobjt; 307} DEFAULT noinsync; 308 309METHOD int alloc { 310 void /* x */ *_kbojt; 311 uint8_t _chn; 312 uint8_t _note; 313} DEFAULT noalloc; 314