r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / plugins / timestretch / timestretch.h
blobd77f92f199d63f3264a9ed1e102a69bf75e24099
1 #ifndef TIMESTRETCH_H
2 #define TIMESTRETCH_H
4 #include "defaults.inc"
5 #include "fourier.h"
6 #include "guicast.h"
7 #include "mainprogress.inc"
8 #include "pluginaclient.h"
9 #include "resample.inc"
10 #include "timestretchengine.inc"
11 #include "vframe.inc"
16 class TimeStretch;
17 class TimeStretchWindow;
22 class TimeStretchFraction : public BC_TextBox
24 public:
25 TimeStretchFraction(TimeStretch *plugin, int x, int y);
26 int handle_event();
27 TimeStretch *plugin;
31 class TimeStretchFreq : public BC_Radial
33 public:
34 TimeStretchFreq(TimeStretch *plugin, TimeStretchWindow *gui, int x, int y);
35 int handle_event();
36 TimeStretch *plugin;
37 TimeStretchWindow *gui;
40 class TimeStretchTime : public BC_Radial
42 public:
43 TimeStretchTime(TimeStretch *plugin, TimeStretchWindow *gui, int x, int y);
44 int handle_event();
45 TimeStretch *plugin;
46 TimeStretchWindow *gui;
50 class TimeStretchWindow : public BC_Window
52 public:
53 TimeStretchWindow(TimeStretch *plugin, int x, int y);
54 ~TimeStretchWindow();
56 void create_objects();
58 TimeStretch *plugin;
59 TimeStretchFreq *freq;
60 TimeStretchTime *time;
64 class PitchEngine : public CrossfadeFFT
66 public:
67 PitchEngine(TimeStretch *plugin);
70 int signal_process();
72 TimeStretch *plugin;
75 class TimeStretch : public PluginAClient
77 public:
78 TimeStretch(PluginServer *server);
79 ~TimeStretch();
82 char* plugin_title();
83 int get_parameters();
84 VFrame* new_picon();
85 int start_loop();
86 int process_loop(double *buffer, int64_t &write_length);
87 int stop_loop();
89 int load_defaults();
90 int save_defaults();
95 PitchEngine *pitch;
96 Resample *resample;
97 double *temp;
98 int temp_allocated;
99 double *input;
100 int input_allocated;
102 int use_fft;
103 TimeStretchEngine *stretch;
105 Defaults *defaults;
106 MainProgressBar *progress;
107 double scale;
108 int64_t current_position;
109 int64_t total_written;
113 #endif