Use std::string instead of PBD::sys::path in pbd/search_path.h, pbd/file_utils.h...
authorTim Mayberry <mojofunk@gmail.com>
Sat, 23 Jun 2012 05:06:54 +0000 (05:06 +0000)
committerTim Mayberry <mojofunk@gmail.com>
Sat, 23 Jun 2012 05:06:54 +0000 (05:06 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12829 d708f5d6-7413-0410-9779-e7cbd77b26cf

54 files changed:
gtk2_ardour/about.cc
gtk2_ardour/actions.cc
gtk2_ardour/ardour_ui.cc
gtk2_ardour/editor_actions.cc
gtk2_ardour/editor_export_audio.cc
gtk2_ardour/editor_snapshots.cc
gtk2_ardour/keyboard.cc
gtk2_ardour/main.cc
gtk2_ardour/mixer_actor.cc
gtk2_ardour/nag.cc
gtk2_ardour/sfdb_ui.cc
gtk2_ardour/splash.cc
gtk2_ardour/startup.cc
gtk2_ardour/step_entry.cc
gtk2_ardour/theme_manager.cc
gtk2_ardour/ui_config.cc
gtk2_ardour/utils.cc
libs/ardour/ardour/export_profile_manager.h
libs/ardour/ardour/filesystem_paths.h
libs/ardour/ardour/session_directory.h
libs/ardour/ardour/session_state_utils.h
libs/ardour/audio_library.cc
libs/ardour/audio_playlist_source.cc
libs/ardour/audio_region_importer.cc
libs/ardour/callback.cc
libs/ardour/control_protocol_manager.cc
libs/ardour/control_protocol_search_path.cc
libs/ardour/export_filename.cc
libs/ardour/export_formats_search_path.cc
libs/ardour/export_profile_manager.cc
libs/ardour/filesystem_paths.cc
libs/ardour/globals.cc
libs/ardour/import.cc
libs/ardour/midi_patch_manager.cc
libs/ardour/midi_source.cc
libs/ardour/panner_manager.cc
libs/ardour/panner_search_path.cc
libs/ardour/plugin_manager.cc
libs/ardour/rc_configuration.cc
libs/ardour/recent_sessions.cc
libs/ardour/session.cc
libs/ardour/session_directory.cc
libs/ardour/session_state.cc
libs/ardour/session_state_utils.cc
libs/ardour/session_utils.cc
libs/ardour/vst_plugin.cc
libs/pbd/file_utils.cc
libs/pbd/pbd/file_utils.h
libs/pbd/pbd/search_path.h
libs/pbd/search_path.cc
libs/surfaces/generic_midi/generic_midi_control_protocol.cc
libs/surfaces/mackie/device_info.cc
libs/surfaces/mackie/device_profile.cc
libs/surfaces/osc/osc.cc

index 571f602e714fc94fe5bcfa45f9e239a60f4e38a3..ab791aa555f03cdcf6d4a2a49af48ab2892276df 100644 (file)
@@ -553,15 +553,14 @@ About::About ()
 {
        // set_type_hint(Gdk::WINDOW_TYPE_HINT_SPLASHSCREEN);
 
-       string path;
        string t;
 
-       sys::path splash_file;
+       std::string splash_file;
 
        SearchPath spath(ardour_data_search_path());
 
        if (find_file_in_search_path (spath, "splash.png", splash_file)) {
-               set_logo (Gdk::Pixbuf::create_from_file (splash_file.to_string()));
+               set_logo (Gdk::Pixbuf::create_from_file (splash_file));
        } else {
                error << "Could not find splash file" << endmsg;
        }
index 5391d58f42c22663c4586f98e03780fc7f64ac9e..343dd20308476424f3af5269d7d35f15dcd2a814 100644 (file)
@@ -67,7 +67,7 @@ vector<RefPtr<Gtk::Action> > ActionManager::edit_point_in_region_sensitive_actio
 void
 ActionManager::init ()
 {
-       sys::path ui_file;
+       std::string ui_file;
 
        ui_manager = UIManager::create ();
 
@@ -76,8 +76,8 @@ ActionManager::init ()
        bool loaded = false;
 
        try {
-               ui_manager->add_ui_from_file (ui_file.to_string());
-               info << string_compose (_("Loading menus from %1"), ui_file.to_string()) << endmsg;
+               ui_manager->add_ui_from_file (ui_file);
+               info << string_compose (_("Loading menus from %1"), ui_file) << endmsg;
                loaded = true;
        } catch (Glib::MarkupError& err) {
                error << string_compose (_("badly formatted UI definition file: %1"), err.what()) << endmsg;
index b3976f581d3e1397adbc2c8e23fdb8a4fba47dfb..cc5837d7adb75da29d2812bc97de1334c6266542 100644 (file)
@@ -1134,11 +1134,11 @@ ARDOUR_UI::redisplay_recent_sessions ()
        for (vector<sys::path>::const_iterator i = session_directories.begin();
                        i != session_directories.end(); ++i)
        {
-               std::vector<sys::path> state_file_paths;
+               std::vector<std::string> state_file_paths;
 
                // now get available states for this session
 
-               get_state_files_in_directory (*i, state_file_paths);
+               get_state_files_in_directory (i->to_string(), state_file_paths);
 
                vector<string*>* states;
                vector<const gchar*> item;
@@ -2074,7 +2074,7 @@ ARDOUR_UI::snapshot_session (bool switch_to_it)
                        }
                }
 
-               vector<sys::path> p;
+               vector<std::string> p;
                get_state_files_in_directory (_session->session_directory().root_path(), p);
                vector<string> n = get_file_names_no_extension (p);
                if (find (n.begin(), n.end(), snapname) != n.end()) {
@@ -2913,7 +2913,7 @@ require some unused files to continue to exist."));
 
        dimage->set_alignment(ALIGN_LEFT, ALIGN_TOP);
 
-       const string dead_directory = _session->session_directory().dead_path().to_string();
+       const string dead_directory = _session->session_directory().dead_path();
 
        /* subst:
           %1 - number of files removed
index 00ea296e61cce8544c882821c0269a3934739109..d0e1023362318da677a26cc566d2cd6efa1b1b7d 100644 (file)
@@ -641,11 +641,11 @@ Editor::load_bindings ()
        
         key_bindings.set_action_map (editor_action_map);
 
-       sys::path binding_file;
+       std::string binding_file;
 
        if (find_file_in_search_path (ardour_config_search_path(), "editor.bindings", binding_file)) {
-                key_bindings.load (binding_file.to_string());
-               info << string_compose (_("Loaded editor bindings from %1"), binding_file.to_string()) << endmsg;
+                key_bindings.load (binding_file);
+               info << string_compose (_("Loaded editor bindings from %1"), binding_file) << endmsg;
         } else {
                error << string_compose (_("Could not find editor.bindings in search path %1"), ardour_config_search_path().to_string()) << endmsg;
        }
index 509e629aeeb80be3787c038553af83e3c2240d61..94f43a0e5ec8808a63e0bdacee560cce1ac8abe1 100644 (file)
@@ -232,7 +232,7 @@ Editor::write_region (string path, boost::shared_ptr<AudioRegion> region)
        vector<boost::shared_ptr<AudioFileSource> > sources;
        uint32_t nchans;
 
-       const string sound_directory = _session->session_directory().sound_path().to_string();
+       const string sound_directory = _session->session_directory().sound_path();
 
        nchans = region->n_channels();
 
@@ -382,7 +382,7 @@ Editor::write_audio_range (AudioPlaylist& playlist, const ChanCount& count, list
        string path;
        vector<boost::shared_ptr<AudioFileSource> > sources;
 
-       const string sound_directory = _session->session_directory().sound_path().to_string();
+       const string sound_directory = _session->session_directory().sound_path();
 
        uint32_t channels = count.n_audio();
 
index 093e21952f1ca99bc68b890223a3f7b309368181..08b5acddc82c19305dfd73af474aa304941555e1 100644 (file)
@@ -173,7 +173,7 @@ EditorSnapshots::redisplay ()
                return;
        }
 
-       vector<sys::path> state_file_paths;
+       vector<std::string> state_file_paths;
 
        get_state_files_in_directory (_session->session_directory().root_path(),
                                      state_file_paths);
index 2fbd5812adec7e371152af240668236e9d5b25bc..732118f3381839cada54d9cd0e40704b27a999bc 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "pbd/error.h"
 #include "pbd/file_utils.h"
+#include "pbd/filesystem.h"
 
 #include "ardour/filesystem_paths.h"
 
@@ -124,7 +125,7 @@ ArdourKeyboard::setup_keybindings ()
                if (!Glib::path_is_absolute (keybindings_path)) {
 
                        /* not absolute - look in the usual places */
-                       sys::path keybindings_file;
+                       std::string keybindings_file;
 
                        if ( ! find_file_in_search_path (ardour_config_search_path(), keybindings_path, keybindings_file)) {
 
@@ -142,7 +143,7 @@ ArdourKeyboard::setup_keybindings ()
 
                                /* use it */
 
-                               keybindings_path = keybindings_file.to_string();
+                               keybindings_path = keybindings_file;
                                break;
 
                        }
index 407be09068cb707556ddddcd80c731e5a973d1d7..e334043a7785c709c57b941e3983ca902a5c2c88 100644 (file)
@@ -222,7 +222,7 @@ fixup_bundle_environment (int /*argc*/, char* argv[])
 
        std::string path;
        std::string dir_path = Glib::path_get_dirname (Glib::path_get_dirname (argv[0]));
-       std::string userconfigdir = user_config_directory().to_string();
+       std::string userconfigdir = user_config_directory();
 
        /* note that this function is POSIX/Linux specific, so using / as
           a dir separator in this context is just fine.
index 437da39babeab9cf6db98b30a6cdac1498c61140..9922195abe42396ce814f840fb0011f14cad2211 100644 (file)
@@ -82,11 +82,11 @@ MixerActor::load_bindings ()
        
         bindings.set_action_map (myactions);
 
-       sys::path binding_file;
+       std::string binding_file;
 
        if (find_file_in_search_path (ardour_config_search_path(), "mixer.bindings", binding_file)) {
-                bindings.load (binding_file.to_string());
-               info << string_compose (_("Loaded mixer bindings from %1"), binding_file.to_string()) << endmsg;
+                bindings.load (binding_file);
+               info << string_compose (_("Loaded mixer bindings from %1"), binding_file) << endmsg;
         } else {
                error << string_compose (_("Could not find mixer.bindings in search path %1"), ardour_config_search_path().to_string()) << endmsg;
        }
index 110a977716b4e347369811bf896f5abda088839e..5d93d132677dc5048f831c0b8b36aac6be46fb78 100644 (file)
@@ -94,7 +94,7 @@ NagScreen::maybe_nag (std::string why)
        bool really_subscribed;
        bool maybe_subscribed;
 
-       path = Glib::build_filename (user_config_directory().to_string(), ".nevernag");
+       path = Glib::build_filename (user_config_directory(), ".nevernag");
 
        if (Glib::file_test (path, Glib::FILE_TEST_EXISTS)) {
                return 0;
@@ -114,7 +114,7 @@ NagScreen::mark_never_again ()
 {
        std::string path;
 
-       path = Glib::build_filename (user_config_directory().to_string(), ".nevernag");
+       path = Glib::build_filename (user_config_directory(), ".nevernag");
 
        ofstream nagfile (path.c_str());
 }
@@ -124,7 +124,7 @@ NagScreen::mark_subscriber ()
 {
        std::string path;
 
-       path = Glib::build_filename (user_config_directory().to_string(), ".askedaboutsub");
+       path = Glib::build_filename (user_config_directory(), ".askedaboutsub");
 
        ofstream subsfile (path.c_str());
 }
@@ -134,7 +134,7 @@ NagScreen::mark_affirmed_subscriber ()
 {
        std::string path;
 
-       path = Glib::build_filename (user_config_directory().to_string(), ".isubscribe");
+       path = Glib::build_filename (user_config_directory(), ".isubscribe");
 
        ofstream subsfile (path.c_str());
 }
@@ -152,13 +152,13 @@ NagScreen::is_subscribed (bool& really)
           subscribed. we try to trust our users :)
        */
 
-       path = Glib::build_filename (user_config_directory().to_string(), ".isubscribe");
+       path = Glib::build_filename (user_config_directory(), ".isubscribe");
        if (file_test (path, FILE_TEST_EXISTS)) {
                really = true;
                return true;
        }
 
-       path = Glib::build_filename (user_config_directory().to_string(), ".askedaboutsub");
+       path = Glib::build_filename (user_config_directory(), ".askedaboutsub");
        if (file_test (path, FILE_TEST_EXISTS)) {
                /* they never said they were subscribed but they
                   did once express an interest in it.
index bff119d29d7b0306accb566fef870d4fd8eb49a4..55b6cc24071f6831f5d47ad3c0fcc87891397c49 100644 (file)
@@ -1301,8 +1301,7 @@ SoundFileOmega::check_info (const vector<string>& paths, bool& same_size, bool&
 bool
 SoundFileOmega::check_link_status (const Session* s, const vector<string>& paths)
 {
-       sys::path path = s->session_directory().sound_path() / "linktest";
-       string tmpdir = path.to_string();
+       std::string tmpdir(Glib::build_filename (s->session_directory().sound_path(), "linktest"));
        bool ret = false;
 
        if (mkdir (tmpdir.c_str(), 0744)) {
index 6cc4cd5ded271934d4f48104bf2f41a3406459c5..5643adbd6a8386990dcdbbacece91506580a3021 100644 (file)
@@ -41,14 +41,14 @@ Splash::Splash ()
 {
        assert (the_splash == 0);
        
-       sys::path splash_file;
+       std::string splash_file;
 
        if (!find_file_in_search_path (ardour_data_search_path(), "splash.png", splash_file)) {
                throw failed_constructor();
        }
 
        try {
-               pixbuf = Gdk::Pixbuf::create_from_file (splash_file.to_string());
+               pixbuf = Gdk::Pixbuf::create_from_file (splash_file);
        }
 
        catch (...) {
index b1044dfc703db62fe82e7112d6b1c2c0e636074e..26f4afafa074fc2ba50aaf1b1bbc5bf705714685 100644 (file)
@@ -933,11 +933,11 @@ ArdourStartup::redisplay_recent_sessions ()
 
        for (vector<sys::path>::const_iterator i = session_directories.begin(); i != session_directories.end(); ++i)
        {
-               std::vector<sys::path> state_file_paths;
+               std::vector<std::string> state_file_paths;
 
                // now get available states for this session
 
-               get_state_files_in_directory (*i, state_file_paths);
+               get_state_files_in_directory ((*i).to_string (), state_file_paths);
 
                vector<string*>* states;
                vector<const gchar*> item;
index 8e8bd3a3fadae62bae2a33addeaa922d89850673..91994397603136d9922c5d7f1c67c4411fbadbd0 100644 (file)
@@ -708,10 +708,10 @@ StepEntry::load_bindings ()
 
         bindings.set_action_map (myactions);
 
-       sys::path binding_file;
+       std::string binding_file;
 
        if (find_file_in_search_path (ardour_config_search_path(), "step_editing.bindings", binding_file)) {
-                bindings.load (binding_file.to_string());
+                bindings.load (binding_file);
         }
 }
 
index 71300ad07d8bf91e6fa8218037fc5d1354a6d0af..5df00faf98fc56a906597edbe585ffe119df7cb6 100644 (file)
@@ -202,7 +202,7 @@ ThemeManager::button_press_event (GdkEventButton* ev)
 void
 load_rc_file (const string& filename, bool themechange)
 {
-       sys::path rc_file_path;
+       std::string rc_file_path;
 
        if (!find_file_in_search_path (ardour_config_search_path(), filename, rc_file_path)) {
                warning << string_compose (_("Unable to find UI style file %1 in search path %2. %3 will look strange"),
@@ -211,9 +211,9 @@ load_rc_file (const string& filename, bool themechange)
                return;
        }
 
-       info << "Loading ui configuration file " << rc_file_path.to_string() << endmsg;
+       info << "Loading ui configuration file " << rc_file_path << endmsg;
 
-       Gtkmm2ext::UI::instance()->load_rcfile (rc_file_path.to_string(), themechange);
+       Gtkmm2ext::UI::instance()->load_rcfile (rc_file_path, themechange);
 }
 
 /* hmm, this is a problem. the profile doesn't
index b17316e2dbf4b68f393e053c8ead706569e6f645..ff49301419cf3181e70b66d1e59634871df3151f 100644 (file)
@@ -65,7 +65,7 @@ UIConfiguration::load_defaults ()
 {
        int found = 0;
 
-       sys::path default_ui_rc_file;
+       std::string default_ui_rc_file;
        std::string rcfile;
 
        if (getenv ("ARDOUR_SAE")) {
@@ -78,7 +78,7 @@ UIConfiguration::load_defaults ()
                XMLTree tree;
                found = 1;
 
-               string rcfile = default_ui_rc_file.to_string();
+               string rcfile = default_ui_rc_file;
 
                info << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl;
 
@@ -103,13 +103,13 @@ UIConfiguration::load_state ()
 {
        bool found = false;
 
-       sys::path default_ui_rc_file;
+       std::string default_ui_rc_file;
 
        if ( find_file_in_search_path (ardour_config_search_path(), "ardour3_ui_default.conf", default_ui_rc_file)) {
                XMLTree tree;
                found = true;
 
-               string rcfile = default_ui_rc_file.to_string();
+               string rcfile = default_ui_rc_file;
 
                info << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl;
 
@@ -124,13 +124,13 @@ UIConfiguration::load_state ()
                }
        }
 
-       sys::path user_ui_rc_file;
+       std::string user_ui_rc_file;
 
        if (find_file_in_search_path (ardour_config_search_path(), "ardour3_ui.conf", user_ui_rc_file)) {
                XMLTree tree;
                found = true;
 
-               string rcfile = user_ui_rc_file.to_string();
+               string rcfile = user_ui_rc_file;
 
                info << string_compose (_("Loading user ui configuration file %1"), rcfile) << endmsg;
 
index b8594b7b2ff882482b92fb0db97c73649dc42824..905ecd78f92067ba3c04351abb4a1c1cafa0ff8d 100644 (file)
@@ -498,14 +498,14 @@ get_xpm (std::string name)
 
                spath.add_subdirectory_to_paths("pixmaps");
 
-               sys::path data_file_path;
+               std::string data_file_path;
 
                if(!find_file_in_search_path (spath, name, data_file_path)) {
                        fatal << string_compose (_("cannot find XPM file for %1"), name) << endmsg;
                }
 
                try {
-                       xpm_map[name] =  Gdk::Pixbuf::create_from_file (data_file_path.to_string());
+                       xpm_map[name] =  Gdk::Pixbuf::create_from_file (data_file_path);
                } catch(const Glib::Error& e)   {
                        warning << "Caught Glib::Error: " << e.what() << endmsg;
                }
@@ -524,13 +524,13 @@ get_icon_path (const char* cname)
 
        spath.add_subdirectory_to_paths("icons");
 
-       sys::path data_file_path;
+       std::string data_file_path;
 
        if (!find_file_in_search_path (spath, name, data_file_path)) {
                fatal << string_compose (_("cannot find icon image for %1 using %2"), name, spath.to_string()) << endmsg;
        }
 
-       return data_file_path.to_string();
+       return data_file_path;
 }
 
 Glib::RefPtr<Gdk::Pixbuf>
index f73085e5ba69ba269f407531f4657448e03f1000..0b8f7e9422113b482be0e7e108aeeff5cad58799 100644 (file)
@@ -32,6 +32,7 @@
 #include "pbd/uuid.h"
 #include "pbd/file_utils.h"
 #include "pbd/xml++.h"
+#include "pbd/filesystem.h"
 
 #include "ardour/filesystem_paths.h"
 #include "ardour/location.h"
@@ -90,7 +91,7 @@ class ExportProfileManager
        ExportPresetPtr current_preset;
        FileMap         preset_file_map;
 
-       std::vector<PBD::sys::path> find_file (std::string const & pattern);
+       std::vector<std::string> find_file (std::string const & pattern);
 
        PBD::sys::path  export_config_dir;
        PBD::SearchPath search_path;
index 120ae25f97474246395fdaf4ee90b3773d32da3d..c8b01b79c3ae86c858dd0f97864adfae55fbdbbd 100644 (file)
@@ -20,7 +20,6 @@
 #ifndef ARDOUR_FILESYSTEM_PATHS_INCLUDED
 #define ARDOUR_FILESYSTEM_PATHS_INCLUDED
 
-#include "pbd/filesystem.h"
 #include "pbd/search_path.h"
 
 namespace ARDOUR {
@@ -29,13 +28,13 @@ namespace ARDOUR {
         * @return the path to the directory used to store user specific ardour
         * configuration files.
         */
-       PBD::sys::path user_config_directory ();
+       std::string user_config_directory ();
 
        /**
         * @return the path to the directory that contains the system wide ardour
         * modules.
         */
-       PBD::sys::path ardour_dll_directory ();
+       std::string ardour_dll_directory ();
 
        /**
         * @return the search path to be used when looking for per-system
index 1972aa40395f54eb01786c26a9a4032f0283ccb2..3f6d5d5e7c1d7a2546c68509f4fee62f6fabdedd 100644 (file)
@@ -22,8 +22,6 @@
 #include <string>
 #include <vector>
 
-#include "pbd/filesystem.h"
-
 namespace ARDOUR {
 
 class SessionDirectory
@@ -33,7 +31,7 @@ public:
        /**
         * @param session_path An absolute path to a session directory.
         */
-       SessionDirectory (const PBD::sys::path& session_path);
+       SessionDirectory (const std::string& session_path);
 
        /**
         * Change the root path of this SessionDirectory object
@@ -43,7 +41,7 @@ public:
        /**
         * @return the absolute path to the root directory of the session
         */
-       const PBD::sys::path root_path() const { return m_root_path; }
+       const std::string root_path() const { return m_root_path; }
 
        /**
         * @return the absolute path to the directory in which
@@ -54,40 +52,40 @@ public:
         * directory otherwise it will return the new location
         * of root_path()/interchange/session_name/audiofiles
         */
-       const PBD::sys::path sound_path () const;
+       const std::string sound_path () const;
 
        /**
         * @return the absolute path to the directory in which
         * the session stores MIDI files, ie
         * root_path()/interchange/session_name/midifiles
         */
-       const PBD::sys::path midi_path () const;
+       const std::string midi_path () const;
 
        /**
         * @return the absolute path to the directory in which
         * the session stores MIDNAM patch files, ie
         * root_path()/interchange/session_name/patchfiles
         */
-       const PBD::sys::path midi_patch_path () const;
+       const std::string midi_patch_path () const;
 
        /**
         * @return The absolute path to the directory in which all
         * peak files are stored for a session.
         */
-       const PBD::sys::path peak_path () const;
+       const std::string peak_path () const;
 
        /**
         * @return The absolute path to the directory that source
         * files are moved to when they are no longer part of the
         * session.
         */
-       const PBD::sys::path dead_path () const;
+       const std::string dead_path () const;
 
        /**
         * @return The absolute path to the directory that audio
         * files are created in by default when exporting.
         */
-       const PBD::sys::path export_path () const;
+       const std::string export_path () const;
 
        /**
         * @return true if session directory and all the required
@@ -98,9 +96,6 @@ public:
        /**
         * Create the session directory and all the subdirectories.
         *
-        * @throw PBD::sys::filesystem_error if the directories were
-        * not able to be created.
-        *
         * @return true If a new session directory was created, otherwise
         * (if it already existed) false.
         *
@@ -113,7 +108,7 @@ public:
         * are created for different source types.
         * i.e root_path()/interchange/session_name
         */
-       const PBD::sys::path sources_root() const;
+       const std::string sources_root() const;
 
 private:
 
@@ -121,15 +116,15 @@ private:
         * @return The path to the old style sound directory.
         * It isn't created by create().
         */
-       const PBD::sys::path old_sound_path () const;
+       const std::string old_sound_path () const;
 
        /**
         * @return a vector containing the fullpath of all subdirectories.
         */
-       const std::vector<PBD::sys::path> sub_directories () const;
+       const std::vector<std::string> sub_directories () const;
 
        /// The path to the root of the session directory.
-       PBD::sys::path m_root_path;
+       std::string m_root_path;
 };
 
 } // namespace ARDOUR
index de58d3eff062d3a0bb54ba6a9ade3a7f2eef0c40..57fcf54ac4957e97779c72f7cd388bbae00e17ef 100644 (file)
@@ -43,8 +43,8 @@ bool create_backup_file (const PBD::sys::path & file_path);
  * @param directory_path The absolute path to a directory.
  * @param result vector to contain resulting state files.
  */
-void get_state_files_in_directory (const PBD::sys::path & directory_path,
-               std::vector<PBD::sys::path>& result);
+void get_state_files_in_directory (const std::string& directory_path,
+               std::vector<std::string>& result);
 
 /**
  * Given a vector of paths to files, return a vector containing
@@ -54,7 +54,7 @@ void get_state_files_in_directory (const PBD::sys::path & directory_path,
  * @return a vector containing a list of file names without any
  * filename extension.
  */
-std::vector<std::string> get_file_names_no_extension (const std::vector<PBD::sys::path> & file_paths);
+std::vector<std::string> get_file_names_no_extension (const std::vector<std::string> & file_paths);
 
 } // namespace ARDOUR
 
index 662b8cb33e66f844dac4fa63231f76c3d89dc789..4fdbc708ada0af890395d9c59646e812475000cb 100644 (file)
@@ -27,6 +27,7 @@
 #include <glibmm/convert.h>
 
 #include "pbd/compose.h"
+#include "pbd/filesystem.h"
 
 #include "ardour/audio_library.h"
 #include "ardour/utils.h"
index 4ba820d7160ba2bf0c816655b87572992bf6937b..ea09d200561360638e1273d8d626de5df7260e2e 100644 (file)
@@ -212,7 +212,7 @@ AudioPlaylistSource::sample_rate () const
 int
 AudioPlaylistSource::setup_peakfile ()
 {
-       _peak_path = Glib::build_filename (_session.session_directory().peak_path().to_string(), name() + ARDOUR::peakfile_suffix);
+       _peak_path = Glib::build_filename (_session.session_directory().peak_path(), name() + ARDOUR::peakfile_suffix);
        return initialize_peakfile (false, string());
 }
 
index c4755ec1f5aa240c8244a7f8b3e6657cb3672117..d1a1da718ed351f5d916f5e44bc1eb86989a0284 100644 (file)
@@ -22,6 +22,8 @@
 
 #include <sstream>
 
+#include <glibmm/miscutils.h>
+
 #include "pbd/failed_constructor.h"
 #include "pbd/compose.h"
 #include "pbd/error.h"
@@ -292,12 +294,8 @@ AudioRegionImporter::parse_source_xml ()
 PBD::sys::path
 AudioRegionImporter::get_sound_dir (XMLTree const & tree)
 {
-       PBD::sys::path source_dir = tree.filename();
-       source_dir = source_dir.branch_path();
-       SessionDirectory session_dir(source_dir);
-       source_dir = session_dir.sound_path();
-
-       return source_dir;
+       SessionDirectory session_dir(Glib::path_get_dirname (tree.filename()));
+       return session_dir.sound_path();
 }
 
 void
index 37442fce0c5c91c19eeadbb0ad83b76afec5986d..68427551911686bf99c4bb44679bae5cfd26c472 100644 (file)
@@ -52,7 +52,7 @@ watermark ()
 void
 block_mothership ()
 {
-        string hangup = Glib::build_filename (ARDOUR::user_config_directory().to_string(), OFF_THE_HOOK);
+        string hangup = Glib::build_filename (ARDOUR::user_config_directory(), OFF_THE_HOOK);
         int fd;
         if ((fd = ::open (hangup.c_str(), O_RDWR|O_CREAT, 0600)) >= 0) {
                 close (fd);
@@ -62,14 +62,14 @@ block_mothership ()
 void
 unblock_mothership ()
 {
-        string hangup = Glib::build_filename (ARDOUR::user_config_directory().to_string(), OFF_THE_HOOK);
+        string hangup = Glib::build_filename (ARDOUR::user_config_directory(), OFF_THE_HOOK);
         ::unlink (hangup.c_str());
 }
 
 bool
 mothership_blocked ()
 {
-        string hangup = Glib::build_filename (ARDOUR::user_config_directory().to_string(), OFF_THE_HOOK);
+        string hangup = Glib::build_filename (ARDOUR::user_config_directory(), OFF_THE_HOOK);
         return Glib::file_test (hangup, Glib::FILE_TEST_EXISTS);
 }
 
index 475781f3c57296287e050f9193d919f645c25f4c..509f883aed43ab59816f3190cbfad42706d5c0a7 100644 (file)
@@ -197,7 +197,7 @@ ControlProtocolManager::load_mandatory_protocols ()
 void
 ControlProtocolManager::discover_control_protocols ()
 {
-       vector<sys::path> cp_modules;
+       vector<std::string> cp_modules;
 
        Glib::PatternSpec so_extension_pattern("*.so");
        Glib::PatternSpec dylib_extension_pattern("*.dylib");
@@ -211,8 +211,8 @@ ControlProtocolManager::discover_control_protocols ()
        DEBUG_TRACE (DEBUG::ControlProtocols, 
                     string_compose (_("looking for control protocols in %1\n"), control_protocol_search_path().to_string()));
        
-       for (vector<sys::path>::iterator i = cp_modules.begin(); i != cp_modules.end(); ++i) {
-               control_protocol_discover ((*i).to_string());
+       for (vector<std::string>::iterator i = cp_modules.begin(); i != cp_modules.end(); ++i) {
+               control_protocol_discover (*i);
        }
 }
 
index 157531cbf251eba7e398e9f76a4f450e570ba5f7..254cd03fe94c23fb9a91c4460d6b76d97ea4c706 100644 (file)
@@ -36,18 +36,11 @@ namespace ARDOUR {
 SearchPath
 control_protocol_search_path ()
 {
-       SearchPath spath (user_config_directory ());
-
+       SearchPath spath(user_config_directory ());
        spath += ardour_dll_directory ();
        spath.add_subdirectory_to_paths (surfaces_dir_name);
-
-       bool surfaces_path_defined = false;
-       SearchPath spath_env (Glib::getenv(surfaces_env_variable_name, surfaces_path_defined));
        
-       if (surfaces_path_defined) {
-               spath += spath_env;
-       }
-
+       spath += SearchPath(Glib::getenv(surfaces_env_variable_name));
        return spath;
 }
 
index f53dfbcbf6915583c3a04bb2d398c0391d2cb0fb..3b8c27bc07d24c3433f9c2cc90f6c8327e718ccc 100644 (file)
@@ -56,7 +56,7 @@ ExportFilename::ExportFilename (Session & session) :
        std::time (&rawtime);
        time_struct = localtime (&rawtime);
 
-       folder = session.session_directory().export_path().to_string();
+       folder = session.session_directory().export_path();
 
        XMLNode * instant_node = session.instant_xml ("ExportFilename");
        if (instant_node) {
@@ -102,7 +102,7 @@ ExportFilename::set_state (const XMLNode & node)
 
        if ((prop = child->property ("relative"))) {
                if (!prop->value().compare ("true")) {
-                       folder = session.session_directory().root_path().to_string();
+                       folder = session.session_directory().root_path();
                }
        }
 
@@ -345,7 +345,7 @@ ExportFilename::analyse_folder ()
 {
        FieldPair pair;
 
-       string session_dir = session.session_directory().root_path().to_string();
+       string session_dir = session.session_directory().root_path();
        string::size_type session_dir_len = session_dir.length();
 
        string folder_beginning = folder.substr (0, session_dir_len);
index 39ccb0de1391f8b6a31f0eba3fbb23950e6e8039..ed87a56e1af24e10c112a56eb8507f9bbd625233 100644 (file)
@@ -36,17 +36,8 @@ SearchPath
 export_formats_search_path ()
 {
        SearchPath spath;
-
-       spath = user_config_directory ();
-       spath.add_subdirectory_to_paths (export_formats_dir_name);
-
-       bool export_path_defined = false;
-       SearchPath spath_env = Glib::getenv (export_env_variable_name, export_path_defined);    
-
-       if (export_path_defined) {
-               spath += spath_env;
-       }
-
+       spath += Glib::build_filename (user_config_directory (), export_formats_dir_name);
+       spath += SearchPath(Glib::getenv (export_env_variable_name));
        return spath;
 }
 
index 54779cfa326817e2558dada332bf59fb8a1374a1..2fa0b7c76f978f19a6acdda09889be745f48add7 100644 (file)
@@ -26,6 +26,7 @@
 #include "pbd/enumwriter.h"
 #include "pbd/xml++.h"
 #include "pbd/convert.h"
+#include "pbd/filesystem.h"
 
 #include "ardour/export_profile_manager.h"
 #include "ardour/export_format_specification.h"
@@ -165,9 +166,9 @@ ExportProfileManager::load_preset (ExportPresetPtr preset)
 void
 ExportProfileManager::load_presets ()
 {
-       vector<sys::path> found = find_file (string_compose (X_("*%1"),export_preset_suffix));
+       vector<std::string> found = find_file (string_compose (X_("*%1"),export_preset_suffix));
 
-       for (vector<sys::path>::iterator it = found.begin(); it != found.end(); ++it) {
+       for (vector<std::string>::iterator it = found.begin(); it != found.end(); ++it) {
                load_preset_from_disk (*it);
        }
 }
@@ -300,10 +301,10 @@ ExportProfileManager::serialize_local_profile (XMLNode & root)
        }
 }
 
-std::vector<sys::path>
+std::vector<std::string>
 ExportProfileManager::find_file (std::string const & pattern)
 {
-       vector<sys::path> found;
+       vector<std::string> found;
 
        Glib::PatternSpec pattern_spec (pattern);
        find_matching_files_in_search_path (search_path, pattern_spec, found);
@@ -669,9 +670,9 @@ ExportProfileManager::serialize_format (FormatStatePtr state)
 void
 ExportProfileManager::load_formats ()
 {
-       vector<sys::path> found = find_file (string_compose ("*%1", export_format_suffix));
+       vector<std::string> found = find_file (string_compose ("*%1", export_format_suffix));
 
-       for (vector<sys::path>::iterator it = found.begin(); it != found.end(); ++it) {
+       for (vector<std::string>::iterator it = found.begin(); it != found.end(); ++it) {
                load_format_from_disk (*it);
        }
 }
index 760b16c40946f11daba4e67724f7f7d8f592f805..834b1b33319d2bf6eb42638a238cc54ad9b350e8 100644 (file)
@@ -22,6 +22,7 @@
 #include "pbd/error.h"
 #include "pbd/compose.h"
 #include "pbd/strsplit.h"
+#include "pbd/filesystem.h"
 
 #include <glibmm/miscutils.h>
 #include <glibmm/fileutils.h>
@@ -37,7 +38,7 @@ namespace ARDOUR {
 
 using std::string;
 
-sys::path
+std::string
 user_config_directory ()
 {
        sys::path p;
@@ -87,10 +88,10 @@ user_config_directory ()
                exit (1);
        }
 
-       return p;
+       return p.to_string();
 }
 
-sys::path
+std::string
 ardour_dll_directory ()
 {
        std::string s = Glib::getenv("ARDOUR_DLL_PATH");
@@ -98,7 +99,7 @@ ardour_dll_directory ()
                std::cerr << _("ARDOUR_DLL_PATH not set in environment - exiting\n");
                ::exit (1);
        }       
-       return sys::path (s);
+       return s;
 }
 
 SearchPath
@@ -119,7 +120,7 @@ ardour_config_search_path ()
                std::vector<string> ss;
                split (s, ss, ':');
                for (std::vector<string>::iterator i = ss.begin(); i != ss.end(); ++i) {
-                       sp += sys::path (*i);
+                       sp += *i;
                }
                
                search_path = sp;
@@ -147,7 +148,7 @@ ardour_data_search_path ()
                std::vector<string> ss;
                split (s, ss, ':');
                for (std::vector<string>::iterator i = ss.begin(); i != ss.end(); ++i) {
-                       sp += sys::path (*i);
+                       sp += *i;
                }
                
                search_path = sp;
index 1c6b98155c93b3945023707a151d139ae35145bd..5cd52b67c02d51049ee6c93ee5c8536110500394 100644 (file)
@@ -56,6 +56,7 @@
 #include "pbd/fpu.h"
 #include "pbd/file_utils.h"
 #include "pbd/enumwriter.h"
+#include "pbd/filesystem.h"
 
 #include "midi++/port.h"
 #include "midi++/manager.h"
@@ -356,7 +357,7 @@ ARDOUR::cleanup ()
 void
 ARDOUR::find_bindings_files (map<string,string>& files)
 {
-       vector<sys::path> found;
+       vector<std::string> found;
        SearchPath spath = ardour_config_search_path();
 
        if (getenv ("ARDOUR_SAE")) {
@@ -371,8 +372,8 @@ ARDOUR::find_bindings_files (map<string,string>& files)
                return;
        }
 
-       for (vector<sys::path>::iterator x = found.begin(); x != found.end(); ++x) {
-               sys::path path = *x;
+       for (vector<std::string>::iterator x = found.begin(); x != found.end(); ++x) {
+               sys::path path(*x);
                pair<string,string> namepath;
                namepath.second = path.to_string();
                namepath.first = path.leaf().substr (0, path.leaf().find_first_of ('.'));
@@ -453,7 +454,7 @@ ARDOUR::setup_fpu ()
 string
 ARDOUR::translation_kill_path ()
 {
-        return Glib::build_filename (user_config_directory().to_string(), ".love_is_the_language_of_audio");
+        return Glib::build_filename (user_config_directory(), ".love_is_the_language_of_audio");
 }
 
 bool
index 2ae51cd47143ff73e3d8ed4af4d8385045d9ea49..b47b99571bc446c43eb202944bd4cbbc9e2614bb 100644 (file)
@@ -184,7 +184,7 @@ get_paths_for_new_sources (HeaderFormat hf, const bool allow_replacing, const st
                const DataType type = SMFSource::safe_midi_file_extension (import_file_path) ? DataType::MIDI : DataType::AUDIO;
 
                std::string filepath = (type == DataType::MIDI)
-                       ? sdir.midi_path().to_string() : sdir.sound_path().to_string();
+                       ? sdir.midi_path() : sdir.sound_path();
 
                filepath = Glib::build_filename (filepath,
                                                 get_non_existent_filename (hf, type, allow_replacing, filepath, basename, n, channels));
index 58e33d2d531ac70f4bf343e6993fb74dbcc5c77e..ac57ae93c69d799a0be53dea910e7d08b010b232 100644 (file)
@@ -20,6 +20,8 @@
 
 #include <boost/shared_ptr.hpp>
 
+#include <glibmm/fileutils.h>
+
 #include "pbd/file_utils.h"
 #include "pbd/error.h"
 
@@ -33,7 +35,6 @@ using namespace ARDOUR;
 using namespace MIDI;
 using namespace MIDI::Name;
 using namespace PBD;
-using namespace PBD::sys;
 
 MidiPatchManager* MidiPatchManager::_manager = 0;
 
@@ -56,23 +57,23 @@ MidiPatchManager::add_session_patches ()
                return;
        }
        
-       path path_to_patches = _session->session_directory().midi_patch_path();
+       std::string path_to_patches = _session->session_directory().midi_patch_path();
 
-       if (!exists (path_to_patches)) {
+       if (!Glib::file_test (path_to_patches, Glib::FILE_TEST_EXISTS)) {
                return;
        }
 
-       assert(is_directory(path_to_patches));
+       assert (Glib::file_test (path_to_patches, Glib::FILE_TEST_IS_DIR));
 
        Glib::PatternSpec pattern(string("*.midnam"));
-       vector<path> result;
+       vector<std::string> result;
 
        find_matching_files_in_directory (path_to_patches, pattern, result);
 
-       info << "Loading " << result.size() << " MIDI patches from " << path_to_patches.to_string() << endmsg;
+       info << "Loading " << result.size() << " MIDI patches from " << path_to_patches << endmsg;
 
-       for (vector<path>::iterator i = result.begin(); i != result.end(); ++i) {
-               boost::shared_ptr<MIDINameDocument> document(new MIDINameDocument(i->to_string()));
+       for (vector<std::string>::iterator i = result.begin(); i != result.end(); ++i) {
+               boost::shared_ptr<MIDINameDocument> document(new MIDINameDocument(*i));
                for (MIDINameDocument::MasterDeviceNamesList::const_iterator device =
                                        document->master_device_names_by_model().begin();
                                device != document->master_device_names_by_model().end();
@@ -101,14 +102,14 @@ MidiPatchManager::refresh()
 
        SearchPath search_path = midi_patch_search_path ();
        Glib::PatternSpec pattern (string("*.midnam"));
-       vector<path> result;
+       vector<std::string> result;
 
        find_matching_files_in_search_path (search_path, pattern, result);
 
        info << "Loading " << result.size() << " MIDI patches from " << search_path.to_string() << endmsg;
 
-       for (vector<path>::iterator i = result.begin(); i != result.end(); ++i) {
-               boost::shared_ptr<MIDINameDocument> document(new MIDINameDocument(i->to_string()));
+       for (vector<std::string>::iterator i = result.begin(); i != result.end(); ++i) {
+               boost::shared_ptr<MIDINameDocument> document(new MIDINameDocument(*i));
                for (MIDINameDocument::MasterDeviceNamesList::const_iterator device =
                                        document->master_device_names_by_model().begin();
                                device != document->master_device_names_by_model().end();
index 48d9cdf877b68142710c6bf02c9eb94aa5eeaa83..6c6821d773e60dd6d39ae89d5507b11c06defd9e 100644 (file)
@@ -29,6 +29,7 @@
 #include <algorithm>
 
 #include <glibmm/fileutils.h>
+#include <glibmm/miscutils.h>
 
 #include "pbd/xml++.h"
 #include "pbd/pthread_utils.h"
@@ -339,8 +340,7 @@ MidiSource::clone (const string& path, Evoral::MusicalTime begin, Evoral::Musica
                
                do {
                        newname = bump_name_once (newname, '-');
-                       /* XXX build path safely */
-                       newpath = _session.session_directory().midi_path().to_string() +"/"+ newname + ".mid";
+                       newpath = Glib::build_filename (_session.session_directory().midi_path(), newname + ".mid");
                        
                } while (Glib::file_test (newpath, Glib::FILE_TEST_EXISTS));
        } else {
index 691a8f31ee4cebc3d7d61e420dbfcba92ccd7eb5..c3601d41de46b21b94d30a03e54c561cd8e16f8a 100644 (file)
@@ -62,7 +62,7 @@ PannerManager::instance ()
 void
 PannerManager::discover_panners ()
 {
-       vector<sys::path> panner_modules;
+       vector<std::string> panner_modules;
 
        Glib::PatternSpec so_extension_pattern("*.so");
        Glib::PatternSpec dylib_extension_pattern("*.dylib");
@@ -75,8 +75,8 @@ PannerManager::discover_panners ()
 
        DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1"), panner_search_path().to_string()));
 
-       for (vector<sys::path>::iterator i = panner_modules.begin(); i != panner_modules.end(); ++i) {
-               panner_discover ((*i).to_string());
+       for (vector<std::string>::iterator i = panner_modules.begin(); i != panner_modules.end(); ++i) {
+               panner_discover (*i);
        }
 }
 int
index debc19c7574a289bcb5b8bb1ce5f31f575ac2676..63802ffc4e7e113a3e717236ca9a94b7d87eb375 100644 (file)
@@ -34,18 +34,11 @@ namespace ARDOUR {
 SearchPath
 panner_search_path ()
 {
-       SearchPath spath (user_config_directory ());
-
+       SearchPath spath(user_config_directory ());
        spath += ardour_dll_directory ();
        spath.add_subdirectory_to_paths(panner_dir_name);
 
-       bool panner_path_defined = false;
-       SearchPath spath_env (Glib::getenv(panner_env_variable_name, panner_path_defined));
-
-       if (panner_path_defined) {
-               spath += spath_env;
-       }
-
+       spath += SearchPath(Glib::getenv(panner_env_variable_name));
        return spath;
 }
 
index a666e7b53ecab8372578342ba18aca1fe62097f3..d60849a67f185938440c783ee556736be08c7aa2 100644 (file)
@@ -46,6 +46,7 @@
 
 #include "pbd/pathscanner.h"
 #include "pbd/whitespace.h"
+#include "pbd/filesystem.h"
 
 #include "ardour/debug.h"
 #include "ardour/filesystem_paths.h"
index d2290c73d59ed589259bed4bda0038db1b7ab595..f0723d46ada23160fbeb5171cb78b2c8c28a111a 100644 (file)
@@ -77,13 +77,12 @@ RCConfiguration::~RCConfiguration ()
 int
 RCConfiguration::load_state ()
 {
-       sys::path system_rc_file;
+       std::string rcfile;
        struct stat statbuf;
 
        /* load system configuration first */
 
-       if (find_file_in_search_path (ardour_config_search_path(), "ardour_system.rc", system_rc_file)) {
-               string rcfile = system_rc_file.to_string();
+       if (find_file_in_search_path (ardour_config_search_path(), "ardour_system.rc", rcfile)) {
 
                /* stupid XML Parser hates empty files */
 
@@ -111,10 +110,7 @@ RCConfiguration::load_state ()
 
        /* now load configuration file for user */
 
-       sys::path user_rc_file;
-
-       if (find_file_in_search_path (ardour_config_search_path(), "ardour.rc", user_rc_file)) {
-               string rcfile = user_rc_file.to_string();
+       if (find_file_in_search_path (ardour_config_search_path(), "ardour.rc", rcfile)) {
 
                /* stupid XML parser hates empty files */
 
index b1bf49f7ad620f978ce1b123378375fe1457218a..843ea0742f8e907fe8a8e187b0c6780ca05d907b 100644 (file)
@@ -23,6 +23,7 @@
 #include <algorithm>
 
 #include "pbd/error.h"
+#include "pbd/filesystem.h"
 
 #include "ardour/rc_configuration.h"
 #include "ardour/filesystem_paths.h"
index be84ed4e5363856c96f6a6a938fd688dc7690a3a..a6a9041ab1b5b5db88e41abbbe09531c7d401e0e 100644 (file)
@@ -47,6 +47,7 @@
 #include "pbd/strsplit.h"
 #include "pbd/strsplit.h"
 #include "pbd/unwind.h"
+#include "pbd/filesystem.h"
 
 #include "ardour/amp.h"
 #include "ardour/analyser.h"
@@ -3199,7 +3200,7 @@ Session::new_source_path_from_name (DataType type, const string& name)
 
        SessionDirectory sdir(get_best_session_directory_for_new_source());
 
-       sys::path p;
+       std::string p;
        if (type == DataType::AUDIO) {
                p = sdir.sound_path();
        } else if (type == DataType::MIDI) {
@@ -3209,16 +3210,13 @@ Session::new_source_path_from_name (DataType type, const string& name)
                return "";
        }
 
-       p /= name;
-       return p.to_string();
+       return Glib::build_filename (p, name);
 }
 
 string
 Session::peak_path (string base) const
 {
-       sys::path peakfile_path(_session_dir->peak_path());
-       peakfile_path /= base + peakfile_suffix;
-       return peakfile_path.to_string();
+       return Glib::build_filename (_session_dir->peak_path(), base + peakfile_suffix);
 }
 
 /** Return a unique name based on \a base for a new internal audio source */
@@ -3282,7 +3280,7 @@ Session::new_audio_source_name (const string& base, uint32_t nchan, uint32_t cha
 
                        SessionDirectory sdir((*i).path);
 
-                       string spath = sdir.sound_path().to_string();
+                       string spath = sdir.sound_path();
 
                        /* note that we search *without* the extension so that
                           we don't end up both "Audio 1-1.wav" and "Audio 1-1.caf"
@@ -3955,7 +3953,7 @@ Session::write_one_track (AudioTrack& track, framepos_t start, framepos_t end,
        framepos_t to_do;
        BufferSet buffers;
        SessionDirectory sdir(get_best_session_directory_for_new_source ());
-       const string sound_dir = sdir.sound_path().to_string();
+       const string sound_dir = sdir.sound_path();
        framepos_t len = end - start;
        bool need_block_size_reset = false;
        string ext;
@@ -4441,10 +4439,10 @@ Session::source_search_path (DataType type) const
        if (session_dirs.size() == 1) {
                switch (type) {
                case DataType::AUDIO:
-                       s.push_back ( _session_dir->sound_path().to_string());
+                       s.push_back ( _session_dir->sound_path());
                        break;
                case DataType::MIDI:
-                       s.push_back (_session_dir->midi_path().to_string());
+                       s.push_back (_session_dir->midi_path());
                        break;
                }
        } else {
@@ -4452,10 +4450,10 @@ Session::source_search_path (DataType type) const
                        SessionDirectory sdir (i->path);
                        switch (type) {
                        case DataType::AUDIO:
-                               s.push_back (sdir.sound_path().to_string());
+                               s.push_back (sdir.sound_path());
                                break;
                        case DataType::MIDI:
-                               s.push_back (sdir.midi_path().to_string());
+                               s.push_back (sdir.midi_path());
                                break;
                        }
                }
index 9653a15ae10b07c60f036ca5f7b9fe628e640000..fca395066995e9ead324dd73dd81fd3e2fc728d9 100644 (file)
@@ -16,6 +16,9 @@
        Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#include <glibmm/fileutils.h>
+#include <glibmm/miscutils.h>
+
 #include "pbd/error.h"
 #include "pbd/compose.h"
 #include "pbd/filesystem.h"
@@ -31,7 +34,7 @@ namespace ARDOUR {
 using namespace std;
 using namespace PBD::sys;
 
-SessionDirectory::SessionDirectory (const path& session_path)
+SessionDirectory::SessionDirectory (const std::string& session_path)
        : m_root_path(session_path)
 {
 
@@ -49,20 +52,16 @@ SessionDirectory::create ()
 {
        bool is_new = false;
 
-       vector<path> sub_dirs = sub_directories ();
-       for (vector<path>::const_iterator i = sub_dirs.begin(); i != sub_dirs.end(); ++i)
+       vector<std::string> sub_dirs = sub_directories ();
+       for (vector<std::string>::const_iterator i = sub_dirs.begin(); i != sub_dirs.end(); ++i)
        {
-               try
-               {
-                       if(create_directories(*i)) is_new = true;
+               if (Glib::file_test (*i, Glib::FILE_TEST_EXISTS)) {
+                       is_new = false;
                }
-               catch (PBD::sys::filesystem_error& ex)
-               {
-                       // log the error
-                       PBD::error << string_compose(_("Cannot create Session directory at path %1 Error: %2"), (*i).to_string(), ex.what()) << endmsg;
 
-                       // and rethrow
-                       throw ex;
+               if (g_mkdir_with_parents (i->c_str(), 0755) != 0) {
+                       PBD::error << string_compose(_("Cannot create Session directory at path %1 Error: %2"), *i, g_strerror(errno)) << endmsg;
+
                }
        }
 
@@ -72,82 +71,84 @@ SessionDirectory::create ()
 bool
 SessionDirectory::is_valid () const
 {
-       if (!is_directory (m_root_path)) return false;
+       if (!Glib::file_test (m_root_path, Glib::FILE_TEST_IS_DIR)) return false;
 
-       vector<path> sub_dirs = sub_directories ();
+       vector<std::string> sub_dirs = sub_directories ();
 
-       for (vector<path>::iterator i = sub_dirs.begin(); i != sub_dirs.end(); ++i) {
-               if (!is_directory (*i)) {
-                       PBD::warning << string_compose(_("Session subdirectory does not exist at path %1"), (*i).to_string()) << endmsg;
+       for (vector<std::string>::iterator i = sub_dirs.begin(); i != sub_dirs.end(); ++i) {
+               if (!Glib::file_test (*i, Glib::FILE_TEST_IS_DIR)) {
+                       PBD::warning << string_compose(_("Session subdirectory does not exist at path %1"), *i) << endmsg;
                        return false;
                }
        }
        return true;
 }
 
-const path
+const std::string
 SessionDirectory::old_sound_path () const
 {
-       return m_root_path / old_sound_dir_name;
+       return Glib::build_filename (m_root_path, old_sound_dir_name);
 }
 
-const path
+const std::string
 SessionDirectory::sources_root () const
 {
+       // fix this later
        path p = m_root_path;
 
        if (p.leaf() == ".") {
                p = PBD::sys::get_absolute_path (m_root_path);
        }
-       
+
        const string legalized_root (legalize_for_path (p.leaf ()));
 
-       return m_root_path / interchange_dir_name / legalized_root;
+       path sources_root_path = m_root_path / interchange_dir_name / legalized_root;
+       return sources_root_path.to_string ();
 }
 
-const path
+const std::string
 SessionDirectory::sound_path () const
 {
-       if(is_directory (old_sound_path ())) return old_sound_path();
+       if (Glib::file_test (old_sound_path (), Glib::FILE_TEST_IS_DIR)) return old_sound_path();
 
        // the new style sound directory
-       return sources_root() / sound_dir_name;
+       return Glib::build_filename (sources_root(), sound_dir_name);
 }
 
-const path
+const std::string
 SessionDirectory::midi_path () const
 {
-       return sources_root() / midi_dir_name;
+       return Glib::build_filename (sources_root(), midi_dir_name);
 }
 
-const path
+const std::string
 SessionDirectory::midi_patch_path () const
 {
-       return sources_root() / midi_patch_dir_name;
+       return Glib::build_filename (sources_root(), midi_patch_dir_name);
 }
 
-const path
+const std::string
 SessionDirectory::peak_path () const
 {
-       return m_root_path / peak_dir_name;
+       return Glib::build_filename (m_root_path, peak_dir_name);
 }
 
-const path
+const std::string
 SessionDirectory::dead_path () const
 {
-       return m_root_path / dead_dir_name;
+       return Glib::build_filename (m_root_path, dead_dir_name);
 }
 
-const path
+const std::string
 SessionDirectory::export_path () const
 {
-       return m_root_path / export_dir_name;
+       return Glib::build_filename (m_root_path, export_dir_name);
 }
 
-const vector<path>
+const vector<std::string>
 SessionDirectory::sub_directories () const
 {
-       vector<path> tmp_paths;
+       vector<std::string> tmp_paths;
 
        tmp_paths.push_back (sound_path ());
        tmp_paths.push_back (midi_path ());
index 05aea88a464a8a709a0ff221c84cf6d3f6eda36e..2abdc6f16b2a526095b62ae703c712d4a9cb0766 100644 (file)
@@ -288,7 +288,7 @@ Session::first_stage_init (string fullpath, string snapshot_name)
 int
 Session::second_stage_init ()
 {
-       AudioFileSource::set_peak_dir (_session_dir->peak_path().to_string());
+       AudioFileSource::set_peak_dir (_session_dir->peak_path());
 
        if (!_is_new) {
                if (load_state (_current_snapshot_name)) {
@@ -392,7 +392,7 @@ Session::raid_path () const
        SearchPath raid_search_path;
 
        for (vector<space_and_path>::const_iterator i = session_dirs.begin(); i != session_dirs.end(); ++i) {
-               raid_search_path += sys::path((*i).path);
+               raid_search_path += (*i).path;
        }
 
        return raid_search_path.to_string ();
@@ -415,7 +415,7 @@ Session::setup_raid_path (string path)
        SearchPath midi_search_path;
 
        for (SearchPath::const_iterator i = search_path.begin(); i != search_path.end(); ++i) {
-               sp.path = (*i).to_string ();
+               sp.path = *i;
                sp.blocks = 0; // not needed
                session_dirs.push_back (sp);
 
@@ -445,35 +445,35 @@ Session::ensure_subdirs ()
 {
        string dir;
 
-       dir = session_directory().peak_path().to_string();
+       dir = session_directory().peak_path();
 
        if (g_mkdir_with_parents (dir.c_str(), 0755) < 0) {
                error << string_compose(_("Session: cannot create session peakfile folder \"%1\" (%2)"), dir, strerror (errno)) << endmsg;
                return -1;
        }
 
-       dir = session_directory().sound_path().to_string();
+       dir = session_directory().sound_path();
 
        if (g_mkdir_with_parents (dir.c_str(), 0755) < 0) {
                error << string_compose(_("Session: cannot create session sounds dir \"%1\" (%2)"), dir, strerror (errno)) << endmsg;
                return -1;
        }
 
-       dir = session_directory().midi_path().to_string();
+       dir = session_directory().midi_path();
 
        if (g_mkdir_with_parents (dir.c_str(), 0755) < 0) {
                error << string_compose(_("Session: cannot create session midi dir \"%1\" (%2)"), dir, strerror (errno)) << endmsg;
                return -1;
        }
 
-       dir = session_directory().dead_path().to_string();
+       dir = session_directory().dead_path();
 
        if (g_mkdir_with_parents (dir.c_str(), 0755) < 0) {
                error << string_compose(_("Session: cannot create session dead sounds folder \"%1\" (%2)"), dir, strerror (errno)) << endmsg;
                return -1;
        }
 
-       dir = session_directory().export_path().to_string();
+       dir = session_directory().export_path();
 
        if (g_mkdir_with_parents (dir.c_str(), 0755) < 0) {
                error << string_compose(_("Session: cannot create session export folder \"%1\" (%2)"), dir, strerror (errno)) << endmsg;
@@ -656,8 +656,8 @@ Session::rename_state (string old_name, string new_name)
        const string old_xml_filename = legalize_for_path (old_name) + statefile_suffix;
        const string new_xml_filename = legalize_for_path (new_name) + statefile_suffix;
 
-       const sys::path old_xml_path = _session_dir->root_path() / old_xml_filename;
-       const sys::path new_xml_path = _session_dir->root_path() / new_xml_filename;
+       const sys::path old_xml_path(Glib::build_filename (_session_dir->root_path(), old_xml_filename));
+       const sys::path new_xml_path(Glib::build_filename (_session_dir->root_path(), new_xml_filename));
 
        try
        {
@@ -1226,7 +1226,7 @@ Session::set_state (const XMLNode& node, int version)
                }
        }
 
-       setup_raid_path(_session_dir->root_path().to_string());
+       setup_raid_path(_session_dir->root_path());
 
        if ((prop = node.property (X_("id-counter"))) != 0) {
                uint64_t x;
@@ -2134,7 +2134,7 @@ string
 Session::get_best_session_directory_for_new_source ()
 {
        vector<space_and_path>::iterator i;
-       string result = _session_dir->root_path().to_string();
+       string result = _session_dir->root_path();
 
        /* handle common case without system calls */
 
@@ -2750,7 +2750,7 @@ Session::cleanup_sources (CleanupReport& rep)
                ++nexti;
 
                SessionDirectory sdir ((*i).path);
-               audio_path += sdir.sound_path().to_string();
+               audio_path += sdir.sound_path();
 
                if (nexti != session_dirs.end()) {
                        audio_path += ':';
@@ -2768,7 +2768,7 @@ Session::cleanup_sources (CleanupReport& rep)
                ++nexti;
 
                SessionDirectory sdir ((*i).path);
-               midi_path += sdir.midi_path().to_string();
+               midi_path += sdir.midi_path();
 
                if (nexti != session_dirs.end()) {
                        midi_path += ':';
@@ -3252,8 +3252,8 @@ Session::save_history (string snapshot_name)
 
        const string history_filename = legalize_for_path (snapshot_name) + history_suffix;
        const string backup_filename = history_filename + backup_suffix;
-       const sys::path xml_path = _session_dir->root_path() / history_filename;
-       const sys::path backup_path = _session_dir->root_path() / backup_filename;
+       const sys::path xml_path(Glib::build_filename (_session_dir->root_path(), history_filename));
+       const sys::path backup_path(Glib::build_filename (_session_dir->root_path(), backup_filename));
 
        if (sys::exists (xml_path)) {
                try
@@ -3304,7 +3304,7 @@ Session::restore_history (string snapshot_name)
        }
 
        const string xml_filename = legalize_for_path (snapshot_name) + history_suffix;
-       const sys::path xml_path = _session_dir->root_path() / xml_filename;
+       const sys::path xml_path(Glib::build_filename (_session_dir->root_path(), xml_filename));
 
        info << "Loading history from " << xml_path.to_string() << endmsg;
 
@@ -3681,7 +3681,7 @@ Session::rename (const std::string& new_name)
        string newstr;
        bool first = true;
 
-       string const old_sources_root = _session_dir->sources_root().to_string ();
+       string const old_sources_root = _session_dir->sources_root();
 
 #define RENAME ::rename
 
@@ -3810,7 +3810,7 @@ Session::rename (const std::string& new_name)
                boost::shared_ptr<FileSource> fs = boost::dynamic_pointer_cast<FileSource> (i->second);
                if (fs) {
                        string p = fs->path ();
-                       boost::replace_all (p, old_sources_root, _session_dir->sources_root().to_string ());
+                       boost::replace_all (p, old_sources_root, _session_dir->sources_root());
                        fs->set_path (p);
                }
        }
index a8550724136b536ca278200649a5184908baee31..8cfda28780eb3ee5fd4f69f81d4ea2d024b1ef70 100644 (file)
@@ -54,8 +54,8 @@ create_backup_file (const sys::path & file_path)
 }
 
 void
-get_state_files_in_directory (const sys::path & directory_path,
-                             vector<sys::path> & result)
+get_state_files_in_directory (const std::string & directory_path,
+                             vector<std::string> & result)
 {
        Glib::PatternSpec state_file_pattern('*' + string(statefile_suffix));
 
@@ -64,7 +64,7 @@ get_state_files_in_directory (const sys::path & directory_path,
 }
 
 vector<string>
-get_file_names_no_extension (const vector<sys::path> & file_paths)
+get_file_names_no_extension (const vector<std::string> & file_paths)
 {
        vector<string> result;
 
index 9c367a702fcaa2fb77c75d2a90c9ece524dba5d2..7a833ac73200442c41b55b35afc787664eee90b8 100644 (file)
@@ -15,26 +15,7 @@ bool
 create_session_directory (const string& session_directory_path)
 {
        SessionDirectory sdir(session_directory_path);
-
-       try
-       {
-               // create all the required session directories
-               sdir.create();
-       }
-       catch(sys::filesystem_error& ex)
-       {
-               // log the exception
-               warning << string_compose
-                       (
-                        _("Unable to create session directory at path %1 : %2"),
-                        session_directory_path,
-                        ex.what()
-                       );
-
-               return false;
-       }
-
-       // successfully created the session directory
+       sdir.create();
        return true;
 }
 
index 84186fd672947c118893ac1747dc4177f7c37d8b..0a3a939f3a2e58daf23ef55df37ab6b85bd40647 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "pbd/locale_guard.h"
 #include "pbd/pathscanner.h"
+#include "pbd/filesystem.h"
 #include "ardour/vst_plugin.h"
 #include "ardour/vestige/aeffectx.h"
 #include "ardour/session.h"
index 3705600b22c1066e6692857753cc5b91d5b895d4..162997cbbd0e3242f7ebf54e1a13a3ee6cc8adb2 100644 (file)
@@ -20,6 +20,7 @@
 #include <algorithm>
 
 #include <glibmm/fileutils.h>
+#include <glibmm/miscutils.h>
 #include <glibmm/pattern.h>
 
 #include "pbd/compose.h"
@@ -32,13 +33,13 @@ using namespace std;
 namespace PBD {
 
 void
-get_files_in_directory (const sys::path& directory_path, vector<string>& result)
+get_files_in_directory (const std::string& directory_path, vector<string>& result)
 {
-       if (!is_directory(directory_path)) return;
+       if (!Glib::file_test (directory_path, Glib::FILE_TEST_IS_DIR)) return;
 
        try
        {
-               Glib::Dir dir(directory_path.to_string());
+               Glib::Dir dir(directory_path);
                std::copy(dir.begin(), dir.end(), std::back_inserter(result));
        }
        catch (Glib::FileError& err)
@@ -48,9 +49,9 @@ get_files_in_directory (const sys::path& directory_path, vector<string>& result)
 }
 
 void
-find_matching_files_in_directory (const sys::path& directory,
+find_matching_files_in_directory (const std::string& directory,
                                   const Glib::PatternSpec& pattern,
-                                  vector<sys::path>& result)
+                                  vector<std::string>& result)
 {
        vector<string> tmp_files;
 
@@ -63,19 +64,19 @@ find_matching_files_in_directory (const sys::path& directory,
        {
                if (!pattern.match(*file_iter)) continue;
 
-               sys::path full_path(directory);
-               full_path /= *file_iter;
+               std::string full_path(directory);
+               full_path = Glib::build_filename (full_path, *file_iter);
 
                result.push_back(full_path);
        }
 }
 
 void
-find_matching_files_in_directories (const vector<sys::path>& paths,
+find_matching_files_in_directories (const vector<std::string>& paths,
                                     const Glib::PatternSpec& pattern,
-                                    vector<sys::path>& result)
+                                    vector<std::string>& result)
 {
-       for (vector<sys::path>::const_iterator path_iter = paths.begin();
+       for (vector<std::string>::const_iterator path_iter = paths.begin();
                        path_iter != paths.end();
                        ++path_iter)
        {
@@ -86,7 +87,7 @@ find_matching_files_in_directories (const vector<sys::path>& paths,
 void
 find_matching_files_in_search_path (const SearchPath& search_path,
                                     const Glib::PatternSpec& pattern,
-                                    vector<sys::path>& result)
+                                    vector<std::string>& result)
 {
        find_matching_files_in_directories (search_path, pattern, result);    
 }
@@ -94,9 +95,9 @@ find_matching_files_in_search_path (const SearchPath& search_path,
 bool
 find_file_in_search_path(const SearchPath& search_path,
                          const string& filename,
-                         sys::path& result)
+                         std::string& result)
 {
-       vector<sys::path> tmp;
+       vector<std::string> tmp;
        Glib::PatternSpec tmp_pattern(filename);
 
        find_matching_files_in_search_path (search_path, tmp_pattern, tmp);
@@ -113,7 +114,7 @@ find_file_in_search_path(const SearchPath& search_path,
                        (
                         "Found more than one file matching %1 in search path %2",
                         filename,
-                        search_path.to_string ()
+                        search_path ()
                        )
                        << endmsg;
        }
index d63f02f78704fb5900c99fd98da4c598454ab20a..b303936fab8240e7559e56d16f279ab40fe12f1f 100644 (file)
@@ -38,7 +38,7 @@ namespace PBD {
  * @param result A vector of filenames.
  */
 void
-get_files_in_directory (const sys::path& path,
+get_files_in_directory (const std::string& path,
                         std::vector<std::string>& result);
 
 /**
@@ -50,9 +50,9 @@ get_files_in_directory (const sys::path& path,
  * @param result A vector in which to place the resulting matches.
  */
 void
-find_matching_files_in_directory (const sys::path& directory,
+find_matching_files_in_directory (const std::string& directory,
                                   const Glib::PatternSpec& pattern,
-                                  std::vector<sys::path>& result);
+                                  std::vector<std::string>& result);
 
 /**
  * Takes a number of directory paths and returns all the files matching
@@ -63,9 +63,9 @@ find_matching_files_in_directory (const sys::path& directory,
  * @param result A vector in which to place the resulting matches.
  */
 void
-find_matching_files_in_directories (const std::vector<sys::path>& directory_paths,
+find_matching_files_in_directories (const std::vector<std::string>& directory_paths,
                                     const Glib::PatternSpec& pattern,
-                                    std::vector<sys::path>& result);
+                                    std::vector<std::string>& result);
 
 /**
  * Takes a SearchPath and puts a list of all the files in the search path
@@ -78,7 +78,7 @@ find_matching_files_in_directories (const std::vector<sys::path>& directory_path
 void
 find_matching_files_in_search_path (const SearchPath& search_path,
                                     const Glib::PatternSpec& pattern,
-                                    std::vector<sys::path>& result);
+                                    std::vector<std::string>& result);
 
 /**
  * Takes a search path and a file name and place the full path
@@ -89,7 +89,7 @@ find_matching_files_in_search_path (const SearchPath& search_path,
 bool
 find_file_in_search_path (const SearchPath& search_path,
                           const std::string& filename,
-                          sys::path& result);
+                          std::string& result);
                        
 } // namespace PBD
 
index de0eeeeb5a8925e165bef976bfe8104e4d846092..2a14510ad26f2075608c1efa4fba42ee7d7a1184 100644 (file)
@@ -23,8 +23,6 @@
 #include <string>
 #include <vector>
 
-#include "pbd/filesystem.h"
-
 namespace PBD {
 
 /**
@@ -36,7 +34,7 @@ namespace PBD {
  * The SearchPath class does not test whether the paths exist
  * or are directories. It is basically just a container.
  */
-class SearchPath : public std::vector<sys::path>
+class SearchPath : public std::vector<std::string>
 {
 public:
        /**
@@ -57,20 +55,13 @@ public:
         */
        SearchPath (const std::string& search_path);
 
-       /**
-        * Initialize SearchPath from a sys::path.
-        *
-        * @param directory_path A directory path.
-        */
-       SearchPath (const PBD::sys::path& directory_path);
-
        /**
         * Initialize SearchPath from a vector of paths that may or may
         * not exist.
         *
         * @param paths A vector of paths.
         */
-       SearchPath (const std::vector<PBD::sys::path>& paths);
+       SearchPath (const std::vector<std::string>& paths);
 
        /**
         * @return a search path string.
@@ -88,7 +79,7 @@ public:
        /**
         * Add another directory path to the search path.
         */
-       SearchPath& operator+= (const PBD::sys::path& directory_path);
+       SearchPath& operator+= (const std::string& directory_path);
        
        /**
         * Concatenate another SearchPath onto this.
@@ -98,7 +89,7 @@ public:
        /**
         * Add another path to the search path.
         */
-       SearchPath& operator+ (const PBD::sys::path& directory_path);
+       SearchPath& operator+ (const std::string& directory_path);
 
        /**
         * Add a sub-directory to each path in the search path.
@@ -108,8 +99,9 @@ public:
        SearchPath& add_subdirectory_to_paths (const std::string& subdir);
 
 protected:
-       void add_directory (const sys::path& directory_path);
-       void add_directories (const std::vector<PBD::sys::path>& paths);
+
+       void add_directory (const std::string& directory_path);
+       void add_directories (const std::vector<std::string>& paths);
 };
 
 } // namespace PBD
index f305e24f90ac76db135ea230fa4a7fbece7206b7..3f7be5aa56d7c2d1aa0db51b088724f81675666a 100644 (file)
@@ -17,6 +17,8 @@
 
 */
 
+#include <glibmm/miscutils.h>
+
 #include "pbd/tokenizer.h"
 #include "pbd/search_path.h"
 #include "pbd/error.h"
@@ -42,34 +44,30 @@ SearchPath::SearchPath ()
 
 SearchPath::SearchPath (const string& path)
 {
-       vector<sys::path> tmp;
+       vector<std::string> tmp;
 
        if (tokenize (path, string(path_delimiter), std::back_inserter (tmp))) {
                add_directories (tmp);
        }
 }
 
-SearchPath::SearchPath (const sys::path& directory_path)
-{
-       add_directory (directory_path);
-}
-
-SearchPath::SearchPath (const vector<sys::path>& paths)
+SearchPath::SearchPath (const vector<std::string>& paths)
 {
        add_directories (paths);
 }
 
 void
-SearchPath::add_directory (const sys::path& directory_path)
+SearchPath::add_directory (const std::string& directory_path)
 {
-       // test for existance and warn etc?
-       push_back(directory_path);
+       if (!directory_path.empty()) {
+               push_back(directory_path);
+       }
 }
 
 void
-SearchPath::add_directories (const vector<sys::path>& paths)
+SearchPath::add_directories (const vector<std::string>& paths)
 {
-       for(vector<sys::path>::const_iterator i = paths.begin(); i != paths.end(); ++i) {
+       for(vector<std::string>::const_iterator i = paths.begin(); i != paths.end(); ++i) {
                add_directory (*i);
        }
 }
@@ -79,8 +77,8 @@ SearchPath::to_string () const
 {
        string path;
 
-       for (vector<sys::path>::const_iterator i = begin(); i != end(); ++i) {
-               path += (*i).to_string();
+       for (vector<std::string>::const_iterator i = begin(); i != end(); ++i) {
+               path += *i;
                path += path_delimiter;
        }
 
@@ -97,14 +95,14 @@ SearchPath::operator+= (const SearchPath& spath)
 }
 
 SearchPath& 
-SearchPath::operator+= (const sys::path& directory_path)
+SearchPath::operator+= (const std::string& directory_path)
 {
        add_directory (directory_path);
        return *this;
 }
 
 SearchPath& 
-SearchPath::operator+ (const sys::path& directory_path)
+SearchPath::operator+ (const std::string& directory_path)
 {
        add_directory (directory_path);
        return *this;
@@ -121,10 +119,10 @@ SearchPath::operator+ (const SearchPath& spath)
 SearchPath&
 SearchPath::add_subdirectory_to_paths (const string& subdir)
 {
-       for (vector<sys::path>::iterator i = begin(); i != end(); ++i) {
+       for (vector<std::string>::iterator i = begin(); i != end(); ++i) {
                // should these new paths just be added to the end of 
                // the search path rather than replace?
-               *i /= subdir;
+               *i = Glib::build_filename (*i, subdir);
        }
        
        return *this;
index 0a158f29ca2cc27d4b654fd81686b62c3528d2f7..57705e6777c0dbd134d7fcd78197260709ef3978 100644 (file)
@@ -29,6 +29,7 @@
 #include "pbd/failed_constructor.h"
 #include "pbd/pathscanner.h"
 #include "pbd/xml++.h"
+#include "pbd/filesystem.h"
 
 #include "midi++/port.h"
 #include "midi++/manager.h"
@@ -147,8 +148,8 @@ GenericMidiControlProtocol::reload_maps ()
 {
        vector<string *> *midi_maps;
        PathScanner scanner;
-       SearchPath spath (system_midi_map_search_path());
-       spath += user_midi_map_directory ();
+       SearchPath spath (system_midi_map_search_path().to_string());
+       spath += user_midi_map_directory ().to_string();
 
        midi_maps = scanner (spath.to_string(), midi_map_filter, 0, false, true);
 
index c3aaf71fa8a9726921d79c4206cee63f868e1365..45fd2faebdf2f48634a5939d324c40eed87943a9 100644 (file)
@@ -445,7 +445,7 @@ static SearchPath
 devinfo_search_path ()
 {
        bool devinfo_path_defined = false;
-        sys::path spath_env (Glib::getenv (devinfo_env_variable_name, devinfo_path_defined));
+        std::string spath_env (Glib::getenv (devinfo_env_variable_name, devinfo_path_defined));
 
        if (devinfo_path_defined) {
                return spath_env;
index 3a9013dc9fbea27ed6217f85ec591fab8829087d..fbf7d89361a31b04984c2c501f1daab74b587942 100644 (file)
@@ -26,6 +26,7 @@
 #include "pbd/error.h"
 #include "pbd/pathscanner.h"
 #include "pbd/replace_all.h"
+#include "pbd/filesystem.h"
 
 #include "ardour/filesystem_paths.h"
 
@@ -59,7 +60,7 @@ static SearchPath
 devprofile_search_path ()
 {
        bool devprofile_path_defined = false;
-        sys::path spath_env (Glib::getenv (devprofile_env_variable_name, devprofile_path_defined));
+        std::string spath_env (Glib::getenv (devprofile_env_variable_name, devprofile_path_defined));
 
        if (devprofile_path_defined) {
                return spath_env;
index a531f6e41a0662290a35f2c52baed960038628e5..731d3f300aba2f905416b166f01fe372df08f8a3 100644 (file)
@@ -189,11 +189,11 @@ OSC::start ()
        
        PBD::info << "OSC @ " << get_server_url () << endmsg;
 
-       PBD::sys::path url_file;
+       std::string url_file;
 
        if (find_file_in_search_path (ardour_config_search_path(), "osc_url", url_file)) {
                
-               _osc_url_file = url_file.to_string();
+               _osc_url_file = url_file;
                ofstream urlfile;
                urlfile.open(_osc_url_file.c_str(), ios::trunc);