prepare GUI notifications for plugin scan
authorRobin Gareus <robin@gareus.org>
Mon, 24 Feb 2014 01:04:37 +0000 (02:04 +0100)
committerRobin Gareus <robin@gareus.org>
Mon, 24 Feb 2014 01:04:37 +0000 (02:04 +0100)
gtk2_ardour/ardour_ui.h
libs/ardour/ardour/ardour.h
libs/ardour/audio_unit.cc
libs/ardour/globals.cc
libs/ardour/lv2_plugin.cc
libs/ardour/plugin_manager.cc

index f2cbb0b2e0fbcc33079cf086fbb812bfd8dc6f82..99e864e7633a342fc0ecc2ef5e50f091f7632759 100644 (file)
@@ -667,6 +667,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
        void disk_overrun_handler ();
        void disk_underrun_handler ();
 
+       void cancel_plugin_scan ();
+       void plugin_scan_dialog (std::string type, std::string plugin);
+
         void session_format_mismatch (std::string, std::string);
 
        void session_dialog (std::string);
index 9b1351a3fce114bf5d0a7f0209ac5b7fe31869c1..38d8a9a6a2aa2b31129ccd993f707f1d278aeb00 100644 (file)
@@ -50,6 +50,7 @@ namespace ARDOUR {
        class AudioEngine;
 
        extern LIBARDOUR_API PBD::Signal1<void,std::string> BootMessage;
+       extern LIBARDOUR_API PBD::Signal2<void,std::string,std::string> PluginScanMessage;
        extern LIBARDOUR_API PBD::Signal0<void> GUIIdle;
 
        /**
index 1a24977399e504d8c4a1ca8522b0c7f723d49f7f..332f50546fa2a3f64c17ec9c586a7059039a96cd 100644 (file)
@@ -2278,6 +2278,7 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip
                }
 
                AUPluginInfo::get_names (temp, info->name, info->creator);
+               ARDOUR::PluginScanMessage(_("AU"), info->name);
 
                info->type = ARDOUR::AudioUnit;
                info->unique_id = stringify_descriptor (*info->descriptor);
index 5874ac3b1b25d183cea69ba2766e2497605947b8..f04ffe691dfc4df4b093834c4703377943fb8cf8 100644 (file)
@@ -125,6 +125,7 @@ mix_buffers_with_gain_t ARDOUR::mix_buffers_with_gain = 0;
 mix_buffers_no_gain_t   ARDOUR::mix_buffers_no_gain = 0;
 
 PBD::Signal1<void,std::string> ARDOUR::BootMessage;
+PBD::Signal2<void,std::string,std::string> ARDOUR::PluginScanMessage;
 PBD::Signal0<void> ARDOUR::GUIIdle;
 
 namespace ARDOUR {
index b79e06779821dcabd647122799c4fa670680b9dd..d3efaa4c61d7502883ebfde3ea2375f03af179c4 100644 (file)
@@ -2108,6 +2108,7 @@ LV2PluginInfo::discover()
 
                info->name = string(lilv_node_as_string(name));
                lilv_node_free(name);
+               ARDOUR::PluginScanMessage(_("LV2"), info->name);
 
                const LilvPluginClass* pclass = lilv_plugin_get_class(p);
                const LilvNode*        label  = lilv_plugin_class_get_label(pclass);
index 8b77bee0afed2f9d846ce058ddc8a87c8d5ff8ef..e6a0b40ae5e9d3509e39ea8b51a5d363ec9da71a 100644 (file)
@@ -177,6 +177,7 @@ void
 PluginManager::refresh ()
 {
        DEBUG_TRACE (DEBUG::PluginManager, "PluginManager::refresh\n");
+       BootMessage (_("Discovering Plugins"));
 
        ladspa_refresh ();
 #ifdef LV2_SUPPORT
@@ -199,6 +200,7 @@ PluginManager::refresh ()
 #endif
 
        PluginListChanged (); /* EMIT SIGNAL */
+       PluginScanMessage(X_("closeme"), "");
 }
 
 void
@@ -234,6 +236,7 @@ PluginManager::ladspa_refresh ()
                                            dll_extension_pattern, ladspa_modules);
 
        for (vector<std::string>::iterator i = ladspa_modules.begin(); i != ladspa_modules.end(); ++i) {
+               ARDOUR::PluginScanMessage(_("LADSPA"), *i);
                ladspa_discover (*i);
        }
 }
@@ -524,7 +527,7 @@ PluginManager::add_windows_vst_directory (string path)
        return -1;
 }
 
-static bool windows_vst_filter (const string& str, void *arg)
+static bool windows_vst_filter (const string& str, void * /*arg*/)
 {
        /* Not a dotfile, has a prefix before a period, suffix is "dll" */
 
@@ -545,6 +548,7 @@ PluginManager::windows_vst_discover_from_path (string path)
 
        if (plugin_objects) {
                for (x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
+                       ARDOUR::PluginScanMessage(_("VST"), **x);
                        windows_vst_discover (**x);
                }
 
@@ -683,6 +687,7 @@ PluginManager::lxvst_discover_from_path (string path)
 
        if (plugin_objects) {
                for (x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
+                       ARDOUR::PluginScanMessage(_("LXVST"), **x);
                        lxvst_discover (**x);
                }