1 /*(LGPL)
2 ---------------------------------------------------------------------------
3 	a_bus.h - Audio Engine bus
4 ---------------------------------------------------------------------------
5  * Copyright (C) 2001, 2002, David Olofson
6  *
7  * This program is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by
9  * the Free Software Foundation; either version 2.1 of the License, or (at
10  * your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this program; if not, write to the Free Software Foundation,
19  * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20  */
21 
22 #ifndef _A_BUS_H_
23 #define _A_BUS_H_
24 
25 #include "a_globals.h"
26 #include "a_types.h"
27 #include "a_plugin.h"
28 #include "a_filters.h"
29 
30 typedef struct
31 {
32 	/* Control */
33 	abcbank_t	bctl[AUDIO_MAX_INSERTS+1];
34 
35 	/* DC filter (applied before all sends and inserts) */
36 	dcf6s_t		dcfilter;
37 
38 	int		in_use;		/* Set by whoever sends to the bus */
39 
40 	/* Insert FX plugins */
41 	audio_plugin_t	insert[AUDIO_MAX_INSERTS];
42 } audio_bus_t;
43 
44 void audio_bus_open(void);
45 void audio_bus_close(void);
46 
47 void bus_process_all(int *bufs[], int *master, unsigned frames);
48 void bus_ctl_set(unsigned bus, unsigned slot, unsigned ctl, int arg);
49 
50 #endif /*_A_BUS_H_*/
51