~ubuntu-branches/ubuntu/precise/lmms/precise-updates

« back to all changes in this revision

Viewing changes to plugins/ladspa_effect/calf/src/calf/metadata.h

  • Committer: Bazaar Package Importer
  • Author(s): Артём Попов
  • Date: 2011-02-14 20:58:36 UTC
  • mfrom: (1.1.10 upstream) (3.1.9 sid)
  • Revision ID: james.westby@ubuntu.com-20110214205836-2u41xus1d2mj8nfz
Tags: 0.4.10-1ubuntu1
* Merge from debian unstable (LP: #718801).  Remaining changes:
  - Replace build-dep on libwine-dev with wine1.2-dev to build
    against the newer Wine.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
 
26
26
#include "giface.h"
27
27
 
 
28
#define MONO_VU_METER_PARAMS param_meter_in, param_meter_out, param_clip_in, param_clip_out
 
29
#define STEREO_VU_METER_PARAMS param_meter_inL, param_meter_inR, param_meter_outL, param_meter_outR, param_clip_inL, param_clip_inR, param_clip_outL, param_clip_outR
 
30
 
28
31
namespace calf_plugins {
29
32
 
30
33
struct flanger_metadata: public plugin_metadata<flanger_metadata>
78
81
struct rotary_speaker_metadata: public plugin_metadata<rotary_speaker_metadata>
79
82
{
80
83
public:
81
 
    enum { par_speed, par_spacing, par_shift, par_moddepth, par_treblespeed, par_bassspeed, par_micdistance, par_reflection, par_meter_l, par_meter_h, param_count };
 
84
    enum { par_speed, par_spacing, par_shift, par_moddepth, par_treblespeed, par_bassspeed, par_micdistance, par_reflection, par_am_depth, par_test, par_meter_l, par_meter_h, param_count };
82
85
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = true, require_midi = false, rt_capable = true };
83
86
    PLUGIN_NAME_ID_LABEL("rotary_speaker", "rotaryspeaker", "Rotary Speaker")
84
87
};
115
118
        param_count };
116
119
    enum { in_count = 0, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = true, require_midi = true, rt_capable = true };
117
120
    enum { step_size = 64, step_shift = 6 };
 
121
    enum { mod_matrix_slots = 10 };
118
122
    enum {
119
123
        modsrc_none,
120
124
        modsrc_velocity,
140
144
        moddest_count,
141
145
    };
142
146
    PLUGIN_NAME_ID_LABEL("monosynth", "monosynth", "Monosynth")
 
147
    
 
148
    mod_matrix_metadata mm_metadata;
 
149
    
 
150
    monosynth_metadata();
 
151
    /// Lookup of table edit interface
 
152
    virtual const table_metadata_iface *get_table_metadata_iface(const char *key) const { if (!strcmp(key, "mod_matrix")) return &mm_metadata; else return NULL; }
 
153
    const char *const *get_configure_vars() const;
143
154
};
144
155
 
