1 /* 2 * JACK Rack 3 * 4 * Original: 5 * Copyright (C) Robert Ham 2002, 2003 (node@users.sourceforge.net) 6 * 7 * Modification for MLT: 8 * Copyright (C) 2004-2014 Meltytech, LLC 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License as published by 12 * the Free Software Foundation; either version 2 of the License, or 13 * (at your option) any later version. 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with this program; if not, write to the Free Software 22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 23 */ 24 25 #ifndef __JR_JACK_RACK_H__ 26 #define __JR_JACK_RACK_H__ 27 28 #include <glib.h> 29 #include <ladspa.h> 30 31 #include "plugin.h" 32 #include "plugin_mgr.h" 33 #include "plugin_settings.h" 34 #include "process.h" 35 36 typedef struct _saved_plugin saved_plugin_t; 37 38 struct _saved_plugin 39 { 40 settings_t *settings; 41 }; 42 43 typedef struct _saved_rack saved_rack_t; 44 45 struct _saved_rack 46 { 47 unsigned long channels; 48 jack_nframes_t sample_rate; 49 GSList * plugins; 50 }; 51 52 typedef struct _jack_rack jack_rack_t; 53 54 struct _jack_rack 55 { 56 plugin_mgr_t * plugin_mgr; 57 process_info_t * procinfo; 58 unsigned long channels; 59 GSList * saved_plugins; 60 }; 61 62 jack_rack_t * jack_rack_new (const char * client_name, unsigned long channels); 63 void jack_rack_destroy (jack_rack_t * jack_rack); 64 65 int jack_rack_open_file (jack_rack_t * jack_rack, const char * filename); 66 void jack_rack_add_plugin (jack_rack_t * jack_rack, plugin_t * plugin); 67 void jack_rack_add_saved_plugin (jack_rack_t * jack_rack, struct _saved_plugin * saved_plugin); 68 69 plugin_t * jack_rack_instantiate_plugin (jack_rack_t * jack_rack, plugin_desc_t * desc); 70 71 #endif /* __JR_JACK_RACK_H__ */ 72