7 #include "reverbwindow.h"
8 #include "pluginaclient.h"
16 int equivalent(ReverbConfig
&that
);
17 void copy_from(ReverbConfig
&that
);
18 void interpolate(ReverbConfig
&prev
,
22 int64_t current_frame
);
31 int64_t lowpass1
, lowpass2
;
34 class Reverb
: public PluginAClient
37 Reverb(PluginServer
*server
);
41 int load_from_file(char *data
);
42 int save_to_file(char *data
);
43 int load_configuration();
48 char config_directory
[1024];
50 double **main_in
, **main_out
;
52 int64_t **ref_channels
, **ref_offsets
, **ref_lowpass
;
54 int64_t dsp_in_length
;
56 // skirts for lowpass filter
57 double **lowpass_in1
, **lowpass_in2
;
59 // required for all realtime/multichannel plugins
61 int process_realtime(int64_t size
, double **input_ptr
, double **output_ptr
);
64 int is_multichannel();
68 void save_data(KeyFrame
*keyframe
);
69 void read_data(KeyFrame
*keyframe
);
73 // non realtime support
79 ReverbEngine
**engine
;
83 class ReverbEngine
: public Thread
86 ReverbEngine(Reverb
*plugin
);
89 int process_overlay(double *in
, double *out
, double &out1
, double &out2
, double level
, int64_t lowpass
, int64_t samplerate
, int64_t size
);
90 int process_overlays(int output_buffer
, int64_t size
);
91 int wait_process_overlays();
94 Mutex input_lock
, output_lock
;