X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fmackie%2Fdevice_profile.cc;h=2b9cbd5edb2d462a933fd5d2d61cfabdd7d5db39;hb=aefa63aaa6080da53381fd3f03d3afab2cfeed45;hp=ddbb4782db779d5168a2744ad22a56683c768b93;hpb=19bb2b33a89a1291451f0740739a36daebe00bae;p=ardour.git diff --git a/libs/surfaces/mackie/device_profile.cc b/libs/surfaces/mackie/device_profile.cc index ddbb4782db..2b9cbd5edb 100644 --- a/libs/surfaces/mackie/device_profile.cc +++ b/libs/surfaces/mackie/device_profile.cc @@ -24,7 +24,8 @@ #include "pbd/xml++.h" #include "pbd/error.h" -#include "pbd/pathscanner.h" +#include "pbd/file_utils.h" +#include "pbd/stl_delete.h" #include "pbd/replace_all.h" #include "ardour/filesystem_paths.h" @@ -34,9 +35,11 @@ #include "i18n.h" -using namespace Mackie; using namespace PBD; using namespace ARDOUR; +using namespace ArdourSurface; +using namespace Mackie; + using std::string; using std::vector; @@ -87,27 +90,21 @@ devprofile_filter (const string &str, void* /*arg*/) void DeviceProfile::reload_device_profiles () { - DeviceProfile dp; vector s; - vector *devprofiles; - PathScanner scanner; + vector devprofiles; Searchpath spath (devprofile_search_path()); - devprofiles = scanner (spath.to_string(), devprofile_filter, 0, false, true); + find_files_matching_filter (devprofiles, spath, devprofile_filter, 0, false, true); device_profiles.clear (); - if (!devprofiles) { - error << "No MCP device info files found using " << spath.to_string() << endmsg; - return; - } - - if (devprofiles->empty()) { + if (devprofiles.empty()) { error << "No MCP device info files found using " << spath.to_string() << endmsg; return; } - for (vector::iterator i = devprofiles->begin(); i != devprofiles->end(); ++i) { - string fullpath = *(*i); + for (vector::iterator i = devprofiles.begin(); i != devprofiles.end(); ++i) { + string fullpath = *i; + DeviceProfile dp; // has to be initial every loop or info from last added. XMLTree tree; @@ -125,8 +122,6 @@ DeviceProfile::reload_device_profiles () device_profiles[dp.name()] = dp; } } - - delete devprofiles; } int @@ -140,7 +135,7 @@ DeviceProfile::set_state (const XMLNode& node, int /* version */) } /* name is mandatory */ - + if ((child = node.child ("Name")) == 0 || (prop = child->property ("value")) == 0) { return -1; } else { @@ -162,7 +157,7 @@ DeviceProfile::set_state (const XMLNode& node, int /* version */) int id = Button::name_to_id (prop->value()); if (id < 0) { - error << string_compose ("Unknow button ID \"%1\"", prop->value()) << endmsg; + error << string_compose ("Unknown button ID \"%1\"", prop->value()) << endmsg; continue; } @@ -344,7 +339,7 @@ DeviceProfile::save () } fullpath = Glib::build_filename (fullpath, legalize_for_path (_name) + ".profile"); - + XMLTree tree; tree.set_root (&get_state());