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