00001 #ifndef PLUGINACLIENT_H
00002 #define PLUGINACLIENT_H
00003
00004
00005
00006 #include "maxbuffers.h"
00007 #include "pluginclient.h"
00008
00009 class PluginAClient : public PluginClient
00010 {
00011 public:
00012 PluginAClient(PluginServer *server);
00013 virtual ~PluginAClient();
00014
00015 int get_render_ptrs();
00016 int init_realtime_parameters();
00017
00018 int is_audio();
00019
00020
00021 virtual int process_realtime(int64_t size,
00022 double **input_ptr,
00023 double **output_ptr);
00024
00025 virtual int process_realtime(int64_t size,
00026 double *input_ptr,
00027 double *output_ptr);
00028
00029
00030
00031
00032
00033
00034 virtual int process_buffer(int64_t size,
00035 double **buffer,
00036 int64_t start_position,
00037 int sample_rate);
00038 virtual int process_buffer(int64_t size,
00039 double *buffer,
00040 int64_t start_position,
00041 int sample_rate);
00042
00043
00044 virtual int process_loop(double *buffer, int64_t &write_length) { return 1; };
00045 virtual int process_loop(double **buffers, int64_t &write_length) { return 1; };
00046 int plugin_process_loop(double **buffers, int64_t &write_length);
00047
00048 int plugin_start_loop(int64_t start,
00049 int64_t end,
00050 int64_t buffer_size,
00051 int total_buffers);
00052
00053 int plugin_get_parameters();
00054
00055
00056
00057
00058
00059
00060
00061 int read_samples(double *buffer,
00062 int channel,
00063 int64_t start_position,
00064 int64_t len);
00065 int read_samples(double *buffer,
00066 int64_t start_position,
00067 int64_t len);
00068
00069
00070
00071
00072 int read_samples(double *buffer,
00073 int channel,
00074 int sample_rate,
00075 int64_t start_position,
00076 int64_t len);
00077
00078
00079 int get_project_samplerate();
00080
00081 int get_samplerate();
00082
00083 int64_t local_to_edl(int64_t position);
00084 int64_t edl_to_local(int64_t position);
00085
00086 void send_render_gui(void *data, int size);
00087 void plugin_render_gui(void *data, int size);
00088 virtual void render_gui(void *data, int size) {};
00089
00090
00091 ArrayList<float**> input_ptr_master;
00092 ArrayList<float**> output_ptr_master;
00093
00094 float **input_ptr_render;
00095 float **output_ptr_render;
00096
00097 int project_sample_rate;
00098
00099
00100
00101
00102 int sample_rate;
00103 };
00104
00105
00106
00107 #endif