X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fplugin_selector.h;h=c4b613647d20781df194aeff47fd9d3901946cf8;hb=e11b3f90c2d02735a071d526d67cfd0de90cbac3;hp=ac300638d728ad8418cd3a5a8d549782d1714734;hpb=bb457bb960c5bd7ed538f9d31477293415739f68;p=ardour.git diff --git a/gtk2_ardour/plugin_selector.h b/gtk2_ardour/plugin_selector.h index ac300638d7..c4b613647d 100644 --- a/gtk2_ardour/plugin_selector.h +++ b/gtk2_ardour/plugin_selector.h @@ -26,6 +26,7 @@ #include #include +#include "plugin_interest.h" namespace ARDOUR { class Session; @@ -36,15 +37,21 @@ class PluginSelector : public ArdourDialog { public: PluginSelector (ARDOUR::PluginManager *); - sigc::signal > PluginCreated; + void set_interested_object (PluginInterestedObject&); + int run (); // XXX should we try not to overload the non-virtual Gtk::Dialog::run() ? void set_session (ARDOUR::Session*); + void on_show (); + + Gtk::Menu& plugin_menu (); private: + PluginInterestedObject* interested_object; + ARDOUR::Session* session; - Gtk::ScrolledWindow scroller; // Available plugins + Gtk::ScrolledWindow scroller; // Available plugins Gtk::ScrolledWindow ascroller; // Added plugins Gtk::ComboBoxText filter_mode; @@ -57,20 +64,26 @@ class PluginSelector : public ArdourDialog struct PluginColumns : public Gtk::TreeModel::ColumnRecord { PluginColumns () { + add (favorite); add (name); add (type_name); add (category); add (creator); - add (ins); - add (outs); + add (audio_ins); + add (audio_outs); + add (midi_ins); + add (midi_outs); add (plugin); } + Gtk::TreeModelColumn favorite; Gtk::TreeModelColumn name; Gtk::TreeModelColumn type_name; Gtk::TreeModelColumn category; Gtk::TreeModelColumn creator; - Gtk::TreeModelColumn ins; - Gtk::TreeModelColumn outs; + Gtk::TreeModelColumn audio_ins; + Gtk::TreeModelColumn audio_outs; + Gtk::TreeModelColumn midi_ins; + Gtk::TreeModelColumn midi_outs; Gtk::TreeModelColumn plugin; }; PluginColumns plugin_columns; @@ -94,6 +107,7 @@ class PluginSelector : public ArdourDialog void refill (); void refiller (const ARDOUR::PluginInfoList& plugs, const::std::string& filterstr, const char* type); void ladspa_refiller (const std::string&); + void lv2_refiller (const std::string&); void vst_refiller (const std::string&); void au_refiller (const std::string&); @@ -106,10 +120,16 @@ class PluginSelector : public ArdourDialog void added_list_selection_changed(); void display_selection_changed(); void btn_apply_clicked(); - void use_plugin (ARDOUR::PluginInfoPtr); - void cleanup (); + ARDOUR::PluginPtr load_plugin (ARDOUR::PluginInfoPtr); bool show_this_plugin (const ARDOUR::PluginInfoPtr&, const std::string&); void setup_filter_string (std::string&); + + void favorite_changed (const Glib::ustring& path); + bool in_row_change; + + void plugin_chosen_from_menu (const ARDOUR::PluginInfoPtr&); + Gtk::Menu* _menu; + void show_manager (); }; #endif // __ardour_plugin_selector_h__