diff options
Diffstat (limited to 'libs/ardour/session_state.cc')
-rw-r--r-- | libs/ardour/session_state.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 604fc4bc52..82c2d5a31c 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -1056,20 +1056,23 @@ Session::state(bool full_state) for (SourceMap::iterator siter = sources.begin(); siter != sources.end(); ++siter) { - /* Don't save information about non-destructive file sources that are empty - and unused by any regions. + /* Don't save information about non-file Sources, or + * about non-destructive file sources that are empty + * and unused by any regions. */ boost::shared_ptr<FileSource> fs; + if ((fs = boost::dynamic_pointer_cast<FileSource> (siter->second)) != 0) { + if (!fs->destructive()) { if (fs->empty() && !fs->used()) { continue; } } + + child->add_child_nocopy (siter->second->get_state()); } - - child->add_child_nocopy (siter->second->get_state()); } } |