4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 #ifndef REVERBWINDOW_H
23 #define REVERBWINDOW_H
32 #include "pluginclient.h"
37 class ReverbLevelInit;
38 class ReverbDelayInit;
39 class ReverbRefLevel1;
40 class ReverbRefLevel2;
42 class ReverbRefLength;
47 class ReverbWindow : public PluginClientWindow
50 ReverbWindow(Reverb *reverb);
53 void create_objects();
56 ReverbLevelInit *level_init;
57 ReverbDelayInit *delay_init;
58 ReverbRefLevel1 *ref_level1;
59 ReverbRefLevel2 *ref_level2;
60 ReverbRefTotal *ref_total;
61 ReverbRefLength *ref_length;
62 ReverbLowPass1 *lowpass1;
63 ReverbLowPass2 *lowpass2;
67 class ReverbLevelInit : public BC_FPot
70 ReverbLevelInit(Reverb *reverb, int x, int y);
76 class ReverbDelayInit : public BC_IPot
79 ReverbDelayInit(Reverb *reverb, int x, int y);
85 class ReverbRefLevel1 : public BC_FPot
88 ReverbRefLevel1(Reverb *reverb, int x, int y);
94 class ReverbRefLevel2 : public BC_FPot
97 ReverbRefLevel2(Reverb *reverb, int x, int y);
103 class ReverbRefTotal : public BC_IPot
106 ReverbRefTotal(Reverb *reverb, int x, int y);
112 class ReverbRefLength : public BC_IPot
115 ReverbRefLength(Reverb *reverb, int x, int y);
121 class ReverbLowPass1 : public BC_QPot
124 ReverbLowPass1(Reverb *reverb, int x, int y);
130 class ReverbLowPass2 : public BC_QPot
133 ReverbLowPass2(Reverb *reverb, int x, int y);
142 class ReverbSetDefault;
143 class ReverbLoadPrev;
144 class ReverbLoadPrevThread;
146 class ReverbMenu : public BC_MenuBar
149 ReverbMenu(Reverb *reverb, ReverbWindow *window);
152 void create_objects(BC_Hash *defaults);
153 int load_defaults(BC_Hash *defaults);
154 int save_defaults(BC_Hash *defaults);
156 int add_load(char *path);
157 ReverbLoadPrevThread *prev_load_thread;
161 ReverbWindow *window;
165 ReverbSetDefault *set_default;
166 ReverbLoadPrev *prev_load[TOTAL_LOADS];
169 class ReverbSaveThread;
170 class ReverbLoadThread;
172 class ReverbLoad : public BC_MenuItem
175 ReverbLoad(Reverb *reverb, ReverbMenu *menu);
179 ReverbLoadThread *thread;
183 class ReverbSave : public BC_MenuItem
186 ReverbSave(Reverb *reverb, ReverbMenu *menu);
190 ReverbSaveThread *thread;
194 class ReverbSetDefault : public BC_MenuItem
201 class ReverbLoadPrev : public BC_MenuItem
204 ReverbLoadPrev(Reverb *reverb, ReverbMenu *menu, char *filename, char *path);
205 ReverbLoadPrev(Reverb *reverb, ReverbMenu *menu);
207 int set_path(char *path);
214 class ReverbLoadPrevThread : public Thread
217 ReverbLoadPrevThread(Reverb *reverb, ReverbMenu *menu);
218 ~ReverbLoadPrevThread();
220 int set_path(char *path);
228 class ReverbSaveThread : public Thread
231 ReverbSaveThread(Reverb *reverb, ReverbMenu *menu);
238 class ReverbSaveDialog : public BC_FileBox
241 ReverbSaveDialog(Reverb *reverb);
250 class ReverbLoadThread : public Thread
253 ReverbLoadThread(Reverb *reverb, ReverbMenu *menu);
260 class ReverbLoadDialog : public BC_FileBox
263 ReverbLoadDialog(Reverb *reverb);