Allow loading sessions with missing external files #7067
authorRobin Gareus <robin@gareus.org>
Tue, 11 Oct 2016 20:05:27 +0000 (22:05 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 11 Oct 2016 20:05:27 +0000 (22:05 +0200)
commitfeed9648e19f5750b102a161a1028bb143ea16c5
tree7067d5b453bc4d90b95e269cd9e4680fc1b943e3
parentc60b4ff4cb842bc2fa1fe79b5e49181d1d067c7f
Allow loading sessions with missing external files #7067

The issue was introduced in dbf86a495b, forcing must_exist = true
for *all* files that have a absolute _origin, including stub
SilentFileSources.

If an external file is no longer available and a user chooses to
"ignore, skip" an SilentFile is created instead of the actual source,
The SilentFileSource has the same XML state which includes _origin.

ARDOUR::SilentFileSource::SilentFileSource () c'tor calls
AudioFileSource::AudioFileSource (,.., must_exit = false)
but since the file has an absolute _origin, the AudioFileSource c'tor sets
must_exist = true; throws and the session cannot be loaded.
libs/ardour/ardour/audiofilesource.h
libs/ardour/ardour/silentfilesource.h
libs/ardour/audiofilesource.cc