diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-05-27 18:07:30 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-05-27 18:07:30 +0000 |
commit | 06c7a5da6b1198afa00fdee5f705c15643d68db6 (patch) | |
tree | b8a5be7608e3676ae253dcd1de90d7d43e5e134a /libs | |
parent | 341d033b2cedc1502450938eaaa32710006d5286 (diff) |
don't alter session search path frm within FileSource constructor, do it when a source is added to the session; related - don't add sources that are created with announce=false to the session, and as a (new) corollary, no longer cause them to potentially alter the session search path (this applies mostly to sources created for auditioning)
git-svn-id: svn://localhost/ardour2/branches/3.0@12456 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/file_source.cc | 6 | ||||
-rw-r--r-- | libs/ardour/session.cc | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/libs/ardour/file_source.cc b/libs/ardour/file_source.cc index a7e3585e64..fd3e9ef142 100644 --- a/libs/ardour/file_source.cc +++ b/libs/ardour/file_source.cc @@ -122,11 +122,7 @@ FileSource::init (const string& pathstr, bool must_exist) } set_within_session_from_path (_path); - - if (!within_session()) { - _session.ensure_search_path_includes (Glib::path_get_dirname (_path), _type); - } - + _name = Glib::path_get_basename (_path); if (_file_is_new && must_exist) { diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index b09d67fb35..37d4d2908f 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2952,6 +2952,14 @@ Session::add_source (boost::shared_ptr<Source> source) /* yay, new source */ + boost::shared_ptr<FileSource> fs = boost::dynamic_pointer_cast<FileSource> (source); + + if (fs) { + if (!fs->within_session()) { + ensure_search_path_includes (Glib::path_get_dirname (fs->path()), fs->type()); + } + } + set_dirty(); boost::shared_ptr<AudioFileSource> afs; |