X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fplugin_selector.cc;h=9c03bd5c4810c9a46577a212ee112ec05fedd553;hb=848e75aaeaa04a81883ed30bcd04abd862f9d1fd;hp=b1698b59aef550bc5dde6299a5361157874b4c9e;hpb=8016c4dec0f31fa8c4212f53f467a0bf15502afc;p=ardour.git diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc index b1698b59ae..9c03bd5c48 100644 --- a/gtk2_ardour/plugin_selector.cc +++ b/gtk2_ardour/plugin_selector.cc @@ -21,7 +21,6 @@ #endif #include -#include #include #include @@ -37,8 +36,6 @@ #include "ardour/plugin_manager.h" #include "ardour/plugin.h" -#include "ardour/configuration.h" -#include "ardour/session.h" #include "ardour_ui.h" #include "plugin_selector.h" @@ -68,7 +65,6 @@ PluginSelector::PluginSelector (PluginManager& mgr) , manager (mgr) { - set_position (Gtk::WIN_POS_MOUSE); set_name ("PluginSelectorWindow"); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK); @@ -85,7 +81,7 @@ PluginSelector::PluginSelector (PluginManager& mgr) related to "hidden" */ plugin_display.append_column (_("Fav"), plugin_columns.favorite); - plugin_display.append_column (_("Hid"), plugin_columns.hidden); + plugin_display.append_column (_("Hide"), plugin_columns.hidden); plugin_display.append_column (_("Available Plugins"), plugin_columns.name); plugin_display.append_column (_("Type"), plugin_columns.type_name); plugin_display.append_column (_("Category"), plugin_columns.category); @@ -181,7 +177,7 @@ PluginSelector::PluginSelector (PluginManager& mgr) //plugin_display.set_name("PluginSelectorList"); added_list.set_name("PluginSelectorList"); - plugin_display.signal_button_press_event().connect_notify (sigc::mem_fun(*this, &PluginSelector::row_clicked)); + plugin_display.signal_row_activated().connect_notify (sigc::mem_fun(*this, &PluginSelector::row_activated)); plugin_display.get_selection()->signal_changed().connect (sigc::mem_fun(*this, &PluginSelector::display_selection_changed)); plugin_display.grab_focus(); @@ -199,11 +195,9 @@ PluginSelector::~PluginSelector () } void -PluginSelector::row_clicked(GdkEventButton* event) +PluginSelector::row_activated(Gtk::TreeModel::Path, Gtk::TreeViewColumn*) { - if (event->type == GDK_2BUTTON_PRESS) { - btn_add_clicked(); - } + btn_add_clicked(); } bool @@ -321,15 +315,22 @@ PluginSelector::refiller (const PluginInfoList& plugs, const::std::string& filte newrow[plugin_columns.creator] = creator; - snprintf (buf, sizeof(buf), "%d", (*i)->n_inputs.n_audio()); - newrow[plugin_columns.audio_ins] = buf; - snprintf (buf, sizeof(buf), "%d", (*i)->n_inputs.n_midi()); - newrow[plugin_columns.midi_ins] = buf; - - snprintf (buf, sizeof(buf), "%d", (*i)->n_outputs.n_audio()); - newrow[plugin_columns.audio_outs] = buf; - snprintf (buf, sizeof(buf), "%d", (*i)->n_outputs.n_midi()); - newrow[plugin_columns.midi_outs] = buf; + if ((*i)->reconfigurable_io ()) { + newrow[plugin_columns.audio_ins] = _("variable"); + newrow[plugin_columns.midi_ins] = _("variable"); + newrow[plugin_columns.audio_outs] = _("variable"); + newrow[plugin_columns.midi_outs] = _("variable"); + } else { + snprintf (buf, sizeof(buf), "%d", (*i)->n_inputs.n_audio()); + newrow[plugin_columns.audio_ins] = buf; + snprintf (buf, sizeof(buf), "%d", (*i)->n_inputs.n_midi()); + newrow[plugin_columns.midi_ins] = buf; + + snprintf (buf, sizeof(buf), "%d", (*i)->n_outputs.n_audio()); + newrow[plugin_columns.audio_outs] = buf; + snprintf (buf, sizeof(buf), "%d", (*i)->n_outputs.n_midi()); + newrow[plugin_columns.midi_outs] = buf; + } newrow[plugin_columns.plugin] = *i; } @@ -536,13 +537,13 @@ struct PluginMenuCompareByCreator { bool operator() (PluginInfoPtr a, PluginInfoPtr b) const { int cmp; - cmp = strcasecmp (a->creator.c_str(), b->creator.c_str()); + cmp = g_strcasecmp (a->creator.c_str(), b->creator.c_str()); if (cmp < 0) { return true; } else if (cmp == 0) { /* same creator ... compare names */ - if (strcasecmp (a->name.c_str(), b->name.c_str()) < 0) { + if (g_strcasecmp (a->name.c_str(), b->name.c_str()) < 0) { return true; } } @@ -554,7 +555,7 @@ struct PluginMenuCompareByName { bool operator() (PluginInfoPtr a, PluginInfoPtr b) const { int cmp; - cmp = strcasecmp (a->name.c_str(), b->name.c_str()); + cmp = g_strcasecmp (a->name.c_str(), b->name.c_str()); if (cmp < 0) { return true; @@ -572,13 +573,13 @@ struct PluginMenuCompareByCategory { bool operator() (PluginInfoPtr a, PluginInfoPtr b) const { int cmp; - cmp = strcasecmp (a->category.c_str(), b->category.c_str()); + cmp = g_strcasecmp (a->category.c_str(), b->category.c_str()); if (cmp < 0) { return true; } else if (cmp == 0) { /* same category ... compare names */ - if (strcasecmp (a->name.c_str(), b->name.c_str()) < 0) { + if (g_strcasecmp (a->name.c_str(), b->name.c_str()) < 0) { return true; } } @@ -817,6 +818,8 @@ PluginSelector::hidden_changed (const std::string& path) manager.set_status (pi->type, pi->unique_id, status); manager.save_statuses (); + + build_plugin_menu (); } in_row_change = false; }