145
156
/// Thor's compressor - metadata
147
158
struct compressor_metadata: public plugin_metadata<compressor_metadata>
148
159
{
149
160
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
150
 
    enum { param_bypass, param_level_in, param_meter_in, param_meter_out, param_clip_in, param_clip_out,
 
161
    enum { param_bypass, param_level_in, MONO_VU_METER_PARAMS,
151
162
           param_threshold, param_ratio, param_attack, param_release, param_makeup, param_knee, param_detection, param_stereo_link, param_compression, 
152
163
           param_count };
153
164
    PLUGIN_NAME_ID_LABEL("compressor", "compressor", "Compressor")
157
168
struct sidechaincompressor_metadata: public plugin_metadata<sidechaincompressor_metadata>
158
169
{
159
170
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
160
 
    enum { param_bypass, param_level_in, param_meter_in, param_meter_out, param_clip_in, param_clip_out,
 
171
    enum { param_bypass, param_level_in, MONO_VU_METER_PARAMS,
161
172
           param_threshold, param_ratio, param_attack, param_release, param_makeup, param_knee, param_detection, param_stereo_link, param_compression, 
162
173
           param_sc_mode, param_f1_freq, param_f2_freq, param_f1_level, param_f2_level,
163
174
           param_sc_listen, param_f1_active, param_f2_active, param_count };
168
179
struct multibandcompressor_metadata: public plugin_metadata<multibandcompressor_metadata>
169
180
{
170
181
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
171
 
    enum { param_bypass, param_level_in, param_level_out, param_meter_inL, param_meter_inR,
172
 
           param_meter_outL, param_meter_outR, param_clip_inL, param_clip_inR, param_clip_outL, param_clip_outR,
 
182
    enum { param_bypass, param_level_in, param_level_out, 
 
183
           STEREO_VU_METER_PARAMS,
173
184
           param_freq0, param_freq1, param_freq2,
174
185
           param_sep0, param_sep1, param_sep2,
175
186
           param_q0, param_q1, param_q2,
197
208
    PLUGIN_NAME_ID_LABEL("deesser", "deesser", "Deesser")
198
209
};
199
210
 
 
211
/// Damiens' Gate - metadata
 
212
/// Added some meters and stripped the weighting part
 
213
struct gate_metadata: public plugin_metadata<gate_metadata>
 
214
{
 
215
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
 
216
    enum { param_bypass, param_level_in, MONO_VU_METER_PARAMS,
 
217
           param_range, param_threshold, param_ratio, param_attack, param_release, param_makeup, param_knee, param_detection, param_stereo_link, param_gating, 
 
218
           param_count };
 
219
    PLUGIN_NAME_ID_LABEL("gate", "gate", "Gate")
 
220
};
 
221
 
 
222
/// Markus's sidechain gate - metadata
 
223
struct sidechaingate_metadata: public plugin_metadata<sidechaingate_metadata>
 
224
{
 
225
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
 
226
    enum { param_bypass, param_level_in, MONO_VU_METER_PARAMS,
 
227
           param_range, param_threshold, param_ratio, param_attack, param_release, param_makeup, param_knee, param_detection, param_stereo_link, param_gating, 
 
228
           param_sc_mode, param_f1_freq, param_f2_freq, param_f1_level, param_f2_level,
 
229
           param_sc_listen, param_f1_active, param_f2_active, param_count };
 
230
    PLUGIN_NAME_ID_LABEL("sidechaingate", "sidechaingate", "Sidechain Gate")
 
231
};
 
232
 
200
233
/// Markus's 5-band EQ - metadata
201
234
struct equalizer5band_metadata: public plugin_metadata<equalizer5band_metadata>
202
235
{
203
236
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
204
 
    enum { param_bypass, param_level_in, param_level_out, param_meter_inL, param_meter_inR,
205
 
           param_meter_outL, param_meter_outR, param_clip_inL, param_clip_outL, param_clip_inR, param_clip_outR,
 
237
    enum { param_bypass, param_level_in, param_level_out, STEREO_VU_METER_PARAMS,
206
238
           param_ls_active, param_ls_level, param_ls_freq,
207
239
           param_hs_active, param_hs_level, param_hs_freq,
208
240
           param_p1_active, param_p1_level, param_p1_freq, param_p1_q,
219
251
struct equalizer8band_metadata: public plugin_metadata<equalizer8band_metadata>
220
252
{
221
253
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
222
 
    enum { param_bypass, param_level_in, param_level_out, param_meter_inL, param_meter_inR,
223
 
           param_meter_outL, param_meter_outR, param_clip_inL, param_clip_inR, param_clip_outL, param_clip_outR,
 
254
    enum { param_bypass, param_level_in, param_level_out, 
 
255
           STEREO_VU_METER_PARAMS,
224
256
           param_hp_active, param_hp_freq, param_hp_mode,
225
257
           param_lp_active, param_lp_freq, param_lp_mode,
226
258
           param_ls_active, param_ls_level, param_ls_freq,
237
269
struct equalizer12band_metadata: public plugin_metadata<equalizer12band_metadata>
238
270
{
239
271
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
240
 
    enum { param_bypass, param_level_in, param_level_out, param_meter_inL, param_meter_inR,
241
 
           param_meter_outL, param_meter_outR, param_clip_inL, param_clip_inR, param_clip_outL, param_clip_outR,
 
272
    enum { param_bypass, param_level_in, param_level_out, 
 
273
           STEREO_VU_METER_PARAMS,
242
274
           param_hp_active, param_hp_freq, param_hp_mode,
243
275
           param_lp_active, param_lp_freq, param_lp_mode,
244
276
           param_ls_active, param_ls_level, param_ls_freq,
260
292
struct pulsator_metadata: public plugin_metadata<pulsator_metadata>
261
293
{
262
294
    enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
263
 
    enum { param_bypass, param_level_in, param_level_out, param_meter_inL, param_meter_inR,
264
 
           param_meter_outL, param_meter_outR, param_clip_inL, param_clip_inR, param_clip_outL, param_clip_outR,
 
295
    enum { param_bypass, param_level_in, param_level_out, STEREO_VU_METER_PARAMS,
265
296
           param_mode, param_freq, param_amount, param_offset, param_mono, param_reset, param_count };
266
297
    PLUGIN_NAME_ID_LABEL("pulsator", "pulsator", "Pulsator")
267
298
};
270
301
struct saturator_metadata: public plugin_metadata<saturator_metadata>
271
302
{
272
303
    enum { in_count = 2, out_count = 2, ins_optional = 1, outs_optional = 1, support_midi = false, require_midi = false, rt_capable = true };
273
 
    enum { param_bypass, param_level_in, param_level_out, param_mix, param_meter_in,
274
 
           param_meter_out, param_clip_in, param_clip_out, param_drive, param_blend, param_meter_drive,
 
304
    enum { param_bypass, param_level_in, param_level_out, param_mix, MONO_VU_METER_PARAMS, param_drive, param_blend, param_meter_drive,
275
305
           param_lp_pre_freq, param_hp_pre_freq, param_lp_post_freq, param_hp_post_freq,
276
306
           param_p_freq, param_p_level, param_p_q, param_count };
277
307
    PLUGIN_NAME_ID_LABEL("saturator", "saturator", "Saturator")
280
310
struct exciter_metadata: public plugin_metadata<exciter_metadata>
281
311
{
282
312
    enum { in_count = 2, out_count = 2, ins_optional = 1, outs_optional = 1, support_midi = false, require_midi = false, rt_capable = true };
283
 
    enum { param_bypass, param_level_in, param_level_out, param_amount, param_meter_in,
284
 
           param_meter_out, param_clip_in, param_clip_out, param_drive, param_blend, param_meter_drive,
 
313
    enum { param_bypass, param_level_in, param_level_out, param_amount, MONO_VU_METER_PARAMS, param_drive, param_blend, param_meter_drive,
285
314
           param_freq, param_listen, param_count };
286
315
    PLUGIN_NAME_ID_LABEL("exciter", "exciter", "Exciter")
287
316
};
289
318
struct bassenhancer_metadata: public plugin_metadata<bassenhancer_metadata>
290
319
{
291
320
    enum { in_count = 2, out_count = 2, ins_optional = 1, outs_optional = 1, support_midi = false, require_midi = false, rt_capable = true };
292
 
    enum { param_bypass, param_level_in, param_level_out, param_amount, param_meter_in,
293
 
           param_meter_out, param_clip_in, param_clip_out, param_drive, param_blend, param_meter_drive,
 
321
    enum { param_bypass, param_level_in, param_level_out, param_amount, MONO_VU_METER_PARAMS, param_drive, param_blend, param_meter_drive,
294
322
           param_freq, param_listen, param_count };
295
323
    PLUGIN_NAME_ID_LABEL("bassenhancer", "bassenhancer", "Bass Enhancer")
296
324
};
297
325
 
298
 
/// Damien's gate - metadata
299
 
struct gate_metadata: public plugin_metadata<gate_metadata>
300
 
{
301
 
    enum { in_count = 3, out_count = 2, ins_optional = 1, outs_optional = 0, support_midi = false, require_midi = false, rt_capable = true };
302
 
    enum { param_threshold, param_ratio, param_attack, param_release, param_makeup, param_knee, param_detection, param_stereo_link, param_aweighting, param_gating, param_peak, param_clip, param_bypass, param_range, param_mono, param_trigger, // param_freq, param_bw,
303
 
        param_count };
304
 
    PLUGIN_NAME_ID_LABEL("gate", "gate", "Gate")
305
 
};
306
 
 
307
326
/// Organ - enums for parameter IDs etc. (this mess is caused by organ split between plugin and generic class - which was
308
327
/// a bad design decision and should be sorted out some day) XXXKF @todo
309
328
struct organ_enums
328
347
        par_eg1attack, par_eg1decay, par_eg1sustain, par_eg1release, par_eg1velscl, par_eg1ampctl, 
329
348
        par_eg2attack, par_eg2decay, par_eg2sustain, par_eg2release, par_eg2velscl, par_eg2ampctl, 
330
349
        par_eg3attack, par_eg3decay, par_eg3sustain, par_eg3release, par_eg3velscl, par_eg3ampctl, 
331
 
        par_lforate, par_lfoamt, par_lfowet, par_lfophase, par_lfomode,
 
350
        par_lforate, par_lfoamt, par_lfowet, par_lfophase, par_lfomode, par_lfotype,
332
351
        par_transpose, par_detune,
333
352
        par_polyphony,
334
353
        par_quadenv,
337
356
        par_bassgain,
338
357
        par_treblefreq,
339
358
        par_treblegain,
340
 
        par_var_mapcurve,
341
359
        param_count
342
360
    };
343
 
    enum {
344
 
        var_count = 1
345
 
    };
346
361
    enum organ_waveform { 
347
362
        wave_sine, 
348
363
        wave_sinepl1, wave_sinepl2, wave_sinepl3,
370
385
        ampctl_count
371
386
    };
372
387
    enum { 
 
388
        lfotype_allpass = 0,
 
389
        lfotype_cv1,
 
390
        lfotype_cv2,
 
391
        lfotype_cv3,
 
392
        lfotype_cvfull,
 
393
        lfotype_count
 
394
    };
 
395
    enum { 
373
396
        lfomode_off = 0,
374
397
        lfomode_direct,
375
398
        lfomode_filter1,
392
415
{
393
416
    enum { in_count = 0, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = true, require_midi = true, rt_capable = true };
394
417
    PLUGIN_NAME_ID_LABEL("organ", "organ", "Organ")
 
418
    
 
419
public:
395
420
    plugin_command_info *get_commands();
 
421
    const char *const *get_configure_vars() const;
396
422
};
397
423
 
398
424
/// FluidSynth - metadata
399
425
struct fluidsynth_metadata: public plugin_metadata<fluidsynth_metadata>
400
426
{
401
 
    enum { par_master, par_interpolation, par_reverb, par_chorus, par_soundfont, par_preset_key_set, param_count };
 
427
    enum { par_master, par_interpolation, par_reverb, par_chorus, param_count };
402
428
    enum { in_count = 0, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = true, require_midi = true, rt_capable = false };
403
429
    PLUGIN_NAME_ID_LABEL("fluidsynth", "fluidsynth", "Fluidsynth")
 
430
 
 
431
public:
 
432
    const char *const *get_configure_vars() const;
404
433
};
405
434
    
406
435
/// Wavetable - metadata
469
498
        par_pwhlrange, 
470
499
        param_count };
471
500
    enum { in_count = 0, out_count = 2, ins_optional = 0, outs_optional = 0, support_midi = true, require_midi = true, rt_capable = true };
 
501
    enum { mod_matrix_slots = 10 };
472
502
    enum { step_size = 64 };
473
503
    PLUGIN_NAME_ID_LABEL("wavetable", "wavetable", "Wavetable")
 
504
    mod_matrix_metadata mm_metadata;
 
505
    
 
506
    wavetable_metadata();
 
507
    /// Lookup of table edit interface
 
508
    virtual const table_metadata_iface *get_table_metadata_iface(const char *key) const { if (!strcmp(key, "mod_matrix")) return &mm_metadata; else return NULL; }
474
509
};
475
510
    
476
511
};