+ std::string state_node_name () const { return "lv2"; }
+
+ void print_parameter (uint32_t param,
+ char* buf,
+ uint32_t len) const;
+
+ bool parameter_is_audio (uint32_t) const;
+ bool parameter_is_control (uint32_t) const;
+ bool parameter_is_event (uint32_t) const;
+ bool parameter_is_input (uint32_t) const;
+ bool parameter_is_output (uint32_t) const;
+ bool parameter_is_toggled (uint32_t) const;
+
+ boost::shared_ptr<Plugin::ScalePoints>
+ get_scale_points(uint32_t port_index) const;
+
+ void set_insert_info(const PluginInsert* insert);
+
+ int set_state (const XMLNode& node, int version);
+ bool save_preset (std::string uri);
+ void remove_preset (std::string uri);
+ bool load_preset (PresetRecord);
+ std::string current_preset () const;
+
+ bool has_editor () const;
+ bool has_message_output () const;
+
+ bool write_from_ui(uint32_t index,
+ uint32_t protocol,
+ uint32_t size,
+ const uint8_t* body);
+
+ typedef void UIMessageSink(void* controller,
+ uint32_t index,
+ uint32_t size,
+ uint32_t format,
+ const void* buffer);
+
+ void enable_ui_emmission();
+ void emit_to_ui(void* controller, UIMessageSink sink);
+
+ Worker* worker() { return _worker; }
+
+ int work(uint32_t size, const void* data);
+ int work_response(uint32_t size, const void* data);
+
+ static URIMap _uri_map;
+
+ struct URIDs {
+ uint32_t atom_Chunk;
+ uint32_t atom_Path;
+ uint32_t atom_Sequence;
+ uint32_t atom_eventTransfer;
+ uint32_t log_Error;
+ uint32_t log_Note;
+ uint32_t log_Warning;
+ uint32_t midi_MidiEvent;
+ uint32_t time_Position;
+ uint32_t time_bar;
+ uint32_t time_barBeat;
+ uint32_t time_beatUnit;
+ uint32_t time_beatsPerBar;
+ uint32_t time_beatsPerMinute;
+ uint32_t time_frame;
+ uint32_t time_speed;
+ };
+
+ static URIDs urids;