r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / plugins / pitch / pitch.h
blob13b6c416365c4687e51407a1f5816efbfe668d34
1 #ifndef PITCH_H
2 #define PITCH_H
6 #include "defaults.inc"
7 #include "fourier.h"
8 #include "guicast.h"
9 #include "mutex.h"
10 #include "pluginaclient.h"
11 #include "vframe.inc"
13 class PitchEffect;
15 class PitchScale : public BC_FPot
17 public:
18 PitchScale(PitchEffect *plugin, int x, int y);
19 int handle_event();
20 PitchEffect *plugin;
23 class PitchWindow : public BC_Window
25 public:
26 PitchWindow(PitchEffect *plugin, int x, int y);
27 void create_objects();
28 void update();
29 int close_event();
30 PitchScale *scale;
31 PitchEffect *plugin;
34 class PitchThread : public Thread
36 public:
37 PitchThread(PitchEffect *plugin);
38 ~PitchThread();
39 void run();
40 Mutex completion;
41 PitchWindow *window;
42 PitchEffect *plugin;
45 class PitchConfig
47 public:
48 PitchConfig();
51 int equivalent(PitchConfig &that);
52 void copy_from(PitchConfig &that);
53 void interpolate(PitchConfig &prev,
54 PitchConfig &next,
55 int64_t prev_frame,
56 int64_t next_frame,
57 int64_t current_frame);
60 double scale;
63 class PitchFFT : public CrossfadeFFT
65 public:
66 PitchFFT(PitchEffect *plugin);
67 int signal_process();
68 PitchEffect *plugin;
71 class PitchEffect : public PluginAClient
73 public:
74 PitchEffect(PluginServer *server);
75 ~PitchEffect();
77 VFrame* new_picon();
78 char* plugin_title();
79 int is_realtime();
80 void read_data(KeyFrame *keyframe);
81 void save_data(KeyFrame *keyframe);
82 int process_realtime(int64_t size, double *input_ptr, double *output_ptr);
83 int show_gui();
84 void raise_window();
85 int set_string();
90 int load_defaults();
91 int save_defaults();
92 int load_configuration();
93 void reset();
94 void update_gui();
97 Defaults *defaults;
98 PitchThread *thread;
99 PitchFFT *fft;
100 PitchConfig config;
104 #endif