fix VST shell-scanner (double free), support for VST2.4
[ardour.git] / libs / ardour / globals.cc
index 0cda9ebdf404fe81773763aad7e8f8610cbeaf87..5874ac3b1b25d183cea69ba2766e2497605947b8 100644 (file)
@@ -366,9 +366,15 @@ ARDOUR::init_post_engine ()
        ARDOUR::PluginManager::instance().refresh ();
 }
 
-int
-ARDOUR::cleanup ()
+void
+ARDOUR::cleanup () 
 {
+       if (!libardour_initialized) {
+               return;
+       }
+
+       ARDOUR::AudioEngine::destroy ();
+
        delete Library;
 #ifdef HAVE_LRDF
        lrdf_cleanup ();
@@ -382,7 +388,8 @@ ARDOUR::cleanup ()
        vstfx_exit();
 #endif
        PBD::cleanup ();
-       return 0;
+
+       return;
 }
 
 void
@@ -532,8 +539,8 @@ ARDOUR::set_translations_enabled (bool yn)
                c = '0';
        }
        
-       ::write (fd, &c, 1);
-       ::close (fd);
+       (void) ::write (fd, &c, 1);
+       (void) ::close (fd);
 
        return true;
 }
@@ -544,7 +551,11 @@ ARDOUR::get_available_sync_options ()
 {
        vector<SyncSource> ret;
 
-       ret.push_back (JACK);
+       boost::shared_ptr<AudioBackend> backend = AudioEngine::instance()->current_backend();
+       if (backend && backend->name() == "JACK") {
+               ret.push_back (Engine);
+       }
+
        ret.push_back (MTC);
        ret.push_back (MIDIClock);
        ret.push_back (LTC);