uint32_t num_ports () const;
uint32_t parameter_count () const;
float default_value (uint32_t port);
+ framecnt_t max_latency () const;
framecnt_t signal_latency () const;
void set_parameter (uint32_t port, float val);
float get_parameter (uint32_t port) const;
int get_parameter_descriptor (uint32_t which, ParameterDescriptor&) const;
uint32_t nth_parameter (uint32_t port, bool& ok) const;
+ IOPortDescription describe_io_port (DataType dt, bool input, uint32_t id) const;
+
const void* extension_data (const char* uri) const;
const void* c_plugin();
bool requires_fixed_sized_buffers () const;
int connect_and_run (BufferSet& bufs,
+ framepos_t start, framepos_t end, double speed,
ChanMapping in, ChanMapping out,
pframes_t nframes, framecnt_t offset);
URIMap& _uri_map;
bool _no_sample_accurate_ctrl;
bool _can_write_automation;
+ framecnt_t _max_latency;
+ framecnt_t _current_latency;
friend const void* lv2plugin_get_port_value(const char* port_symbol,
void* user_data,
PORT_POSITION = 1 << 7, ///< Event port understands position
PORT_PATCHMSG = 1 << 8, ///< Event port supports patch:Message
PORT_AUTOCTRL = 1 << 9, ///< Event port supports auto:AutomationControl
- PORT_CTRLED = 1 << 10 ///< Port prop auto:AutomationControlled (can be self controlled)
+ PORT_CTRLED = 1 << 10, ///< Port prop auto:AutomationControlled (can be self controlled)
+ PORT_CTRLER = 1 << 11, ///< Port prop auto:AutomationController (can be self set)
+ PORT_NOAUTO = 1 << 12 ///< Port don't allow to automate
} PortFlag;
typedef unsigned PortFlags;
RingBuffer<uint8_t>* _to_ui;
RingBuffer<uint8_t>* _from_ui;
+#ifdef LV2_EXTENDED
+ const LV2_Inline_Display_Interface* _display_interface;
+#endif
+
typedef struct {
const void* (*extension_data) (const char* uri);
} LV2_DataAccess;
LV2_Feature _work_schedule_feature;
LV2_Feature _options_feature;
LV2_Feature _def_state_feature;
+#ifdef LV2_EXTENDED
+ LV2_Feature _queue_draw_feature;
+#endif
// Options passed to plugin
int32_t _seq_size;
void load_supported_properties(PropertyDescriptors& descs);
+#ifdef LV2_EXTENDED
+ bool has_inline_display ();
+ Plugin::Display_Image_Surface* render_inline_display (uint32_t, uint32_t);
+#endif
+
void latency_compute_run ();
std::string do_save_preset (std::string);
void do_remove_preset (std::string);