projects
/
ardour.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e63de17
)
attempt to stop transport, finish butler work, and close all files as part of Session...
author
Paul Davis
<paul@linuxaudiosystems.com>
Sun, 4 Oct 2015 18:17:52 +0000
(14:17 -0400)
committer
Paul Davis
<paul@linuxaudiosystems.com>
Sun, 4 Oct 2015 18:18:04 +0000
(14:18 -0400)
libs/ardour/session_state.cc
patch
|
blob
|
history
diff --git
a/libs/ardour/session_state.cc
b/libs/ardour/session_state.cc
index a0651ecbdae3a58bea16557138ff57c6f47ae171..6cc2fb49c8ef119ba909f2b2512cdda3730d5318 100644
(file)
--- a/
libs/ardour/session_state.cc
+++ b/
libs/ardour/session_state.cc
@@
-2935,6
+2935,17
@@
Session::cleanup_sources (CleanupReport& rep)
_state_of_the_state = (StateOfTheState) (_state_of_the_state | InCleanup);
_state_of_the_state = (StateOfTheState) (_state_of_the_state | InCleanup);
+ /* this is mostly for windows which doesn't allow file
+ * renaming if the file is in use. But we don't special
+ * case it because we need to know if this causes
+ * problems, and the easiest way to notice that is to
+ * keep it in place for all platforms.
+ */
+
+ request_stop (false);
+ _butler->summon ();
+ _butler->wait_until_finished ();
+
/* consider deleting all unused playlists */
if (playlists->maybe_delete_unused (boost::bind (Session::ask_about_playlist_deletion, _1))) {
/* consider deleting all unused playlists */
if (playlists->maybe_delete_unused (boost::bind (Session::ask_about_playlist_deletion, _1))) {
@@
-3008,6
+3019,15
@@
Session::cleanup_sources (CleanupReport& rep)
if ((fs = boost::dynamic_pointer_cast<FileSource> (i->second)) != 0) {
if ((fs = boost::dynamic_pointer_cast<FileSource> (i->second)) != 0) {
+ /* this is mostly for windows which doesn't allow file
+ * renaming if the file is in use. But we don't special
+ * case it because we need to know if this causes
+ * problems, and the easiest way to notice that is to
+ * keep it in place for all platforms.
+ */
+
+ fs->close ();
+
if (!fs->is_stub()) {
if (playlists->source_use_count (fs) != 0) {
if (!fs->is_stub()) {
if (playlists->source_use_count (fs) != 0) {