From 40bc1c239eef8edfe08a456c189aff2cef3c6ee8 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 9 Sep 2007 13:04:23 +0000 Subject: more changes for the import dialog, with breakout of importable source code into its own files git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2437 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_audio_import.cc | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'gtk2_ardour/editor_audio_import.cc') diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index 11896fbba8..8f47215c8e 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -367,7 +367,7 @@ Editor::import_sndfiles (vector paths, ImportMode mode, nframes64_t& po goto out; } - if (add_sources (paths, import_status.sources, pos, mode, target_regions, target_tracks, track) == 0) { + if (add_sources (paths, import_status.sources, pos, mode, target_regions, target_tracks, track, false) == 0) { session->save_state (""); } @@ -523,7 +523,7 @@ Editor::embed_sndfiles (vector paths, bool multifile, goto out; } - ret = add_sources (paths, sources, pos, mode, target_regions, target_tracks, track); + ret = add_sources (paths, sources, pos, mode, target_regions, target_tracks, track, true); out: track_canvas.get_window()->set_cursor (*current_canvas_cursor); @@ -532,7 +532,7 @@ Editor::embed_sndfiles (vector paths, bool multifile, int Editor::add_sources (vector paths, SourceList& sources, nframes64_t& pos, ImportMode mode, - int target_regions, int target_tracks, boost::shared_ptr& track) + int target_regions, int target_tracks, boost::shared_ptr& track, bool add_channel_suffix) { vector > regions; ustring region_name; @@ -552,7 +552,7 @@ Editor::add_sources (vector paths, SourceList& sources, nframes64 /* take all the sources we have and package them up as a region */ - region_name = region_name_from_path (paths.front(), (sources.size() > 1)); + region_name = region_name_from_path (paths.front(), (sources.size() > 1), false); regions.push_back (boost::dynamic_pointer_cast (RegionFactory::create (sources, 0, sources[0]->length(), region_name, 0, @@ -564,15 +564,18 @@ Editor::add_sources (vector paths, SourceList& sources, nframes64 SourceList just_one; SourceList::iterator x; + uint32_t n; - for (x = sources.begin(); x != sources.end(); ++x) { + for (n = 0, x = sources.begin(); x != sources.end(); ++x, ++n) { just_one.clear (); just_one.push_back (*x); - + boost::shared_ptr afs = boost::dynamic_pointer_cast (*x); - region_name = region_name_from_path (afs->path(), false); + region_name = region_name_from_path (afs->path(), false, true, sources.size(), n); + + cerr << "got region name " << region_name << endl; regions.push_back (boost::dynamic_pointer_cast (RegionFactory::create (just_one, 0, (*x)->length(), region_name, 0, @@ -597,10 +600,12 @@ Editor::add_sources (vector paths, SourceList& sources, nframes64 output_chan = input_chan; } - for (vector >::iterator r = regions.begin(); r != regions.end(); ++r) { + int n = 0; - finish_bringing_in_audio (*r, input_chan, output_chan, pos, mode, track); + for (vector >::iterator r = regions.begin(); r != regions.end(); ++r, ++n) { + finish_bringing_in_audio (*r, input_chan, output_chan, pos, mode, track); + if (target_tracks != 1) { track.reset (); } else { @@ -652,12 +657,15 @@ Editor::finish_bringing_in_audio (boost::shared_ptr region, uint32_ { if (!existing_track) { list > at (session->new_audio_track (in_chans, out_chans, Normal, 1)); + if (at.empty()) { return -1; } + existing_track = at.front(); - existing_track->set_name (basename_nosuffix (region->name()), this); + existing_track->set_name (region->name(), this); } + boost::shared_ptr copy (boost::dynamic_pointer_cast (RegionFactory::create (region))); existing_track->diskstream()->playlist()->add_region (copy, pos); break; -- cgit v1.2.3