Prepare plugin-meta-data config-dir and files
authorRobin Gareus <robin@gareus.org>
Mon, 29 Jan 2018 21:29:52 +0000 (22:29 +0100)
committerRobin Gareus <robin@gareus.org>
Tue, 30 Jan 2018 00:33:45 +0000 (01:33 +0100)
libs/ardour/ardour/directory_names.h
libs/ardour/ardour/plugin_manager.h
libs/ardour/ardour/search_paths.h
libs/ardour/directory_names.cc
libs/ardour/globals.cc
libs/ardour/plugin_manager.cc
libs/ardour/search_paths.cc
tools/linux_packaging/build
tools/osx_packaging/osx_build

index 7c507d1086d1122f1c83bcc5ce69f71189037a83..a671ee0b2e9ad4cac6d9e7216d5f1c3e16ff2731 100644 (file)
@@ -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;
index c20c49fce16f90f350029f6d02c8ca7cbbcff76d..70b49d3eac72a73bf89cba2f7f7994efcdc79663 100644 (file)
@@ -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);
index f280e5dd3f6d73c8c2d4075b9cc89b1ab2f5cbca..f76f997800e8257095718479eccc18318f721fb6 100644 (file)
@@ -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.
index 5d138505fb107fd36f9e8349e0ff2b03ad36d708..574929f3a15387092d6a92a5e71017e387f5d54e 100644 (file)
@@ -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");
index c8cf19bb4330c6aec7333a197c87da3d767dd0b5..c205d6ec5817c422c72cf9a13b7ead97c37c1ff7 100644 (file)
@@ -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);
 
index 378d260176d925de0c7bcb8037e7ae47f44af90f..d04a1bf5a34dad54bd0bf594f1bea14d47fc0960 100644 (file)
@@ -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 ()
 {
index 96df905eda4315eb2fe1ee2d271f26b905bfded5..cc488b8723034891351fad42a58082365f01fa81 100644 (file)
@@ -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 ()
 {
index 59294a26dec8eb9378110be0bda4466205713d8a..60694d0c7001b88661ab0735003da65ac50061e4 100755 (executable)
@@ -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
index 6293d0d3311c1c4827d3af8fea6010e050fb04ca..86a0c9e246336dead9a64184fc5588ddca97da6a 100755 (executable)
@@ -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