Remove the source files which got transferred to libpbd
[ardour.git] / libs / ardour / ardour / lv2_plugin.h
index 85fec0acb626baa6f25b98c48d93fd3b8c7a4a6f..21b7fde1d1b1d9ea8a66f7b8465f7689a9f1f5a9 100644 (file)
@@ -116,10 +116,10 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
        bool parameter_is_output (uint32_t) const;
        bool parameter_is_toggled (uint32_t) const;
 
-       boost::shared_ptr<Plugin::ScalePoints>
+       boost::shared_ptr<ScalePoints>
        get_scale_points(uint32_t port_index) const;
 
-       void set_insert_info(const PluginInsert* insert);
+       void set_insert_id(PBD::ID id);
 
        int      set_state (const XMLNode& node, int version);
        bool     save_preset (std::string uri);
@@ -141,48 +141,21 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
                                   uint32_t    format,
                                   const void* buffer);
 
-       void enable_ui_emmission();
+       void enable_ui_emission();
        void emit_to_ui(void* controller, UIMessageSink sink);
 
        Worker* worker() { return _worker; }
 
-       uint32_t     patch_count() const { return _patch_count; }
-       const char * patch_uri(const uint32_t p) const { if (p < _patch_count) return _patch_value_uri[p]; else return NULL; }
-       const char * patch_key(const uint32_t p) const { if (p < _patch_count) return _patch_value_key[p]; else return NULL; }
-       const char * patch_val(const uint32_t p) const { if (p < _patch_count) return _patch_value_cur[p]; else return NULL; }
-       bool         patch_set(const uint32_t p, const char * val);
-       PBD::Signal1<void,const uint32_t> PatchChanged;
+       URIMap&       uri_map()       { return _uri_map; }
+       const URIMap& uri_map() const { return _uri_map; }
 
        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 atom_URID;
-               uint32_t atom_Blank;
-               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;
-               uint32_t patch_Set;
-               uint32_t patch_property;
-               uint32_t patch_value;
-       };
-
-       static URIDs urids;
+       void                       set_property(uint32_t key, const Variant& value);
+       const PropertyDescriptors& get_supported_properties() const { return _property_descriptors; }
+       const ParameterDescriptor& get_property_descriptor(uint32_t id) const;
+       void                       announce_property_values();
 
   private:
        struct Impl;
@@ -202,13 +175,9 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
        framepos_t    _next_cycle_start;  ///< Expected start frame of next run cycle
        double        _next_cycle_speed;  ///< Expected start frame of next run cycle
        PBD::ID       _insert_id;
-
-       uint32_t      _patch_count;
-       char **       _patch_value_uri;
-       char **       _patch_value_key;
-       char          (*_patch_value_cur)[PATH_MAX]; ///< current value
-       char          (*_patch_value_set)[PATH_MAX]; ///< new value to set
-       Glib::Threads::Mutex _patch_set_lock;
+       uint32_t      _patch_port_in_index;
+       uint32_t      _patch_port_out_index;
+       URIMap&       _uri_map;
 
        friend const void* lv2plugin_get_port_value(const char* port_symbol,
                                                    void*       user_data,
@@ -233,6 +202,8 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
        std::vector<size_t>            _port_minimumSize;
        std::map<std::string,uint32_t> _port_indices;
 
+       PropertyDescriptors _property_descriptors;
+
        /// Message send to/from UI via ports
        struct UIMessage {
                uint32_t index;
@@ -289,6 +260,8 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
        void allocate_atom_event_buffers ();
        void run (pframes_t nsamples);
 
+       void load_supported_properties(PropertyDescriptors& descs);
+
        void latency_compute_run ();
        std::string do_save_preset (std::string);
        void do_remove_preset (std::string);