Change PBD::find_files_matching_regex and PBD::find_files_matching_filter to take...
authorTim Mayberry <mojofunk@gmail.com>
Thu, 19 Jun 2014 08:26:17 +0000 (18:26 +1000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 25 Jun 2014 16:40:10 +0000 (12:40 -0400)
libs/ardour/lv2_plugin.cc
libs/ardour/panner_manager.cc
libs/ardour/template_utils.cc
libs/pbd/file_utils.cc
libs/pbd/pbd/file_utils.h
libs/surfaces/generic_midi/generic_midi_control_protocol.cc
libs/surfaces/mackie/device_info.cc
libs/surfaces/mackie/device_profile.cc

index 6ae99302da17355c94a2470b0cff8e8151b81dae..a33b01cbd939a43a55284b51f21f4e719cc1e015 100644 (file)
@@ -2016,7 +2016,7 @@ LV2World::load_bundled_plugins()
                cout << "Scanning folders for bundled LV2s: " << ARDOUR::lv2_bundled_search_path().to_string() << endl;
 
                vector<string> plugin_objects;
-               find_files_matching_filter (plugin_objects, ARDOUR::lv2_bundled_search_path().to_string(), lv2_filter, 0, true, true);
+               find_files_matching_filter (plugin_objects, ARDOUR::lv2_bundled_search_path(), lv2_filter, 0, true, true);
                for ( vector<string>::iterator x = plugin_objects.begin(); x != plugin_objects.end (); ++x) {
 #ifdef PLATFORM_WINDOWS
                        string uri = "file:///" + *x + "/";
index 3be16e4d483f890f9306d8d55e070d419fcb691b..906e979862a45e1b3a30b5edf0c4f6a11d4c4dc1 100644 (file)
@@ -91,11 +91,10 @@ void
 PannerManager::discover_panners ()
 {
        std::vector<std::string> panner_modules;
-       std::string search_path = panner_search_path().to_string();
 
-       DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1\n"), search_path));
+       DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1\n"), panner_search_path().to_string()));
 
-       find_files_matching_filter (panner_modules, search_path, panner_filter, 0, false, true, true);
+       find_files_matching_filter (panner_modules, panner_search_path(), panner_filter, 0, false, true, true);
 
        for (vector<std::string>::iterator i = panner_modules.begin(); i != panner_modules.end(); ++i) {
                panner_discover (*i);
index 64f6ce75ab231a9a12f0e2768d5c371b349a5121..f5a4dc78a6bcd1384666f774408da68e3d192a6b 100644 (file)
@@ -82,16 +82,15 @@ void
 find_session_templates (vector<TemplateInfo>& template_names)
 {
        vector<string> templates;
-       Searchpath spath (template_search_path());
 
-       find_files_matching_filter (templates, spath.to_string(), template_filter, 0, true, true);
+       find_files_matching_filter (templates, template_search_path(), template_filter, 0, true, true);
 
        if (templates.empty()) {
-               cerr << "Found nothing along " << spath.to_string() << endl;
+               cerr << "Found nothing along " << template_search_path().to_string() << endl;
                return;
        }
 
-       cerr << "Found " << templates.size() << " along " << spath.to_string() << endl;
+       cerr << "Found " << templates.size() << " along " << template_search_path().to_string() << endl;
 
        for (vector<string>::iterator i = templates.begin(); i != templates.end(); ++i) {
                string file = session_template_dir_to_file (*i);
@@ -115,9 +114,8 @@ void
 find_route_templates (vector<TemplateInfo>& template_names)
 {
        vector<string> templates;
-       Searchpath spath (route_template_search_path());
 
-       find_files_matching_filter (templates, spath.to_string(), route_template_filter, 0, false, true);
+       find_files_matching_filter (templates, route_template_search_path(), route_template_filter, 0, false, true);
 
        if (templates.empty()) {
                return;
index c159e2718a40b0aacf4e6d7dff5bc357a9b954ca..26900be289027f519bec6a2e4094535b6b2c7a33 100644 (file)
@@ -203,7 +203,7 @@ regexp_filter (const string& str, void *arg)
 
 void
 find_files_matching_regex (vector<string>& result,
-                           const std::string& dirpath,
+                           const Searchpath& paths,
                            const std::string& regexp)
 {
        int err;
@@ -224,7 +224,7 @@ find_files_matching_regex (vector<string>& result,
                return;
        }
 
-       find_files_matching_filter (result, dirpath,
+       find_files_matching_filter (result, paths,
                                    regexp_filter, &compiled_pattern,
                                    true, true, false);
 
@@ -233,7 +233,7 @@ find_files_matching_regex (vector<string>& result,
 
 void
 find_files_matching_filter (vector<string>& result,
-                            const string &dirpath,
+                            const Searchpath& paths,
                             bool (*filter)(const string &, void *),
                             void *arg,
                             bool match_fullpath, bool return_fullpath,
@@ -241,10 +241,7 @@ find_files_matching_filter (vector<string>& result,
 {
        vector<string> all_files;
 
-       Searchpath spath(dirpath);
-
-       for (vector<string>::iterator i = spath.begin(); i != spath.end(); ++i)
-       {
+       for (vector<string>::const_iterator i = paths.begin(); i != paths.end(); ++i) {
                string expanded_path = path_expand (*i);
                get_directory_contents (expanded_path, all_files, true, recurse);
        }
index b23ee1ebc808fa6534e3c8c82ab511848ee29697..4e44e2fe32acd3a6d0ce8c9ebf6dd4dde8b3c100 100644 (file)
@@ -114,15 +114,15 @@ find_file_in_search_path (const Searchpath& search_path,
  */
 LIBPBD_API void
 find_files_matching_regex (std::vector<std::string>& results,
-                           const std::string& dirpath,
+                           const Searchpath& dirpath,
                            const std::string& regexp);
 
 /**
- * @return files in dirpath that match a supplied filter(functor)
+ * @return files in a Searchpath that match a supplied filter(functor)
  */
 LIBPBD_API void
 find_files_matching_filter (std::vector<std::string>&,
-                            const std::string &dirpath,
+                            const Searchpath& paths,
                             bool (*filter)(const std::string &, void *),
                             void *arg,
                             bool match_fullpath,
index 86b7f6e463a88f4dfe0db5616f2f9c2088421839..702d361965d6f0d385d1857daf1b63cf2e7edf57 100644 (file)
@@ -140,7 +140,7 @@ GenericMidiControlProtocol::reload_maps ()
        Searchpath spath (system_midi_map_search_path());
        spath += user_midi_map_directory ();
 
-       find_files_matching_filter (midi_maps, spath.to_string(), midi_map_filter, 0, false, true);
+       find_files_matching_filter (midi_maps, spath, midi_map_filter, 0, false, true);
 
        if (midi_maps.empty()) {
                cerr << "No MIDI maps found using " << spath.to_string() << endl;
index c0675c837745965b25b1e9210dc99d06303d91a3..2a953fd44c2edcd5ebf4d2a1c5c013b6a7c8437a 100644 (file)
@@ -474,7 +474,7 @@ DeviceInfo::reload_device_info ()
        vector<string> devinfos;
        Searchpath spath (devinfo_search_path());
 
-       find_files_matching_filter (devinfos, spath.to_string(), devinfo_filter, 0, false, true);
+       find_files_matching_filter (devinfos, spath, devinfo_filter, 0, false, true);
        device_info.clear ();
 
        if (devinfos.empty()) {
index 269ff36acac5a839c2fe77647497fa058b2cba70..320dd49297b338a946cba6a4fd64ebdd245e7487 100644 (file)
@@ -93,7 +93,7 @@ DeviceProfile::reload_device_profiles ()
        vector<string> devprofiles;
        Searchpath spath (devprofile_search_path());
 
-       find_files_matching_filter (devprofiles, spath.to_string(), devprofile_filter, 0, false, true);
+       find_files_matching_filter (devprofiles, spath, devprofile_filter, 0, false, true);
        device_profiles.clear ();
 
        if (devprofiles.empty()) {