16c94880fSSascha Wildner#- 26c94880fSSascha Wildner# Copyright (c) 2003 Mathew Kanner 36c94880fSSascha Wildner# All rights reserved. 46c94880fSSascha Wildner# 56c94880fSSascha Wildner# Redistribution and use in source and binary forms, with or without 66c94880fSSascha Wildner# modification, are permitted provided that the following conditions 76c94880fSSascha Wildner# are met: 86c94880fSSascha Wildner# 1. Redistributions of source code must retain the above copyright 96c94880fSSascha Wildner# notice, this list of conditions and the following disclaimer. 106c94880fSSascha Wildner# 2. Redistributions in binary form must reproduce the above copyright 116c94880fSSascha Wildner# notice, this list of conditions and the following disclaimer in the 126c94880fSSascha Wildner# documentation and/or other materials provided with the distribution. 136c94880fSSascha Wildner# 146c94880fSSascha Wildner# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 156c94880fSSascha Wildner# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 166c94880fSSascha Wildner# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 176c94880fSSascha Wildner# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 186c94880fSSascha Wildner# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 196c94880fSSascha Wildner# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 206c94880fSSascha Wildner# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 216c94880fSSascha Wildner# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 226c94880fSSascha Wildner# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 236c94880fSSascha Wildner# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 246c94880fSSascha Wildner# SUCH DAMAGE. 256c94880fSSascha Wildner# 266c94880fSSascha Wildner# $FreeBSD: head/sys/dev/sound/midi/synth_if.m 166971 2007-02-25 13:51:52Z netchild $ 276c94880fSSascha Wildner# 286c94880fSSascha Wildner 296c94880fSSascha WildnerINTERFACE synth; 306c94880fSSascha Wildner 316c94880fSSascha Wildner#include <sys/systm.h> 326c94880fSSascha Wildner 336c94880fSSascha WildnerCODE { 346c94880fSSascha Wildner 356c94880fSSascha Wildnersynth_killnote_t nokillnote; 366c94880fSSascha Wildnersynth_startnote_t nostartnote; 376c94880fSSascha Wildnersynth_setinstr_t nosetinstr; 386c94880fSSascha Wildnersynth_hwcontrol_t nohwcontrol; 396c94880fSSascha Wildnersynth_aftertouch_t noaftertouch; 406c94880fSSascha Wildnersynth_panning_t nopanning; 416c94880fSSascha Wildnersynth_controller_t nocontroller; 426c94880fSSascha Wildnersynth_volumemethod_t novolumemethod; 436c94880fSSascha Wildnersynth_bender_t nobender; 446c94880fSSascha Wildnersynth_setupvoice_t nosetupvoice; 456c94880fSSascha Wildnersynth_sendsysex_t nosendsysex; 466c94880fSSascha Wildnersynth_allocvoice_t noallocvoice; 476c94880fSSascha Wildnersynth_writeraw_t nowriteraw; 486c94880fSSascha Wildnersynth_reset_t noreset; 496c94880fSSascha Wildnersynth_shortname_t noshortname; 506c94880fSSascha Wildnersynth_open_t noopen; 516c94880fSSascha Wildnersynth_close_t noclose; 526c94880fSSascha Wildnersynth_query_t noquery; 536c94880fSSascha Wildnersynth_insync_t noinsync; 546c94880fSSascha Wildnersynth_alloc_t noalloc; 556c94880fSSascha Wildner 566c94880fSSascha Wildner int 576c94880fSSascha Wildner nokillnote(void *_kobj, uint8_t _chn, uint8_t _note, uint8_t _vel) 586c94880fSSascha Wildner { 59*af11d9eeSSascha Wildner kprintf("nokillnote\n"); 606c94880fSSascha Wildner return 0; 616c94880fSSascha Wildner } 626c94880fSSascha Wildner 636c94880fSSascha Wildner int 646c94880fSSascha Wildner noopen(void *_kobj, void *_arg, int mode) 656c94880fSSascha Wildner { 66*af11d9eeSSascha Wildner kprintf("noopen\n"); 676c94880fSSascha Wildner return 0; 686c94880fSSascha Wildner } 696c94880fSSascha Wildner 706c94880fSSascha Wildner int 716c94880fSSascha Wildner noquery(void *_kboj) 726c94880fSSascha Wildner { 73*af11d9eeSSascha Wildner kprintf("noquery\n"); 746c94880fSSascha Wildner return 0; 756c94880fSSascha Wildner } 766c94880fSSascha Wildner 776c94880fSSascha Wildner int 786c94880fSSascha Wildner nostartnote(void *_kb, uint8_t _voice, uint8_t _note, uint8_t _parm) 796c94880fSSascha Wildner { 80*af11d9eeSSascha Wildner kprintf("nostartnote\n"); 816c94880fSSascha Wildner return 0; 826c94880fSSascha Wildner } 836c94880fSSascha Wildner 846c94880fSSascha Wildner int 856c94880fSSascha Wildner nosetinstr(void *_kb, uint8_t _chn, uint16_t _patchno) 866c94880fSSascha Wildner { 87*af11d9eeSSascha Wildner kprintf("nosetinstr\n"); 886c94880fSSascha Wildner return 0; 896c94880fSSascha Wildner } 906c94880fSSascha Wildner 916c94880fSSascha Wildner int 926c94880fSSascha Wildner nohwcontrol(void *_kb, uint8_t *_event) 936c94880fSSascha Wildner { 94*af11d9eeSSascha Wildner kprintf("nohwcontrol\n"); 956c94880fSSascha Wildner return 0; 966c94880fSSascha Wildner } 976c94880fSSascha Wildner 986c94880fSSascha Wildner int 996c94880fSSascha Wildner noaftertouch ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2) 1006c94880fSSascha Wildner { 101*af11d9eeSSascha Wildner kprintf("noaftertouch\n"); 1026c94880fSSascha Wildner return 0; 1036c94880fSSascha Wildner } 1046c94880fSSascha Wildner 1056c94880fSSascha Wildner int 1066c94880fSSascha Wildner nopanning ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2) 1076c94880fSSascha Wildner { 108*af11d9eeSSascha Wildner kprintf("nopanning\n"); 1096c94880fSSascha Wildner return 0; 1106c94880fSSascha Wildner } 1116c94880fSSascha Wildner 1126c94880fSSascha Wildner int 1136c94880fSSascha Wildner nocontroller ( void /* X */ * _kobj, uint8_t _x1, uint8_t _x2, uint16_t _x3) 1146c94880fSSascha Wildner { 115*af11d9eeSSascha Wildner kprintf("nocontroller\n"); 1166c94880fSSascha Wildner return 0; 1176c94880fSSascha Wildner } 1186c94880fSSascha Wildner 1196c94880fSSascha Wildner int 1206c94880fSSascha Wildner novolumemethod ( 1216c94880fSSascha Wildner void /* X */ * _kobj, 1226c94880fSSascha Wildner uint8_t _x1) 1236c94880fSSascha Wildner { 124*af11d9eeSSascha Wildner kprintf("novolumemethod\n"); 1256c94880fSSascha Wildner return 0; 1266c94880fSSascha Wildner } 1276c94880fSSascha Wildner 1286c94880fSSascha Wildner int 1296c94880fSSascha Wildner nobender ( void /* X */ * _kobj, uint8_t _voice, uint16_t _bend) 1306c94880fSSascha Wildner { 131*af11d9eeSSascha Wildner kprintf("nobender\n"); 1326c94880fSSascha Wildner return 0; 1336c94880fSSascha Wildner } 1346c94880fSSascha Wildner 1356c94880fSSascha Wildner int 1366c94880fSSascha Wildner nosetupvoice ( void /* X */ * _kobj, uint8_t _voice, uint8_t _chn) 1376c94880fSSascha Wildner { 1386c94880fSSascha Wildner 139*af11d9eeSSascha Wildner kprintf("nosetupvoice\n"); 1406c94880fSSascha Wildner return 0; 1416c94880fSSascha Wildner } 1426c94880fSSascha Wildner 1436c94880fSSascha Wildner int 1446c94880fSSascha Wildner nosendsysex ( void /* X */ * _kobj, void * _buf, size_t _len) 1456c94880fSSascha Wildner { 146*af11d9eeSSascha Wildner kprintf("nosendsysex\n"); 1476c94880fSSascha Wildner return 0; 1486c94880fSSascha Wildner } 1496c94880fSSascha Wildner 1506c94880fSSascha Wildner int 1516c94880fSSascha Wildner noallocvoice ( void /* X */ * _kobj, uint8_t _chn, uint8_t _note, void *_x) 1526c94880fSSascha Wildner { 153*af11d9eeSSascha Wildner kprintf("noallocvoice\n"); 1546c94880fSSascha Wildner return 0; 1556c94880fSSascha Wildner } 1566c94880fSSascha Wildner 1576c94880fSSascha Wildner int 1586c94880fSSascha Wildner nowriteraw ( void /* X */ * _kobjt, uint8_t * _buf, size_t _len) 1596c94880fSSascha Wildner { 160*af11d9eeSSascha Wildner kprintf("nowriteraw\n"); 1616c94880fSSascha Wildner return 1; 1626c94880fSSascha Wildner } 1636c94880fSSascha Wildner 1646c94880fSSascha Wildner int 1656c94880fSSascha Wildner noreset ( void /* X */ * _kobjt) 1666c94880fSSascha Wildner { 1676c94880fSSascha Wildner 168*af11d9eeSSascha Wildner kprintf("noreset\n"); 1696c94880fSSascha Wildner return 0; 1706c94880fSSascha Wildner } 1716c94880fSSascha Wildner 1726c94880fSSascha Wildner char * 1736c94880fSSascha Wildner noshortname (void /* X */ * _kobjt) 1746c94880fSSascha Wildner { 175*af11d9eeSSascha Wildner kprintf("noshortname\n"); 1766c94880fSSascha Wildner return "noshortname"; 1776c94880fSSascha Wildner } 1786c94880fSSascha Wildner 1796c94880fSSascha Wildner int 1806c94880fSSascha Wildner noclose ( void /* X */ * _kobjt) 1816c94880fSSascha Wildner { 1826c94880fSSascha Wildner 183*af11d9eeSSascha Wildner kprintf("noclose\n"); 1846c94880fSSascha Wildner return 0; 1856c94880fSSascha Wildner } 1866c94880fSSascha Wildner 1876c94880fSSascha Wildner int 1886c94880fSSascha Wildner noinsync (void /* X */ * _kobjt) 1896c94880fSSascha Wildner { 1906c94880fSSascha Wildner 191*af11d9eeSSascha Wildner kprintf("noinsync\n"); 1926c94880fSSascha Wildner return 0; 1936c94880fSSascha Wildner } 1946c94880fSSascha Wildner 1956c94880fSSascha Wildner int 1966c94880fSSascha Wildner noalloc ( void /* x */ * _kbojt, uint8_t _chn, uint8_t _note) 1976c94880fSSascha Wildner { 198*af11d9eeSSascha Wildner kprintf("noalloc\n"); 1996c94880fSSascha Wildner return 0; 2006c94880fSSascha Wildner } 2016c94880fSSascha Wildner} 2026c94880fSSascha Wildner 2036c94880fSSascha WildnerMETHOD int killnote { 2046c94880fSSascha Wildner void /* X */ *_kobj; 2056c94880fSSascha Wildner uint8_t _chan; 2066c94880fSSascha Wildner uint8_t _note; 2076c94880fSSascha Wildner uint8_t _vel; 2086c94880fSSascha Wildner} DEFAULT nokillnote; 2096c94880fSSascha Wildner 2106c94880fSSascha WildnerMETHOD int startnote { 2116c94880fSSascha Wildner void /* X */ *_kobj; 2126c94880fSSascha Wildner uint8_t _voice; 2136c94880fSSascha Wildner uint8_t _note; 2146c94880fSSascha Wildner uint8_t _parm; 2156c94880fSSascha Wildner} DEFAULT nostartnote; 2166c94880fSSascha Wildner 2176c94880fSSascha WildnerMETHOD int setinstr { 2186c94880fSSascha Wildner void /* X */ *_kobj; 2196c94880fSSascha Wildner uint8_t _chn; 2206c94880fSSascha Wildner uint16_t _patchno; 2216c94880fSSascha Wildner} DEFAULT nosetinstr; 2226c94880fSSascha Wildner 2236c94880fSSascha WildnerMETHOD int hwcontrol { 2246c94880fSSascha Wildner void /* X */ *_kobj; 2256c94880fSSascha Wildner uint8_t *_event; 2266c94880fSSascha Wildner} DEFAULT nohwcontrol; 2276c94880fSSascha Wildner 2286c94880fSSascha WildnerMETHOD int aftertouch { 2296c94880fSSascha Wildner void /* X */ *_kobj; 2306c94880fSSascha Wildner uint8_t _x1; 2316c94880fSSascha Wildner uint8_t _x2; 2326c94880fSSascha Wildner} DEFAULT noaftertouch; 2336c94880fSSascha Wildner 2346c94880fSSascha WildnerMETHOD int panning { 2356c94880fSSascha Wildner void /* X */ *_kobj; 2366c94880fSSascha Wildner uint8_t _x1; 2376c94880fSSascha Wildner uint8_t _x2; 2386c94880fSSascha Wildner} DEFAULT nopanning; 2396c94880fSSascha Wildner 2406c94880fSSascha WildnerMETHOD int controller { 2416c94880fSSascha Wildner void /* X */ *_kobj; 2426c94880fSSascha Wildner uint8_t _x1; 2436c94880fSSascha Wildner uint8_t _x2; 2446c94880fSSascha Wildner uint16_t _x3; 2456c94880fSSascha Wildner} DEFAULT nocontroller; 2466c94880fSSascha Wildner 2476c94880fSSascha WildnerMETHOD int volumemethod { 2486c94880fSSascha Wildner void /* X */ *_kobj; 2496c94880fSSascha Wildner uint8_t _x1; 2506c94880fSSascha Wildner} DEFAULT novolumemethod; 2516c94880fSSascha Wildner 2526c94880fSSascha WildnerMETHOD int bender { 2536c94880fSSascha Wildner void /* X */ *_kobj; 2546c94880fSSascha Wildner uint8_t _voice; 2556c94880fSSascha Wildner uint16_t _bend; 2566c94880fSSascha Wildner} DEFAULT nobender; 2576c94880fSSascha Wildner 2586c94880fSSascha WildnerMETHOD int setupvoice { 2596c94880fSSascha Wildner void /* X */ *_kobj; 2606c94880fSSascha Wildner uint8_t _voice; 2616c94880fSSascha Wildner uint8_t _chn; 2626c94880fSSascha Wildner} DEFAULT nosetupvoice; 2636c94880fSSascha Wildner 2646c94880fSSascha WildnerMETHOD int sendsysex { 2656c94880fSSascha Wildner void /* X */ *_kobj; 2666c94880fSSascha Wildner void *_buf; 2676c94880fSSascha Wildner size_t _len; 2686c94880fSSascha Wildner} DEFAULT nosendsysex; 2696c94880fSSascha Wildner 2706c94880fSSascha WildnerMETHOD int allocvoice { 2716c94880fSSascha Wildner void /* X */ *_kobj; 2726c94880fSSascha Wildner uint8_t _chn; 2736c94880fSSascha Wildner uint8_t _note; 2746c94880fSSascha Wildner void *_x; 2756c94880fSSascha Wildner} DEFAULT noallocvoice; 2766c94880fSSascha Wildner 2776c94880fSSascha WildnerMETHOD int writeraw { 2786c94880fSSascha Wildner void /* X */ *_kobjt; 2796c94880fSSascha Wildner uint8_t *_buf; 2806c94880fSSascha Wildner size_t _len; 2816c94880fSSascha Wildner} DEFAULT nowriteraw; 2826c94880fSSascha Wildner 2836c94880fSSascha WildnerMETHOD int reset { 2846c94880fSSascha Wildner void /* X */ *_kobjt; 2856c94880fSSascha Wildner} DEFAULT noreset; 2866c94880fSSascha Wildner 2876c94880fSSascha WildnerMETHOD char * shortname { 2886c94880fSSascha Wildner void /* X */ *_kobjt; 2896c94880fSSascha Wildner} DEFAULT noshortname; 2906c94880fSSascha Wildner 2916c94880fSSascha WildnerMETHOD int open { 2926c94880fSSascha Wildner void /* X */ *_kobjt; 2936c94880fSSascha Wildner void *_sythn; 2946c94880fSSascha Wildner int _mode; 2956c94880fSSascha Wildner} DEFAULT noopen; 2966c94880fSSascha Wildner 2976c94880fSSascha WildnerMETHOD int close { 2986c94880fSSascha Wildner void /* X */ *_kobjt; 2996c94880fSSascha Wildner} DEFAULT noclose; 3006c94880fSSascha Wildner 3016c94880fSSascha WildnerMETHOD int query { 3026c94880fSSascha Wildner void /* X */ *_kobjt; 3036c94880fSSascha Wildner} DEFAULT noquery; 3046c94880fSSascha Wildner 3056c94880fSSascha WildnerMETHOD int insync { 3066c94880fSSascha Wildner void /* X */ *_kobjt; 3076c94880fSSascha Wildner} DEFAULT noinsync; 3086c94880fSSascha Wildner 3096c94880fSSascha WildnerMETHOD int alloc { 3106c94880fSSascha Wildner void /* x */ *_kbojt; 3116c94880fSSascha Wildner uint8_t _chn; 3126c94880fSSascha Wildner uint8_t _note; 3136c94880fSSascha Wildner} DEFAULT noalloc; 314