Use Session::session_directory to access the sound path of the session in Editor...
[ardour.git] / gtk2_ardour / editor_audio_import.cc
index 2f63de340ec6d51ac6b5619877d12b005f547bbe..6254cadab673c7f6998c519c36ce89c5cd5a3882 100644 (file)
@@ -30,6 +30,7 @@
 #include <gtkmm2ext/window_title.h>
 
 #include <ardour/session.h>
+#include <ardour/session_directory.h>
 #include <ardour/audioplaylist.h>
 #include <ardour/audioregion.h>
 #include <ardour/audio_diskstream.h>
@@ -65,7 +66,7 @@ void
 Editor::add_external_audio_action (ImportMode mode)
 {
        nframes_t& pos = edit_cursor->current_frame;
-       AudioTrack* track = 0;
+       boost::shared_ptr<AudioTrack> track;
 
        if (!selection->tracks.empty()) {
                AudioTimeAxisView* atv = dynamic_cast<AudioTimeAxisView*>(selection->tracks.front());
@@ -74,7 +75,7 @@ Editor::add_external_audio_action (ImportMode mode)
                }
        }
 
-       bring_in_external_audio (mode, track, pos, false);
+       bring_in_external_audio (mode, track.get(), pos, false);
 }
 
 void
@@ -263,7 +264,7 @@ Editor::import_sndfile (vector<ustring> paths, ImportMode mode, AudioTrack* trac
        /* import thread finished - see if we should build a new track */
        
        if (!import_status.new_regions.empty()) {
-               boost::shared_ptr<AudioRegion> region (import_status.new_regions.front());
+               boost::shared_ptr<AudioRegion> region = boost::dynamic_pointer_cast<AudioRegion>(import_status.new_regions.front());
                finish_bringing_in_audio (region, region->n_channels(), region->n_channels(), track, pos, mode);
        }
 
@@ -293,10 +294,11 @@ Editor::embed_sndfile (vector<Glib::ustring> paths, bool split, bool multiple_fi
                ustring path = *p;
 
                /* lets see if we can link it into the session */
-               
-               linked_path = session->sound_dir();
-               linked_path += '/';
-               linked_path += Glib::path_get_basename (path);
+
+               sys::path tmp = session->session_directory().sound_path();
+
+               tmp /= Glib::path_get_basename(path);
+               linked_path = tmp.to_string();
                
                if (link (path.c_str(), linked_path.c_str()) == 0) {
 
@@ -402,7 +404,7 @@ Editor::embed_sndfile (vector<Glib::ustring> paths, bool split, bool multiple_fi
 
                                if ((s = session->source_by_path_and_channel (path, n)) == 0) {
                                        source = boost::dynamic_pointer_cast<AudioFileSource> (SourceFactory::createReadable 
-                                                                                              (*session, path,  n,
+                                                                                              (DataType::AUDIO, *session, path,  n,
                                                                                                (mode == ImportAsTapeTrack ? 
                                                                                                 AudioFileSource::Destructive : 
                                                                                                 AudioFileSource::Flag (0))));
@@ -436,7 +438,7 @@ Editor::embed_sndfile (vector<Glib::ustring> paths, bool split, bool multiple_fi
                                                                                  Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)));
 
        if (Config->get_output_auto_connect() & AutoConnectMaster) {
-               output_chan = (session->master_out() ? session->master_out()->n_inputs() : input_chan);
+               output_chan = (session->master_out() ? session->master_out()->n_inputs().n_audio() : input_chan);
        } else {
                output_chan = input_chan;
        }