summaryrefslogtreecommitdiff
path: root/libs/ardour/import.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-07-18 00:50:15 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-07-18 00:50:15 +0000
commit932cca703eafaaa50d7acf1bc25da487a7b3abba (patch)
tree1be21bf062d518b6f2d649cac79a204b3fc5a87c /libs/ardour/import.cc
parent9b7e3a892a23bb27a72b915ff3f3e7ac0fd20f0a (diff)
imported files retain BWF timestamp info (nick murtagh) ; logarithm plugin controls can be properly controlled by generic GUI (nick murtagh); properly delete AU plugin *and* GUI (fixes crashing bug for Carbon-GUI based AU's)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5374 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/import.cc')
-rw-r--r--libs/ardour/import.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/libs/ardour/import.cc b/libs/ardour/import.cc
index b211321026..18747b1beb 100644
--- a/libs/ardour/import.cc
+++ b/libs/ardour/import.cc
@@ -193,8 +193,11 @@ map_existing_mono_sources (const vector<string>& new_paths, Session& sess,
static bool
create_mono_sources_for_writing (const vector<string>& new_paths, Session& sess,
- uint samplerate, vector<boost::shared_ptr<AudioFileSource> >& newfiles)
+ uint samplerate, vector<boost::shared_ptr<AudioFileSource> >& newfiles,
+ nframes_t timeline_position)
{
+ boost::shared_ptr<AudioFileSource> afs;
+
for (vector<string>::const_iterator i = new_paths.begin();
i != new_paths.end(); ++i)
{
@@ -215,7 +218,9 @@ create_mono_sources_for_writing (const vector<string>& new_paths, Session& sess,
return false;
}
- newfiles.push_back(boost::dynamic_pointer_cast<AudioFileSource>(source));
+ afs = boost::dynamic_pointer_cast<AudioFileSource>(source);
+ afs->set_timeline_position(timeline_position);
+ newfiles.push_back(afs);
}
return true;
}
@@ -337,7 +342,7 @@ Session::import_audiofiles (import_status& status)
fatal << "THIS IS NOT IMPLEMENTED YET, IT SHOULD NEVER GET CALLED!!! DYING!" << endl;
status.cancel = !map_existing_mono_sources (new_paths, *this, frame_rate(), newfiles, this);
} else {
- status.cancel = !create_mono_sources_for_writing (new_paths, *this, frame_rate(), newfiles);
+ status.cancel = !create_mono_sources_for_writing (new_paths, *this, frame_rate(), newfiles, source->natural_position());
}
// copy on cancel/failure so that any files that were created will be removed below
@@ -366,7 +371,7 @@ Session::import_audiofiles (import_status& status)
for (AudioSources::iterator x = all_new_sources.begin(); x != all_new_sources.end(); ++x)
{
- (*x)->update_header(0, *now, xnow);
+ (*x)->update_header((*x)->natural_position(), *now, xnow);
(*x)->done_with_peakfile_writes ();
/* now that there is data there, requeue the file for analysis */