1 // generated from file '../src/plugins/hornet.dsp' by dsp2cc:
2 // Code generated with Faust (https://faust.grame.fr)
3 
4 #include "gx_faust_support.h"
5 #include "gx_plugin.h"
6 
7 namespace pluginlib {
8 namespace hornet {
9 
10 class Dsp: public PluginDef {
11 private:
12 	int fSampleRate;
13 	double fConst0;
14 	double fConst1;
15 	FAUSTFLOAT fVslider0;
16 	double fRec0[2];
17 	FAUSTFLOAT fVslider1;
18 	double fRec2[2];
19 	double fConst3;
20 	FAUSTFLOAT fVslider2;
21 	double fRec3[2];
22 	double fConst5;
23 	double fConst7;
24 	double fConst9;
25 	double fConst11;
26 	double fConst13;
27 	double fConst14;
28 	double fConst15;
29 	double fConst16;
30 	double fConst17;
31 	double fConst18;
32 	double fConst19;
33 	double fConst20;
34 	double fConst21;
35 	double fConst22;
36 	double fConst23;
37 	double fConst24;
38 	double fConst25;
39 	double fConst27;
40 	double fConst29;
41 	double fConst31;
42 	double fConst33;
43 	double fConst35;
44 	double fConst37;
45 	double fConst38;
46 	double fConst39;
47 	double fConst40;
48 	double fConst41;
49 	double fConst42;
50 	double fConst43;
51 	double fRec1[5];
52 	double fConst45;
53 	double fConst47;
54 	double fConst49;
55 	double fConst51;
56 	double fConst53;
57 	double fConst55;
58 	double fConst57;
59 	double fConst59;
60 	double fConst61;
61 	double fConst63;
62 	double fConst65;
63 	double fConst67;
64 	double fConst68;
65 	double fConst69;
66 	double fConst70;
67 	double fConst71;
68 	double fConst72;
69 	double fConst73;
70 	double fConst74;
71 	double fConst75;
72 	double fConst76;
73 	double fConst77;
74 	double fConst78;
75 	double fConst79;
76 	double fConst80;
77 	double fConst81;
78 
79 	void clear_state_f();
80 	int load_ui_f(const UiBuilder& b, int form);
81 	static const char *glade_def;
82 	void init(unsigned int sample_rate);
83 	void compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0);
84 	int register_par(const ParamReg& reg);
85 
86 	static void clear_state_f_static(PluginDef*);
87 	static int load_ui_f_static(const UiBuilder& b, int form);
88 	static void init_static(unsigned int sample_rate, PluginDef*);
89 	static void compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginDef*);
90 	static int register_params_static(const ParamReg& reg);
91 	static void del_instance(PluginDef *p);
92 public:
93 	Dsp();
94 	~Dsp();
95 };
96 
97 
98 
Dsp()99 Dsp::Dsp()
100 	: PluginDef() {
101 	version = PLUGINDEF_VERSION;
102 	flags = 0;
103 	id = "hornet";
104 	name = N_("Hornet");
105 	groups = 0;
106 	description = N_("Hornet simulation"); // description (tooltip)
107 	category = N_("Fuzz");       // category
108 	shortname = "";     // shortname
109 	mono_audio = compute_static;
110 	stereo_audio = 0;
111 	set_samplerate = init_static;
112 	activate_plugin = 0;
113 	register_params = register_params_static;
114 	load_ui = load_ui_f_static;
115 	clear_state = clear_state_f_static;
116 	delete_instance = del_instance;
117 }
118 
~Dsp()119 Dsp::~Dsp() {
120 }
121 
clear_state_f()122 inline void Dsp::clear_state_f()
123 {
124 	for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) fRec0[l0] = 0.0;
125 	for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) fRec2[l1] = 0.0;
126 	for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) fRec3[l2] = 0.0;
127 	for (int l3 = 0; (l3 < 5); l3 = (l3 + 1)) fRec1[l3] = 0.0;
128 }
129 
clear_state_f_static(PluginDef * p)130 void Dsp::clear_state_f_static(PluginDef *p)
131 {
132 	static_cast<Dsp*>(p)->clear_state_f();
133 }
134 
init(unsigned int sample_rate)135 inline void Dsp::init(unsigned int sample_rate)
136 {
137 	fSampleRate = sample_rate;
138 	fConst0 = std::min<double>(192000.0, std::max<double>(1.0, double(fSampleRate)));
139 	fConst1 = mydsp_faustpower2_f(fConst0);
140 	double fConst2 = (8.0344113490136796e-19 * fConst0);
141 	fConst3 = ((fConst1 * (-2.1327709047497402e-15 - fConst2)) + 4.6082764112797202e-12);
142 	double fConst4 = (1.0533847926209301e-18 * fConst0);
143 	fConst5 = ((fConst1 * (-2.7912118642523799e-15 - fConst4)) + 2.1911443811562198e-12);
144 	double fConst6 = (8.9092734281538994e-20 * fConst0);
145 	fConst7 = ((fConst1 * (fConst6 + 2.3136174511326298e-16)) + -1.7723782402438701e-13);
146 	double fConst8 = (7.3938345895294102e-21 * fConst0);
147 	fConst9 = ((fConst1 * (-4.97629551390976e-16 - fConst8)) + 8.6188432028757995e-11);
148 	double fConst10 = (2.8896627533487999e-21 * fConst0);
149 	fConst11 = ((fConst1 * (-2.3141629669080201e-16 - fConst10)) + 1.16303563314026e-11);
150 	double fConst12 = (1.02834973428782e-20 * fConst0);
151 	fConst13 = ((fConst1 * (fConst12 + 6.4056516005839696e-16)) + -3.1853156396660198e-11);
152 	fConst14 = ((1.20516170235205e-18 * fConst1) + -2.2146088225976801e-13);
153 	fConst15 = ((1.5800771889314001e-18 * fConst1) + -2.4710764349103501e-13);
154 	fConst16 = (2.04220452060922e-14 - (1.3363910142230799e-19 * fConst1));
155 	fConst17 = ((1.10907518842941e-20 * fConst1) + -2.5054803935412798e-12);
156 	fConst18 = ((4.33449413002321e-21 * fConst1) + -1.16746083607033e-12);
157 	fConst19 = (3.1991095902122601e-12 - (1.5425246014317301e-20 * fConst1));
158 	fConst20 = ((fConst1 * (2.1327709047497402e-15 - fConst2)) + -4.6082764112797202e-12);
159 	fConst21 = ((fConst1 * (2.7912118642523799e-15 - fConst4)) + -2.1911443811562198e-12);
160 	fConst22 = ((fConst1 * (fConst6 + -2.3136174511326298e-16)) + 1.7723782402438701e-13);
161 	fConst23 = ((fConst1 * (4.97629551390976e-16 - fConst8)) + -8.6188432028757995e-11);
162 	fConst24 = ((fConst1 * (2.3141629669080201e-16 - fConst10)) + -1.16303563314026e-11);
163 	fConst25 = ((fConst1 * (fConst12 + -6.4056516005839696e-16)) + 3.1853156396660198e-11);
164 	double fConst26 = (2.0086028372534199e-19 * fConst0);
165 	fConst27 = ((fConst0 * ((fConst0 * (fConst26 + -1.0663854523748701e-15)) + 1.1073044112988401e-13)) + -2.3041382056398601e-12);
166 	double fConst28 = (2.6334619815523401e-19 * fConst0);
167 	fConst29 = ((fConst0 * ((fConst0 * (fConst28 + -1.3956059321261899e-15)) + 1.2355382174551801e-13)) + -1.0955721905781099e-12);
168 	double fConst30 = (2.22731835703847e-20 * fConst0);
169 	fConst31 = ((fConst0 * ((fConst0 * (1.15680872556631e-16 - fConst30)) + -1.02110226030461e-14)) + 8.8618912012193706e-14);
170 	double fConst32 = (1.8484586473823499e-21 * fConst0);
171 	fConst33 = ((fConst0 * ((fConst0 * (fConst32 + -2.48814775695488e-16)) + 1.2527401967706399e-12)) + -4.3094216014378998e-11);
172 	double fConst34 = (7.2241568833720101e-22 * fConst0);
173 	fConst35 = ((fConst0 * ((fConst0 * (fConst34 + -1.1570814834540101e-16)) + 5.8373041803516501e-13)) + -5.8151781657012799e-12);
174 	double fConst36 = (2.5708743357195501e-21 * fConst0);
175 	fConst37 = ((fConst0 * ((fConst0 * (3.2028258002919799e-16 - fConst36)) + -1.59955479510613e-12)) + 1.5926578198330099e-11);
176 	fConst38 = ((fConst0 * ((fConst0 * (fConst26 + 1.0663854523748701e-15)) + 1.1073044112988401e-13)) + 2.3041382056398601e-12);
177 	fConst39 = ((fConst0 * ((fConst0 * (fConst28 + 1.3956059321261899e-15)) + 1.2355382174551801e-13)) + 1.0955721905781099e-12);
178 	fConst40 = ((fConst0 * ((fConst0 * (-1.15680872556631e-16 - fConst30)) + -1.02110226030461e-14)) + -8.8618912012193706e-14);
179 	fConst41 = ((fConst0 * ((fConst0 * (fConst32 + 2.48814775695488e-16)) + 1.2527401967706399e-12)) + 4.3094216014378998e-11);
180 	fConst42 = ((fConst0 * ((fConst0 * (fConst34 + 1.1570814834540101e-16)) + 5.8373041803516501e-13)) + 5.8151781657012799e-12);
181 	fConst43 = ((fConst0 * ((fConst0 * (-3.2028258002919799e-16 - fConst36)) + -1.59955479510613e-12)) + -1.5926578198330099e-11);
182 	double fConst44 = (2.4218162356217001e-20 * fConst0);
183 	fConst45 = ((fConst0 * (fConst44 + 1.2685958335763499e-16)) + 3.2109130517186899e-15);
184 	double fConst46 = (9.4649563589667005e-21 * fConst0);
185 	fConst47 = (fConst46 + 4.9338602296741301e-17);
186 	double fConst48 = (3.3683118715183703e-20 * fConst0);
187 	fConst49 = (-1.75582214579149e-16 - fConst48);
188 	double fConst50 = (1.45891323583538e-19 * fConst0);
189 	fConst51 = ((fConst0 * (fConst50 + 7.4048946315080199e-16)) + -1.04296301457845e-13);
190 	double fConst52 = (2.2865563315343902e-18 * fConst0);
191 	fConst53 = (fConst52 + 1.19192830048069e-14);
192 	double fConst54 = (2.8979800773940299e-18 * fConst0);
193 	fConst55 = (fConst54 + 1.5106491892798699e-14);
194 	double fConst56 = (9.6872649424868004e-20 * fConst0);
195 	fConst57 = (-2.5371916671527101e-16 - fConst56);
196 	double fConst58 = (3.7859825435866802e-20 * fConst0);
197 	fConst59 = (-9.8677204593482602e-17 - fConst58);
198 	double fConst60 = (1.34732474860735e-19 * fConst0);
199 	fConst61 = (fConst60 + 3.51164429158298e-16);
200 	double fConst62 = (5.83565294334152e-19 * fConst0);
201 	fConst63 = (-1.4809789263016e-15 - fConst62);
202 	double fConst64 = (9.1462253261375608e-18 * fConst0);
203 	fConst65 = (-2.38385660096139e-14 - fConst64);
204 	double fConst66 = (1.15919203095761e-17 * fConst0);
205 	fConst67 = (-3.0212983785597297e-14 - fConst66);
206 	fConst68 = ((1.4530897413730201e-19 * fConst1) + -6.4218261034373797e-15);
207 	fConst69 = ((8.7534794150122796e-19 * fConst1) + 2.08592602915691e-13);
208 	fConst70 = (2.5371916671527101e-16 - fConst56);
209 	fConst71 = (9.8677204593482602e-17 - fConst58);
210 	fConst72 = (fConst60 + -3.51164429158298e-16);
211 	fConst73 = (1.4809789263016e-15 - fConst62);
212 	fConst74 = (2.38385660096139e-14 - fConst64);
213 	fConst75 = (3.0212983785597297e-14 - fConst66);
214 	fConst76 = ((fConst0 * (fConst44 + -1.2685958335763499e-16)) + 3.2109130517186899e-15);
215 	fConst77 = (fConst46 + -4.9338602296741301e-17);
216 	fConst78 = (1.75582214579149e-16 - fConst48);
217 	fConst79 = ((fConst0 * (fConst50 + -7.4048946315080199e-16)) + -1.04296301457845e-13);
218 	fConst80 = (fConst52 + -1.19192830048069e-14);
219 	fConst81 = (fConst54 + -1.5106491892798699e-14);
220 	clear_state_f();
221 }
222 
init_static(unsigned int sample_rate,PluginDef * p)223 void Dsp::init_static(unsigned int sample_rate, PluginDef *p)
224 {
225 	static_cast<Dsp*>(p)->init(sample_rate);
226 }
227 
compute(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0)228 void always_inline Dsp::compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0)
229 {
230 	double fSlow0 = (0.0070000000000000062 * double(fVslider0));
231 	double fSlow1 = (0.0070000000000000062 * double(fVslider1));
232 	double fSlow2 = (0.0070000000000000062 * double(fVslider2));
233 	for (int i0 = 0; (i0 < count); i0 = (i0 + 1)) {
234 		fRec0[0] = (fSlow0 + (0.99299999999999999 * fRec0[1]));
235 		fRec2[0] = (fSlow1 + (0.99299999999999999 * fRec2[1]));
236 		fRec3[0] = (fSlow2 + (0.99299999999999999 * fRec3[1]));
237 		double fTemp0 = (((fRec2[0] * ((fConst0 * (fConst38 + (fRec3[0] * (fConst39 + (fConst40 * fRec3[0]))))) + 1.30107041069324e-11)) + (fConst0 * (fConst41 + (fRec3[0] * (fConst42 + (fConst43 * fRec3[0])))))) + 3.05506357605318e-10);
238 		fRec1[0] = (double(input0[i0]) - (((((fRec1[1] * (((fRec2[0] * ((fConst0 * (fConst3 + (fRec3[0] * (fConst5 + (fConst7 * fRec3[0]))))) + 5.2042816427729497e-11)) + (fConst0 * (fConst9 + (fRec3[0] * (fConst11 + (fConst13 * fRec3[0])))))) + 1.2220254304212699e-09)) + (fRec1[2] * (((fRec2[0] * ((fConst1 * (fConst14 + (fRec3[0] * (fConst15 + (fConst16 * fRec3[0]))))) + 7.8064224641594301e-11)) + (fConst1 * (fConst17 + (fRec3[0] * (fConst18 + (fConst19 * fRec3[0])))))) + 1.83303814563191e-09))) + (fRec1[3] * (((fRec2[0] * ((fConst0 * (fConst20 + (fRec3[0] * (fConst21 + (fConst22 * fRec3[0]))))) + 5.2042816427729497e-11)) + (fConst0 * (fConst23 + (fRec3[0] * (fConst24 + (fConst25 * fRec3[0])))))) + 1.2220254304212699e-09))) + (fRec1[4] * (((fRec2[0] * ((fConst0 * (fConst27 + (fRec3[0] * (fConst29 + (fConst31 * fRec3[0]))))) + 1.30107041069324e-11)) + (fConst0 * (fConst33 + (fRec3[0] * (fConst35 + (fConst37 * fRec3[0])))))) + 3.05506357605318e-10))) / fTemp0));
239 		output0[i0] = FAUSTFLOAT((0.40000000000000002 * std::min<double>(0.75139999999999996, std::max<double>(-0.45140000000000002, (fConst1 * ((fRec0[0] * (((((fRec1[0] * (fConst45 + ((fConst0 * (fRec3[0] * (fConst47 + (fConst49 * fRec3[0])))) + (fRec2[0] * (fConst51 + (fConst0 * (fRec3[0] * (fConst53 + (fConst55 * fRec3[0]))))))))) + (fConst0 * (fRec1[1] * (fConst57 + ((fRec3[0] * (fConst59 + (fConst61 * fRec3[0]))) + (fRec2[0] * (fConst63 + (fRec3[0] * (fConst65 + (fConst67 * fRec3[0])))))))))) + (fRec1[2] * (fConst68 + ((fConst1 * (fRec3[0] * ((0.0 - (2.02098712291102e-19 * fRec3[0])) + 5.6789738153800206e-20))) + (fRec2[0] * (fConst69 + (fConst1 * (fRec3[0] * ((1.7387880464364199e-17 * fRec3[0]) + 1.37193379892063e-17))))))))) + (fConst0 * (fRec1[3] * (fConst70 + ((fRec3[0] * (fConst71 + (fConst72 * fRec3[0]))) + (fRec2[0] * (fConst73 + (fRec3[0] * (fConst74 + (fConst75 * fRec3[0])))))))))) + (fRec1[4] * (fConst76 + ((fConst0 * (fRec3[0] * (fConst77 + (fConst78 * fRec3[0])))) + (fRec2[0] * (fConst79 + (fConst0 * (fRec3[0] * (fConst80 + (fConst81 * fRec3[0]))))))))))) / fTemp0))))));
240 		fRec0[1] = fRec0[0];
241 		fRec2[1] = fRec2[0];
242 		fRec3[1] = fRec3[0];
243 		for (int j0 = 4; (j0 > 0); j0 = (j0 - 1)) {
244 			fRec1[j0] = fRec1[(j0 - 1)];
245 		}
246 	}
247 }
248 
compute_static(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0,PluginDef * p)249 void __rt_func Dsp::compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginDef *p)
250 {
251 	static_cast<Dsp*>(p)->compute(count, input0, output0);
252 }
253 
register_par(const ParamReg & reg)254 int Dsp::register_par(const ParamReg& reg)
255 {
256 	reg.registerFloatVar("hornet.Fuzz",N_("Fuzz"),"S","",&fVslider2, 0.5, 0.0, 1.0, 0.01, 0);
257 	reg.registerFloatVar("hornet.Level",N_("Level"),"S","",&fVslider0, 0.5, 0.0, 1.0, 0.01, 0);
258 	reg.registerFloatVar("hornet.Sustain",N_("Sustain"),"S","",&fVslider1, 0.5, 0.0, 1.0, 0.01, 0);
259 	return 0;
260 }
261 
register_params_static(const ParamReg & reg)262 int Dsp::register_params_static(const ParamReg& reg)
263 {
264 	return static_cast<Dsp*>(reg.plugin)->register_par(reg);
265 }
266 
267 const char *Dsp::glade_def = "\
268 <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
269 <!-- Generated with glade 3.22.1 -->\n\
270 <interface>\n\
271   <requires lib=\"gtk+\" version=\"3.20\"/>\n\
272   <requires lib=\"gxwidgets\" version=\"0.0\"/>\n\
273   <object class=\"GtkWindow\" id=\"window1\">\n\
274     <property name=\"can_focus\">False</property>\n\
275     <child>\n\
276       <placeholder/>\n\
277     </child>\n\
278     <child>\n\
279       <object class=\"GtkBox\" id=\"vbox1\">\n\
280         <property name=\"visible\">True</property>\n\
281         <property name=\"can_focus\">False</property>\n\
282         <property name=\"orientation\">vertical</property>\n\
283         <child>\n\
284           <object class=\"GtkBox\" id=\"rackbox\">\n\
285             <property name=\"visible\">True</property>\n\
286             <property name=\"can_focus\">False</property>\n\
287             <property name=\"spacing\">4</property>\n\
288             <child>\n\
289               <object class=\"GtkBox\" id=\"hbox1\">\n\
290                 <property name=\"visible\">True</property>\n\
291                 <property name=\"can_focus\">False</property>\n\
292                 <property name=\"spacing\">10</property>\n\
293                 <child>\n\
294                   <object class=\"GtkBox\" id=\"vbox2\">\n\
295                     <property name=\"visible\">True</property>\n\
296                     <property name=\"can_focus\">False</property>\n\
297                     <property name=\"orientation\">vertical</property>\n\
298                     <child>\n\
299                       <object class=\"GtkLabel\" id=\"label1:rack_label\">\n\
300                         <property name=\"visible\">True</property>\n\
301                         <property name=\"can_focus\">False</property>\n\
302                         <property name=\"label\" translatable=\"yes\">label</property>\n\
303                       </object>\n\
304                       <packing>\n\
305                         <property name=\"expand\">False</property>\n\
306                         <property name=\"fill\">False</property>\n\
307                         <property name=\"position\">0</property>\n\
308                       </packing>\n\
309                     </child>\n\
310                     <child>\n\
311                       <object class=\"GxSmallKnobR\" id=\"gxbigknob1\">\n\
312                         <property name=\"visible\">True</property>\n\
313                         <property name=\"can_focus\">True</property>\n\
314                         <property name=\"receives_default\">True</property>\n\
315                         <property name=\"var_id\">hornet.Sustain</property>\n\
316                         <property name=\"label_ref\">label1:rack_label</property>\n\
317                       </object>\n\
318                       <packing>\n\
319                         <property name=\"expand\">False</property>\n\
320                         <property name=\"fill\">False</property>\n\
321                         <property name=\"position\">1</property>\n\
322                       </packing>\n\
323                     </child>\n\
324                   </object>\n\
325                   <packing>\n\
326                     <property name=\"expand\">False</property>\n\
327                     <property name=\"fill\">False</property>\n\
328                     <property name=\"position\">0</property>\n\
329                   </packing>\n\
330                 </child>\n\
331                 <child>\n\
332                   <object class=\"GtkBox\" id=\"vbox3\">\n\
333                     <property name=\"visible\">True</property>\n\
334                     <property name=\"can_focus\">False</property>\n\
335                     <property name=\"orientation\">vertical</property>\n\
336                     <child>\n\
337                       <object class=\"GtkLabel\" id=\"label2:rack_label\">\n\
338                         <property name=\"visible\">True</property>\n\
339                         <property name=\"can_focus\">False</property>\n\
340                         <property name=\"label\" translatable=\"yes\">label</property>\n\
341                       </object>\n\
342                       <packing>\n\
343                         <property name=\"expand\">False</property>\n\
344                         <property name=\"fill\">False</property>\n\
345                         <property name=\"position\">0</property>\n\
346                       </packing>\n\
347                     </child>\n\
348                     <child>\n\
349                       <object class=\"GxMidKnob\" id=\"gxbigknob2\">\n\
350                         <property name=\"visible\">True</property>\n\
351                         <property name=\"can_focus\">True</property>\n\
352                         <property name=\"receives_default\">True</property>\n\
353                         <property name=\"var_id\">hornet.Level</property>\n\
354                         <property name=\"label_ref\">label2:rack_label</property>\n\
355                       </object>\n\
356                       <packing>\n\
357                         <property name=\"expand\">False</property>\n\
358                         <property name=\"fill\">False</property>\n\
359                         <property name=\"position\">1</property>\n\
360                       </packing>\n\
361                     </child>\n\
362                   </object>\n\
363                   <packing>\n\
364                     <property name=\"expand\">False</property>\n\
365                     <property name=\"fill\">False</property>\n\
366                     <property name=\"position\">1</property>\n\
367                   </packing>\n\
368                 </child>\n\
369                 <child>\n\
370                   <object class=\"GtkBox\" id=\"vbox4\">\n\
371                     <property name=\"visible\">True</property>\n\
372                     <property name=\"can_focus\">False</property>\n\
373                     <property name=\"orientation\">vertical</property>\n\
374                     <child>\n\
375                       <object class=\"GtkLabel\" id=\"label3:rack_label\">\n\
376                         <property name=\"visible\">True</property>\n\
377                         <property name=\"can_focus\">False</property>\n\
378                         <property name=\"label\" translatable=\"yes\">label</property>\n\
379                       </object>\n\
380                       <packing>\n\
381                         <property name=\"expand\">False</property>\n\
382                         <property name=\"fill\">False</property>\n\
383                         <property name=\"position\">0</property>\n\
384                       </packing>\n\
385                     </child>\n\
386                     <child>\n\
387                       <object class=\"GxSmallKnobR\" id=\"gxbigknob3\">\n\
388                         <property name=\"visible\">True</property>\n\
389                         <property name=\"can_focus\">True</property>\n\
390                         <property name=\"receives_default\">True</property>\n\
391                         <property name=\"var_id\">hornet.Fuzz</property>\n\
392                         <property name=\"label_ref\">label3:rack_label</property>\n\
393                       </object>\n\
394                       <packing>\n\
395                         <property name=\"expand\">False</property>\n\
396                         <property name=\"fill\">False</property>\n\
397                         <property name=\"position\">1</property>\n\
398                       </packing>\n\
399                     </child>\n\
400                   </object>\n\
401                   <packing>\n\
402                     <property name=\"expand\">False</property>\n\
403                     <property name=\"fill\">False</property>\n\
404                     <property name=\"position\">2</property>\n\
405                   </packing>\n\
406                 </child>\n\
407               </object>\n\
408               <packing>\n\
409                 <property name=\"expand\">True</property>\n\
410                 <property name=\"fill\">False</property>\n\
411                 <property name=\"pack_type\">end</property>\n\
412                 <property name=\"position\">0</property>\n\
413               </packing>\n\
414             </child>\n\
415           </object>\n\
416           <packing>\n\
417             <property name=\"expand\">True</property>\n\
418             <property name=\"fill\">False</property>\n\
419             <property name=\"position\">0</property>\n\
420           </packing>\n\
421         </child>\n\
422         <child>\n\
423           <object class=\"GtkBox\" id=\"minibox\">\n\
424             <property name=\"visible\">True</property>\n\
425             <property name=\"can_focus\">False</property>\n\
426             <property name=\"spacing\">4</property>\n\
427             <child>\n\
428               <object class=\"GxHSlider\" id=\"gxhslider1\">\n\
429                 <property name=\"visible\">True</property>\n\
430                 <property name=\"can_focus\">True</property>\n\
431                 <property name=\"receives_default\">True</property>\n\
432                 <property name=\"round_digits\">0</property>\n\
433                 <property name=\"var_id\">hornet.Level</property>\n\
434                 <property name=\"show_value\">False</property>\n\
435                 <property name=\"value_position\">right</property>\n\
436                 <property name=\"value_xalign\">0.52000000000000002</property>\n\
437                 <property name=\"label_ref\">label0:rack_label</property>\n\
438               </object>\n\
439               <packing>\n\
440                 <property name=\"expand\">False</property>\n\
441                 <property name=\"fill\">False</property>\n\
442                 <property name=\"position\">0</property>\n\
443               </packing>\n\
444             </child>\n\
445             <child>\n\
446               <object class=\"GtkLabel\" id=\"label0:rack_label\">\n\
447                 <property name=\"visible\">True</property>\n\
448                 <property name=\"can_focus\">False</property>\n\
449                 <property name=\"label\" translatable=\"yes\">Level</property>\n\
450                 <property name=\"xalign\">0</property>\n\
451               </object>\n\
452               <packing>\n\
453                 <property name=\"expand\">False</property>\n\
454                 <property name=\"fill\">False</property>\n\
455                 <property name=\"position\">1</property>\n\
456               </packing>\n\
457             </child>\n\
458           </object>\n\
459           <packing>\n\
460             <property name=\"expand\">True</property>\n\
461             <property name=\"fill\">True</property>\n\
462             <property name=\"position\">1</property>\n\
463           </packing>\n\
464         </child>\n\
465       </object>\n\
466     </child>\n\
467   </object>\n\
468 </interface>\n\
469 ";
470 
load_ui_f(const UiBuilder & b,int form)471 inline int Dsp::load_ui_f(const UiBuilder& b, int form)
472 {
473     if (form & UI_FORM_GLADE) {
474         b.load_glade(glade_def);
475         return 0;
476     }
477     if (form & UI_FORM_STACK) {
478 #define PARAM(p) ("hornet" "." p)
479 
480 b.openHorizontalhideBox("");
481     b.create_master_slider(PARAM("Fuzz"), N_("Fuzz"));
482 b.closeBox();
483 b.openHorizontalBox("");
484 
485     b.create_small_rackknobr(PARAM("Level"), N_("Level"));
486 
487     b.create_small_rackknobr(PARAM("Sustain"), N_("Sustain"));
488 
489     b.create_small_rackknobr(PARAM("Fuzz"), N_("Fuzz"));
490 b.closeBox();
491 
492 #undef PARAM
493         return 0;
494     }
495 	return -1;
496 }
497 
load_ui_f_static(const UiBuilder & b,int form)498 int Dsp::load_ui_f_static(const UiBuilder& b, int form)
499 {
500 	return static_cast<Dsp*>(b.plugin)->load_ui_f(b, form);
501 }
plugin()502 PluginDef *plugin() {
503 	return new Dsp();
504 }
505 
del_instance(PluginDef * p)506 void Dsp::del_instance(PluginDef *p)
507 {
508 	delete static_cast<Dsp*>(p);
509 }
510 
511 } // end namespace hornet
512 } // end namespace pluginlib
513