diff options
Diffstat (limited to 'libs/ardour/audio_unit.cc')
-rw-r--r-- | libs/ardour/audio_unit.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 1862844cd9..e28d892053 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -2698,6 +2698,8 @@ AUPluginInfo::discover (bool scan_only) if (!Glib::file_test (au_cache_path(), Glib::FILE_TEST_EXISTS)) { ARDOUR::BootMessage (_("Discovering AudioUnit plugins (could take some time ...)")); + // flush RAM cache -- after clear_cache() + cached_info.clear(); } // create crash log file au_start_crashlog (); @@ -3073,6 +3075,17 @@ AUPluginInfo::cached_io_configuration (const std::string& unique_id, } void +AUPluginInfo::clear_cache () +{ + const string& fn = au_cache_path(); + if (Glib::file_test (fn, Glib::FILE_TEST_EXISTS)) { + ::g_unlink(fn.c_str()); + } + // keep cached_info in RAM until restart or re-scan + cached_info.clear(); +} + +void AUPluginInfo::add_cached_info (const std::string& id, AUPluginCachedInfo& cinfo) { cached_info[id] = cinfo; |