1 #ifndef __PLUGINLV2_H__
2 #define __PLUGINLV2_H__
4 #define LV2_SEQ_SIZE 9624
6 #include "pluginlv2config.h"
10 #define NS_EXT "http://lv2plug.in/ns/ext/"
15 int nb_inputs, nb_outputs;
31 float **in_buffers, **out_buffers;
33 int nb_inputs, nb_outputs;
34 int max_bufsz, ui_features;
37 int load_lv2(const char *path,char *title=0);
38 int init_lv2(PluginLV2ClientConfig &conf, int sample_rate);
40 static LV2_URID uri_table_map(LV2_URID_Map_Handle handle, const char *uri);
41 static const char *uri_table_unmap(LV2_URID_Map_Handle handle, LV2_URID urid);
42 void connect_ports(PluginLV2ClientConfig &conf, int typ=TYP_ALL);
44 void new_buffer(int64_t sz);
45 shm_bfr_t *shm_buffer(int shmid);
46 void init_buffer(int samples);
50 const LilvPlugin *lilv;
53 PluginLV2UriTable uri_table;
55 LV2_Feature map_feature;
57 LV2_Feature unmap_feature;
59 LV2_Atom_Sequence seq_in[2];
60 LV2_Atom_Sequence *seq_out;
66 LilvNode *atom_AtomPort;
67 LilvNode *atom_Sequence;
68 LilvNode *lv2_AudioPort;
70 LilvNode *lv2_ControlPort;
71 LilvNode *lv2_Optional;
72 LilvNode *lv2_InputPort;
73 LilvNode *lv2_OutputPort;
74 LilvNode *powerOf2BlockLength;
75 LilvNode *fixedBlockLength;
76 LilvNode *boundedBlockLength;
79 typedef struct { int sample_rate; char path[1]; } open_bfr_t;
80 typedef struct { int idx; float value; } control_bfr_t;