1 #ifndef __PLUGINLV2CLIENT_H__
2 #define __PLUGINLV2CLIENT_H__
4 #include "condition.inc"
6 #include "pluginaclient.h"
9 #include "pluginlv2config.h"
10 #include "pluginlv2client.inc"
11 #include "pluginlv2gui.h"
12 #include "pluginlv2ui.inc"
13 #include "samples.inc"
15 class PluginLV2UIs : public ArrayList<PluginLV2ParentUI *>, public Mutex
22 PluginLV2ParentUI *del_ui(PluginLV2Client *client);
23 PluginLV2ParentUI *del_ui(PluginLV2ClientWindow *gui);
24 PluginLV2ParentUI *add_ui(PluginLV2ParentUI *ui, PluginLV2Client *client);
25 PluginLV2ParentUI *search_ui(int plugin_id);
26 PluginLV2ParentUI *find_ui(int plugin_id);
27 PluginLV2ParentUI *get_ui(PluginLV2Client *client);
31 class PluginLV2ParentUI : public ForkParent
34 PluginLV2ParentUI(int plugin_id);
36 ForkChild* new_fork();
37 void start_parent(PluginLV2Client *client);
40 Condition *output_bfr;
41 PluginLV2Client *client;
42 PluginLV2ClientWindow *gui;
49 static PluginLV2UIs plugin_lv2;
52 class PluginLV2BlackList : public ArrayList<const char *>
55 PluginLV2BlackList(const char *path);
56 ~PluginLV2BlackList();
58 int is_badboy(const char *uri);
61 class PluginLV2Client : public PluginAClient, public PluginLV2
64 PluginLV2Client(PluginServer *server);
67 int process_realtime(int64_t size,
68 Samples **input_ptr, Samples **output_ptr, int chs);
69 int process_realtime(int64_t size,
70 Samples *input_ptr, Samples *output_ptr);
71 int process_realtime(int64_t size,
72 Samples **input_ptr, Samples **output_ptr);
73 // Update output pointers as well
75 int is_multichannel();
78 char* to_string(char *string, const char *input);
79 void save_data(KeyFrame *keyframe);
80 void read_data(KeyFrame *keyframe);
81 void load_buffer(int samples, Samples **input, int ich);
82 int unload_buffer(int samples, Samples **output, int och);
83 void process_buffer(int size);
85 void update_lv2(int token);
87 PluginLV2ParentUI *find_ui();
88 PluginLV2ParentUI *get_ui();
90 PLUGIN_CLASS_MEMBERS(PluginLV2ClientConfig)