- results.push_back (RegionFactory::create (nsrcs, 0, region->length(), region_name, 0,
- Region::Flag (Region::WholeFile|Region::DefaultFlags)));
-
+
+ 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<Region> r = RegionFactory::create (nsrcs, plist);
+
+ boost::shared_ptr<AudioRegion> audio_region = boost::dynamic_pointer_cast<AudioRegion> (region);
+ boost::shared_ptr<AudioRegion> audio_r = boost::dynamic_pointer_cast<AudioRegion> (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);
+