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(Plugin *plugin);
26 PluginLV2ParentUI *find_ui(Plugin *plugin);
27 PluginLV2ParentUI *get_ui(PluginLV2Client *client);
31 class PluginLV2ParentUI : public ForkParent
34 PluginLV2ParentUI(Plugin *plugin);
36 ForkChild* new_fork();
37 void start_parent(PluginLV2Client *client);
40 Condition *output_bfr;
41 PluginLV2Client *client;
42 PluginLV2ClientWindow *gui;
48 //from Plugin::identitical_location
53 static PluginLV2UIs plugin_lv2;
56 class PluginLV2BlackList : public ArrayList<const char *>
59 PluginLV2BlackList(const char *path);
60 ~PluginLV2BlackList();
62 int is_badboy(const char *uri);
65 class PluginLV2Client : public PluginAClient, public PluginLV2
68 PluginLV2Client(PluginServer *server);
71 int process_realtime(int64_t size,
74 int process_realtime(int64_t size,
76 Samples **output_ptr);
77 // Update output pointers as well
79 int is_multichannel();
82 char* to_string(char *string, const char *input);
83 void save_data(KeyFrame *keyframe);
84 void read_data(KeyFrame *keyframe);
85 void load_buffer(int samples, Samples **input, int ich);
86 int unload_buffer(int samples, Samples **output, int och);
87 void process_buffer(int size);
91 PluginLV2ParentUI *find_ui();
92 PluginLV2ParentUI *get_ui();
94 PLUGIN_CLASS_MEMBERS(PluginLV2ClientConfig)