summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_audio_import.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor_audio_import.cc')
-rw-r--r--gtk2_ardour/editor_audio_import.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index f37659093e..2391eae927 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -280,9 +280,26 @@ Editor::get_nth_selected_audio_track (int nth) const
return atv->audio_track();
}
+bool
+Editor::idle_do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos)
+{
+ _do_import (paths, chns, mode, quality, pos);
+ return false;
+}
+
void
Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos)
{
+#ifdef GTKOSX
+ Glib::signal_idle().connect (bind (mem_fun (*this, &Editor::idle_do_import), paths, chns, mode, quality, pos));
+#else
+ _do_import (paths, chns, mode, quality, pos);
+#endif
+}
+
+void
+Editor::_do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos)
+{
boost::shared_ptr<AudioTrack> track;
vector<ustring> to_import;
bool ok = true;
@@ -653,6 +670,9 @@ Editor::embed_sndfiles (vector<Glib::ustring> paths, bool multifile,
boost::shared_ptr<Source> s;
if ((s = session->source_by_path_and_channel (path, n)) == 0) {
+
+ cerr << "add embed/import source with defer_peaks = true\n";
+
source = boost::dynamic_pointer_cast<AudioFileSource> (SourceFactory::createReadable
(*session, path, n,
(mode == ImportAsTapeTrack ?