move assignments out of assert() in editor_drag (thanks lincoln); change mouse mode...
[ardour.git] / gtk2_ardour / plugin_selector.cc
index 9398661d706cf16f4417a178004a627e4c3ea711..7ebe778ecb689dc2a9a670bafc8c04499aa7d645 100644 (file)
@@ -16,6 +16,9 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
 */
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
 
 #include <cstdio>
 #include <lrdf.h>
@@ -50,6 +53,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 +214,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,25 +306,15 @@ PluginSelector::refiller (const PluginInfoList& plugs, const::std::string& filte
 
                        newrow[plugin_columns.creator] = creator;
 
-                       if ((*i)->n_inputs.n_total() < 0) { // FIXME: Impossible (unsigned)
-                               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) { // FIXME: Impossible (unsigned)
-                               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;
                }
@@ -315,13 +330,17 @@ 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
 }
 
 void
+#ifdef VST_SUPPORT
 PluginSelector::vst_refiller (const std::string& filterstr)
+#else
+PluginSelector::vst_refiller (const std::string&)
+#endif
 {
 #ifdef VST_SUPPORT
        refiller (manager->vst_plugin_info(), filterstr, "VST");
@@ -329,7 +348,11 @@ PluginSelector::vst_refiller (const std::string& filterstr)
 }
 
 void
+#ifdef HAVE_AUDIOUNITS
 PluginSelector::au_refiller (const std::string& filterstr)
+#else
+PluginSelector::au_refiller (const std::string&)
+#endif 
 {
 #ifdef HAVE_AUDIOUNITS
        refiller (manager->au_plugin_info(), filterstr, "AU");
@@ -521,7 +544,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