Add session preferences dialog.
[ardour.git] / gtk2_ardour / plugin_selector.cc
index ac9e785522487b056cd9ffa4579087c76474e6d2..705146eccd048e03360a235164444498cbf91ba7 100644 (file)
@@ -50,6 +50,7 @@ using namespace std;
 static const char* _filter_mode_strings[] = {
        N_("Name contains"),
        N_("Type contains"),
+       N_("Category contains"),
        N_("Author contains"),
        N_("Library contains"),
        N_("Favorites only"),
@@ -210,14 +211,35 @@ PluginSelector::show_this_plugin (const PluginInfoPtr& info, const std::string&
                
                if (mode == _("Name contains")) {
                        compstr = info->name;
-               } else if (mode == _("Type contains")) {
+               } else if (mode == _("Category contains")) {
                        compstr = info->category;
+               } else if (mode == _("Type contains")) {
+
+                       switch (info->type) {
+                       case LADSPA:
+                               compstr = X_("LADSPA");
+                               break;
+                       case AudioUnit:
+                               compstr = X_("AudioUnit");
+                               break;
+                       case LV2:
+                               compstr = X_("LV2");
+                               break;
+                       case VST:
+                               compstr = X_("VST");
+                               break;
+                       }
+
                } else if (mode == _("Author contains")) {
                        compstr = info->creator;
                } else if (mode == _("Library contains")) {
                        compstr = info->path;
                } 
 
+               if (compstr.empty()) {
+                       return false;
+               }
+
                transform (compstr.begin(), compstr.end(), compstr.begin(), ::toupper);
 
                if (compstr.find (filterstr) != string::npos) {
@@ -281,24 +303,15 @@ PluginSelector::refiller (const PluginInfoList& plugs, const::std::string& filte
 
                        newrow[plugin_columns.creator] = creator;
 
-                       if ((*i)->n_inputs.n_total() < 0) {
-                               newrow[plugin_columns.audio_ins] = "various";
-                               newrow[plugin_columns.midi_ins] = "various";
-                       } 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;
-                       }
-                       if ((*i)->n_outputs.n_total() < 0) {
-                               newrow[plugin_columns.audio_outs] = "various";
-                               newrow[plugin_columns.midi_outs] = "various";
-                       } else {
-                               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;
-                       }
+                       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;
                }
@@ -314,7 +327,7 @@ PluginSelector::ladspa_refiller (const std::string& filterstr)
 void
 PluginSelector::lv2_refiller (const std::string& filterstr)
 {
-#ifdef HAVE_LV2
+#ifdef HAVE_SLV2
        refiller (manager->lv2_plugin_info(), filterstr, "LV2");
 #endif
 }
@@ -520,7 +533,7 @@ PluginSelector::plugin_menu()
 #ifdef HAVE_AUDIOUNITS
        all_plugs.insert (all_plugs.end(), manager->au_plugin_info().begin(), manager->au_plugin_info().end());
 #endif
-#ifdef HAVE_LV2
+#ifdef HAVE_SLV2
        all_plugs.insert (all_plugs.end(), manager->lv2_plugin_info().begin(), manager->lv2_plugin_info().end());
 #endif