diff options
Diffstat (limited to 'libs/ardour/audiofilter.cc')
-rw-r--r-- | libs/ardour/audiofilter.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libs/ardour/audiofilter.cc b/libs/ardour/audiofilter.cc index c340bccb2c..843a3a7d34 100644 --- a/libs/ardour/audiofilter.cc +++ b/libs/ardour/audiofilter.cc @@ -22,7 +22,7 @@ #include <cerrno> #include <pbd/basename.h> -#include <ardour/filesource.h> +#include <ardour/sndfilesource.h> #include <ardour/session.h> #include <ardour/audioregion.h> #include <ardour/audiofilter.h> @@ -47,7 +47,10 @@ AudioFilter::make_new_sources (AudioRegion& region, AudioRegion::SourceList& nsr } try { - nsrcs.push_back (new FileSource (path, session.frame_rate(), false, Config->get_native_file_data_format())); + nsrcs.push_back (new SndFileSource (path, + Config->get_native_file_data_format(), + Config->get_native_file_header_format(), + session.frame_rate())); } catch (failed_constructor& err) { @@ -73,7 +76,10 @@ AudioFilter::finish (AudioRegion& region, AudioRegion::SourceList& nsrcs) now = localtime (&xnow); for (AudioRegion::SourceList::iterator si = nsrcs.begin(); si != nsrcs.end(); ++si) { - dynamic_cast<FileSource*>((*si))->update_header (region.position(), *now, xnow); + AudioFileSource* afs = dynamic_cast<AudioFileSource*>(*si); + if (afs) { + afs->update_header (region.position(), *now, xnow); + } } /* create a new region */ |