#include "ardour/plugin_manager.h"
#include "ardour/plugin.h"
-#include "ardour/configuration.h"
-#include "ardour/session.h"
+#include "ardour/utils.h"
#include "ardour_ui.h"
#include "plugin_selector.h"
, manager (mgr)
{
- set_position (Gtk::WIN_POS_MOUSE);
set_name ("PluginSelectorWindow");
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
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);
//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();
}
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
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;
}
bool operator() (PluginInfoPtr a, PluginInfoPtr b) const {
int cmp;
- cmp = strcasecmp (a->creator.c_str(), b->creator.c_str());
+ cmp = cmp_nocase_utf8 (a->creator, b->creator);
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 (cmp_nocase_utf8 (a->name, b->name) < 0) {
return true;
}
}
bool operator() (PluginInfoPtr a, PluginInfoPtr b) const {
int cmp;
- cmp = strcasecmp (a->name.c_str(), b->name.c_str());
+ cmp = cmp_nocase_utf8 (a->name, b->name);
if (cmp < 0) {
return true;
bool operator() (PluginInfoPtr a, PluginInfoPtr b) const {
int cmp;
- cmp = strcasecmp (a->category.c_str(), b->category.c_str());
+ cmp = cmp_nocase_utf8 (a->category, b->category);
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 (cmp_nocase_utf8 (a->name, b->name) < 0) {
return true;
}
}
manager.set_status (pi->type, pi->unique_id, status);
manager.save_statuses ();
+
+ build_plugin_menu ();
}
in_row_change = false;
}