summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-01-29 22:29:52 +0100
committerRobin Gareus <robin@gareus.org>2018-01-30 01:33:45 +0100
commit4d173d604896c80c99f7e4cdaa3908b55b0fdb81 (patch)
treed9a5c7975ca200d611d55809fc2167e84927eee4 /libs/ardour
parent07725134993ac9cf5f62e23cd44a91913a1a073a (diff)
Prepare plugin-meta-data config-dir and files
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/directory_names.h1
-rw-r--r--libs/ardour/ardour/plugin_manager.h1
-rw-r--r--libs/ardour/ardour/search_paths.h6
-rw-r--r--libs/ardour/directory_names.cc1
-rw-r--r--libs/ardour/globals.cc13
-rw-r--r--libs/ardour/plugin_manager.cc9
-rw-r--r--libs/ardour/search_paths.cc8
7 files changed, 37 insertions, 2 deletions
diff --git a/libs/ardour/ardour/directory_names.h b/libs/ardour/ardour/directory_names.h
index 7c507d1086..a671ee0b2e 100644
--- a/libs/ardour/ardour/directory_names.h
+++ b/libs/ardour/ardour/directory_names.h
@@ -36,6 +36,7 @@ namespace ARDOUR {
LIBARDOUR_API extern const char* const peak_dir_name;
LIBARDOUR_API extern const char* const export_dir_name;
LIBARDOUR_API extern const char* const export_formats_dir_name;
+ LIBARDOUR_API extern const char* const plugin_metadata_dir_name;
LIBARDOUR_API extern const char* const templates_dir_name;
LIBARDOUR_API extern const char* const route_templates_dir_name;
LIBARDOUR_API extern const char* const surfaces_dir_name;
diff --git a/libs/ardour/ardour/plugin_manager.h b/libs/ardour/ardour/plugin_manager.h
index c20c49fce1..70b49d3eac 100644
--- a/libs/ardour/ardour/plugin_manager.h
+++ b/libs/ardour/ardour/plugin_manager.h
@@ -73,6 +73,7 @@ class LIBARDOUR_API PluginManager : public boost::noncopyable {
Hidden
};
+ std::string user_plugin_metadata_dir () const;
void load_statuses ();
void save_statuses ();
void set_status (ARDOUR::PluginType type, std::string unique_id, PluginStatusType status);
diff --git a/libs/ardour/ardour/search_paths.h b/libs/ardour/ardour/search_paths.h
index f280e5dd3f..f76f997800 100644
--- a/libs/ardour/ardour/search_paths.h
+++ b/libs/ardour/ardour/search_paths.h
@@ -107,6 +107,12 @@ namespace ARDOUR {
/**
* return a Searchpath containing directories in which to look for
+ * plugin metadata ( tags and favorite/hidden status ).
+ */
+ LIBARDOUR_API PBD::Searchpath plugin_metadata_search_path ();
+
+ /**
+ * return a Searchpath containing directories in which to look for
* route templates.
*/
LIBARDOUR_API PBD::Searchpath route_template_search_path ();
diff --git a/libs/ardour/directory_names.cc b/libs/ardour/directory_names.cc
index 5d138505fb..574929f3a1 100644
--- a/libs/ardour/directory_names.cc
+++ b/libs/ardour/directory_names.cc
@@ -34,6 +34,7 @@ const char* const interchange_dir_name = X_("interchange");
const char* const export_dir_name = X_("export");
const char* const export_formats_dir_name = X_("export");
const char* const templates_dir_name = X_("templates");
+const char* const plugin_metadata_dir_name = X_("plugin_metadata");
const char* const route_templates_dir_name = X_("route_templates");
const char* const surfaces_dir_name = X_("surfaces");
const char* const ladspa_dir_name = X_("ladspa");
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index c8cf19bb43..c205d6ec58 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -355,8 +355,17 @@ copy_configuration_files (string const & old_dir, string const & new_dir, int ol
/* presets */
- old_name = Glib::build_filename (old_dir, X_("plugin_statuses"));
- new_name = Glib::build_filename (new_dir, X_("plugin_statuses"));
+ old_name = Glib::build_filename (old_dir, X_("plugin_statuses")); /* until 6.0 */
+ new_name = Glib::build_filename (new_dir, plugin_metadata_dir_name, X_("plugin_statuses"));
+ copy_file (old_name, new_name); /* can fail silently */
+
+ old_name = Glib::build_filename (old_dir, plugin_metadata_dir_name, X_("plugin_statuses"));
+ copy_file (old_name, new_name);
+
+ /* plugin tags */
+
+ old_name = Glib::build_filename (old_dir, plugin_metadata_dir_name, X_("plugin_tags"));
+ new_name = Glib::build_filename (new_dir, plugin_metadata_dir_name, X_("plugin_tags"));
copy_file (old_name, new_name);
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index 378d260176..d04a1bf5a3 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -72,6 +72,7 @@
#include "pbd/whitespace.h"
#include "pbd/file_utils.h"
+#include "ardour/directory_names.h"
#include "ardour/debug.h"
#include "ardour/filesystem_paths.h"
#include "ardour/ladspa.h"
@@ -1437,6 +1438,14 @@ PluginManager::set_status (PluginType t, string id, PluginStatusType status)
statuses.insert (ps);
}
+std::string
+PluginManager::user_plugin_metadata_dir () const
+{
+ std::string dir = Glib::build_filename (user_config_directory(), plugin_metadata_dir_name);
+ g_mkdir_with_parents (dir.c_str(), 0744);
+ return dir;
+}
+
const ARDOUR::PluginInfoList&
PluginManager::windows_vst_plugin_info ()
{
diff --git a/libs/ardour/search_paths.cc b/libs/ardour/search_paths.cc
index 96df905eda..cc488b8723 100644
--- a/libs/ardour/search_paths.cc
+++ b/libs/ardour/search_paths.cc
@@ -167,6 +167,14 @@ template_search_path ()
}
Searchpath
+plugin_metadata_search_path ()
+{
+ Searchpath spath (ardour_data_search_path());
+ spath.add_subdirectory_to_paths(plugin_metadata_dir_name);
+ return spath;
+}
+
+Searchpath
route_template_search_path ()
{
Searchpath spath (ardour_data_search_path());