4 * Copyright (C) 2008-2019 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
21 #ifndef REVERBWINDOW_H
22 #define REVERBWINDOW_H
24 #define TOTAL_PARAMS 9
29 #include "eqcanvas.inc"
32 #include "pluginclient.h"
36 class ReverbLevelInit;
37 class ReverbDelayInit;
38 class ReverbRefLevel1;
39 class ReverbRefLevel2;
41 class ReverbRefLength;
47 class ReverbWindow : public PluginClientWindow
50 ReverbWindow(Reverb *reverb);
53 void create_objects();
59 ReverbParam *params[TOTAL_PARAMS];
61 ReverbParam *level_init;
62 ReverbParam *delay_init;
63 ReverbParam *ref_level1;
64 ReverbParam *ref_level2;
65 ReverbParam *ref_total;
66 ReverbParam *ref_length;
74 class ReverbSize : public BC_PopupMenu
77 ReverbSize(ReverbWindow *window, Reverb *plugin, int x, int y);
80 void create_objects(); // add initial items
81 void update(int size);
88 class ReverbFPot : public BC_FPot
91 ReverbFPot(ReverbParam *param, int x, int y);
96 class ReverbIPot : public BC_IPot
99 ReverbIPot(ReverbParam *param, int x, int y);
104 class ReverbQPot : public BC_QPot
107 ReverbQPot(ReverbParam *param, int x, int y);
112 class ReverbText : public BC_TextBox
115 ReverbText(ReverbParam *param, int x, int y, int w, int value);
116 ReverbText(ReverbParam *param, int x, int y, int w, float value);
124 ReverbParam(Reverb *reverb, ReverbWindow *gui,
125 int x, int x2, int x3, int y, int text_w,
127 float *output_f, // floating point output
128 int *output_q, // frequency output
129 const char *title, float min, float max);
133 void update(int skip_text, int skip_pot);
152 class ReverbLevelInit : public BC_FPot
155 ReverbLevelInit(Reverb *reverb, int x, int y);
161 class ReverbDelayInit : public BC_IPot
164 ReverbDelayInit(Reverb *reverb, int x, int y);
170 class ReverbRefLevel1 : public BC_FPot
173 ReverbRefLevel1(Reverb *reverb, int x, int y);
179 class ReverbRefLevel2 : public BC_FPot
182 ReverbRefLevel2(Reverb *reverb, int x, int y);
188 class ReverbRefTotal : public BC_IPot
191 ReverbRefTotal(Reverb *reverb, int x, int y);
197 class ReverbRefLength : public BC_IPot
200 ReverbRefLength(Reverb *reverb, int x, int y);
206 class ReverbHigh : public BC_QPot
209 ReverbHigh(Reverb *reverb, int x, int y);
215 class ReverbLow : public BC_QPot
218 ReverbLow(Reverb *reverb, int x, int y);
224 class ReverbQ: public BC_QPot
227 ReverbQ(Reverb *reverb, int x, int y);