From 4d173d604896c80c99f7e4cdaa3908b55b0fdb81 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 29 Jan 2018 22:29:52 +0100 Subject: Prepare plugin-meta-data config-dir and files --- libs/ardour/ardour/directory_names.h | 1 + libs/ardour/ardour/plugin_manager.h | 1 + libs/ardour/ardour/search_paths.h | 6 ++++++ libs/ardour/directory_names.cc | 1 + libs/ardour/globals.cc | 13 +++++++++++-- libs/ardour/plugin_manager.cc | 9 +++++++++ libs/ardour/search_paths.cc | 8 ++++++++ tools/linux_packaging/build | 4 ++++ tools/osx_packaging/osx_build | 4 ++++ 9 files changed, 45 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 @@ -105,6 +105,12 @@ namespace ARDOUR { */ LIBARDOUR_API PBD::Searchpath panner_search_path (); + /** + * 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. 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 @@ -166,6 +166,14 @@ template_search_path () return spath; } +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 () { diff --git a/tools/linux_packaging/build b/tools/linux_packaging/build index 59294a26de..60694d0c70 100755 --- a/tools/linux_packaging/build +++ b/tools/linux_packaging/build @@ -186,6 +186,7 @@ Backends=$APPLIB/backends Themes=$Shared/themes Templates=$Shared/templates +PluginMetadata=$Shared/plugin_metadata ExportFormats=$Shared/export Locale=$Shared/locale MidiMaps=$Shared/midi_maps @@ -400,6 +401,9 @@ done #Session templates cp -av $BUILD_ROOT/../templates $Templates +# PluginMetadata +cp -av $BUILD_ROOT/../plugin_metadata $PluginMetadata + # ExportFormats # got to be careful with names here for x in $BUILD_ROOT/../export/*.preset $BUILD_ROOT/../export/*.format ; do diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build index 6293d0d331..86a0c9e246 100755 --- a/tools/osx_packaging/osx_build +++ b/tools/osx_packaging/osx_build @@ -139,6 +139,7 @@ Surfaces=$Frameworks/surfaces Panners=$Frameworks/panners Backends=$Frameworks/backends MidiMaps=$Shared/midi_maps +PluginMetadata=$Shared/plugin_metadata ExportFormats=$Shared/export Templates=$Shared/templates PatchFiles=$Shared/patchfiles @@ -347,6 +348,9 @@ done #Session templates cp -av $BUILD_ROOT/../templates $Templates +# PluginMetadata +cp -av $BUILD_ROOT/../plugin_metadata $PluginMetadata + # MidiMaps # got to be careful with names here for x in $BUILD_ROOT/../midi_maps/*.map ; do -- cgit v1.2.3