X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Ffilter.cc;h=b085ec946b3d09305d52b3b8871e8a05a29f1e30;hb=fd6223854d68907d250d1cab74f48e5161823b4a;hp=fc659b3ab82447bacf162eeff8c3119932e11593;hpb=acdc88f279760443dc7397290e9c4752af5b23c9;p=ardour.git diff --git a/libs/ardour/filter.cc b/libs/ardour/filter.cc index fc659b3ab8..b085ec946b 100644 --- a/libs/ardour/filter.cc +++ b/libs/ardour/filter.cc @@ -21,15 +21,16 @@ #include #include "pbd/basename.h" -#include "ardour/sndfilesource.h" -#include "ardour/smf_source.h" -#include "ardour/session.h" -#include "ardour/region.h" + +#include "ardour/analyser.h" +#include "ardour/audiofilesource.h" +#include "ardour/audioregion.h" #include "ardour/filter.h" +#include "ardour/region.h" #include "ardour/region_factory.h" +#include "ardour/session.h" +#include "ardour/smf_source.h" #include "ardour/source_factory.h" -#include "ardour/analyser.h" -#include "ardour/audioregion.h" #include "i18n.h" @@ -116,18 +117,29 @@ Filter::finish (boost::shared_ptr region, SourceList& nsrcs, string regi /* create a new region */ if (region_name.empty()) { - region_name = session.new_region_name (region->name()); + region_name = RegionFactory::new_region_name (region->name()); } results.clear (); - boost::shared_ptr r = RegionFactory::create (nsrcs, 0, region->length(), region_name, 0, - Region::Flag (Region::WholeFile|Region::DefaultFlags)); - r->set_position (region->position(), 0); + PropertyList plist; + + plist.add (Properties::start, 0); + plist.add (Properties::length, region->length()); + plist.add (Properties::name, region_name); + plist.add (Properties::whole_file, true); + plist.add (Properties::position, region->position()); + + boost::shared_ptr r = RegionFactory::create (nsrcs, plist); boost::shared_ptr audio_region = boost::dynamic_pointer_cast (region); boost::shared_ptr audio_r = boost::dynamic_pointer_cast (r); if (audio_region && audio_r) { audio_r->set_scale_amplitude (audio_region->scale_amplitude()); + audio_r->set_fade_in_active (audio_region->fade_in_active ()); + audio_r->set_fade_in (audio_region->fade_in ()); + audio_r->set_fade_out_active (audio_region->fade_out_active ()); + audio_r->set_fade_out (audio_region->fade_out ()); + *(audio_r->envelope()) = *(audio_region->envelope ()); } results.push_back (r);