summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_audio_import.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-10-01 20:40:51 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-10-01 20:40:51 +0000
commit3b54a75aa9c03edb32d3960c5aacba640e1901e0 (patch)
treeb03e8a4ce943d38349afea7b0af89e9953d67c43 /gtk2_ardour/editor_audio_import.cc
parent44b07cb30c549e28be936d071c39346850a3d328 (diff)
i/o button naming patch and imported file BWF timecode retention patch from nickm, both reworked for 3.0
git-svn-id: svn://localhost/ardour2/branches/3.0@5711 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_audio_import.cc')
-rw-r--r--gtk2_ardour/editor_audio_import.cc27
1 files changed, 21 insertions, 6 deletions
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index a71f3dcc98..8459ccba6e 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -695,8 +695,11 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64
ustring region_name;
uint32_t input_chan = 0;
uint32_t output_chan = 0;
+ bool use_timestamp;
+
+ use_timestamp = (pos == -1);
- if (pos == -1) { // "use timestamp"
+ if (use_timestamp) {
if (sources[0]->natural_position() != 0) {
pos = sources[0]->natural_position();
} else {
@@ -714,8 +717,15 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64
region_name = region_name_from_path (paths.front(), (sources.size() > 1), false);
- regions.push_back (RegionFactory::create (sources, 0, sources[0]->length(pos), region_name, 0,
- Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)));
+ boost::shared_ptr<Region> r = RegionFactory::create (sources, 0, sources[0]->length(pos), region_name, 0,
+ Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External));
+
+ if (use_timestamp && boost::dynamic_pointer_cast<AudioRegion>(r)) {
+ boost::dynamic_pointer_cast<AudioRegion>(r)->special_set_position(sources[0]->natural_position());
+ }
+
+ regions.push_back (r);
+
} else if (target_regions == -1 || target_regions > 1) {
@@ -732,9 +742,14 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64
region_name = region_name_from_path ((*x)->path(), false, false, sources.size(), n);
- regions.push_back (RegionFactory::create (just_one, 0, (*x)->length(pos), region_name, 0,
- Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)));
-
+ boost::shared_ptr<Region> r = RegionFactory::create (just_one, 0, (*x)->length(pos), region_name, 0,
+ Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External));
+
+ if (use_timestamp && boost::dynamic_pointer_cast<AudioRegion>(r)) {
+ boost::dynamic_pointer_cast<AudioRegion>(r)->special_set_position((*x)->natural_position());
+ }
+
+ regions.push_back (r);
}
}