invalidate AU cache on re-scan
This commit is contained in:
parent
90babfaca3
commit
00f48c3d63
@ -258,6 +258,7 @@ class LIBARDOUR_API AUPluginInfo : public PluginInfo {
|
||||
|
||||
bool reconfigurable_io() const { return true; }
|
||||
|
||||
static void clear_cache ();
|
||||
static PluginInfoList* discover (bool scan_only);
|
||||
static bool au_get_crashlog (std::string &msg);
|
||||
static std::string stringify_descriptor (const CAComponentDescription&);
|
||||
|
@ -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 ();
|
||||
@ -3072,6 +3074,17 @@ AUPluginInfo::cached_io_configuration (const std::string& unique_id,
|
||||
return 0;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
@ -437,11 +437,7 @@ void
|
||||
PluginManager::clear_au_cache ()
|
||||
{
|
||||
#ifdef AUDIOUNIT_SUPPORT
|
||||
// AUPluginInfo::au_cache_path ()
|
||||
string fn = Glib::build_filename (ARDOUR::user_cache_directory(), "au_cache");
|
||||
if (Glib::file_test (fn, Glib::FILE_TEST_EXISTS)) {
|
||||
::g_unlink(fn.c_str());
|
||||
}
|
||||
AUPluginInfo::clear_cache ();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user