xref: /dflybsd-src/sys/dev/sound/midi/synth_if.m (revision af11d9ee5b47576e86aea0634ac7ebc2437b5592)
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