diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2018-05-08 13:00:27 -0500 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2018-05-08 13:26:08 -0500 |
commit | 7a524285385d4581ad3f1e085629379e32f82fda (patch) | |
tree | 9397a261d140ab583a1bbd10a3eb98e41702ad9f /libs | |
parent | a156f00617aa557c5ae40055c97d43469ef7bd6c (diff) |
Plugin Order: remove from instant.xml and save to: plugin_metadata/plugin_order
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/plugin_manager.h | 3 | ||||
-rw-r--r-- | libs/ardour/plugin_manager.cc | 37 |
2 files changed, 40 insertions, 0 deletions
diff --git a/libs/ardour/ardour/plugin_manager.h b/libs/ardour/ardour/plugin_manager.h index a66e2d0674..7b90b045c3 100644 --- a/libs/ardour/ardour/plugin_manager.h +++ b/libs/ardour/ardour/plugin_manager.h @@ -85,6 +85,9 @@ public: void load_tags (); void save_tags (); + bool load_plugin_order_file (XMLNode &n) const; //returns TRUE if the passed-in node has valid info + void save_plugin_order_file (XMLNode &elem) const; + enum TagType { FromPlug, //tag info is being set from plugin metadata FromFactoryFile, // ... from the factory metadata file diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc index 233f986a7b..d5d98cb54f 100644 --- a/libs/ardour/plugin_manager.cc +++ b/libs/ardour/plugin_manager.cc @@ -1537,6 +1537,43 @@ PluginManager::user_plugin_metadata_dir () const return dir; } +bool +PluginManager::load_plugin_order_file (XMLNode &n) const +{ + std::string path = Glib::build_filename (user_plugin_metadata_dir(), "plugin_order"); + + info << string_compose (_("Loading plugin order file %1"), path) << endmsg; + if (!Glib::file_test (path, Glib::FILE_TEST_EXISTS)) { + return false; + } + + XMLTree tree; + if (tree.read (path)) { + n = *(tree.root()); + return true; + } else { + error << string_compose (_("Cannot parse Plugin Order info from %1"), path) << endmsg; + return false; + } +} + + +void +PluginManager::save_plugin_order_file (XMLNode &elem) const +{ + std::string path = Glib::build_filename (user_plugin_metadata_dir(), "plugin_order"); + + info << string_compose (_("Saving plugin order file %1"), path) << endmsg; + + XMLTree tree; + tree.set_root (&elem); + if (!tree.write (path)) { + error << string_compose (_("Could not save Plugin Order info to %1"), path) << endmsg; + } + tree.set_root (0); //note: must disconnect the elem from XMLTree, or it will try to delete memory it didn't allocate +} + + void PluginManager::save_tags () { |