Make sure every imported file is copied to the session path
[ardour.git] / libs / ardour / session.cc
index 3b46ad3be14258a6fd9d06b424ca4cc4a80d90cf..0e03efa9458d7bae99dfae688edbb9b1d1d59685 100644 (file)
@@ -119,6 +119,7 @@ PBD::Signal1<int,boost::shared_ptr<Playlist> > Session::AskAboutPlaylistDeletion
 PBD::Signal0<void> Session::Quit;
 PBD::Signal0<void> Session::FeedbackDetected;
 PBD::Signal0<void> Session::SuccessfulGraphSort;
+PBD::Signal2<void,std::string,std::string> Session::VersionMismatch;
 
 static void clean_up_session_event (SessionEvent* ev) { delete ev; }
 const SessionEvent::RTeventCallback Session::rt_cleanup (clean_up_session_event);
@@ -132,6 +133,7 @@ Session::Session (AudioEngine &eng,
        : _engine (eng)
        , _target_transport_speed (0.0)
        , _requested_return_frame (-1)
+       , _under_nsm_control (false)
        , _session_dir (new SessionDirectory(fullpath))
        , state_tree (0)
        , _state_of_the_state (Clean)
@@ -152,9 +154,7 @@ Session::Session (AudioEngine &eng,
        , _suspend_timecode_transmission (0)
 {
        _locations = new Locations (*this);
-#ifdef HAVE_LTC
        ltc_encoder = NULL;
-#endif
 
        if (how_many_dsp_threads () > 1) {
                /* For now, only create the graph if we are using >1 DSP threads, as
@@ -244,9 +244,7 @@ Session::destroy ()
 
        Port::PortDrop (); /* EMIT SIGNAL */
 
-#ifdef HAVE_LTC
        ltc_tx_cleanup();
-#endif
 
        /* clear history so that no references to objects are held any more */
 
@@ -1081,7 +1079,7 @@ Session::set_auto_loop_location (Location* location)
        }
 
        if (location->end() <= location->start()) {
-               error << _("Session: you can't use a mark for auto loop") << endmsg;
+               error << _("You cannot use this location for auto-loop because it has zero or negative length") << endmsg;
                return;
        }
 
@@ -1638,8 +1636,6 @@ Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost:
        RouteList new_routes;
        list<boost::shared_ptr<MidiTrack> > ret;
 
-       cerr << "Adding MIDI track with in = " << input << " out = " << output << endl;
-
        bool const use_number = (how_many != 1) || name_template.empty () || name_template == _("MIDI");
 
        while (how_many) {
@@ -1698,7 +1694,7 @@ Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost:
 
                catch (AudioEngine::PortRegistrationFailure& pfe) {
 
-                       error << string_compose (_("No more JACK ports are available. You will need to stop %1 and restart JACK with ports if you need this many tracks."), PROGRAM_NAME) << endmsg;
+                       error << string_compose (_("No more JACK ports are available. You will need to stop %1 and restart JACK with more ports if you need this many tracks."), PROGRAM_NAME) << endmsg;
                        goto failed;
                }
 
@@ -3386,7 +3382,7 @@ Session::create_audio_source_for_session (size_t n_chans, string const & n, uint
        const string path    = new_source_path_from_name(DataType::AUDIO, name);
 
        return boost::dynamic_pointer_cast<AudioFileSource> (
-               SourceFactory::createWritable (DataType::AUDIO, *this, path, string(), destructive, frame_rate()));
+               SourceFactory::createWritable (DataType::AUDIO, *this, path, destructive, frame_rate()));
 }
 
 /** Return a unique name based on \a base for a new internal MIDI source */
@@ -3462,7 +3458,7 @@ Session::create_midi_source_for_session (Track* track, string const & n)
 
        return boost::dynamic_pointer_cast<SMFSource> (
                SourceFactory::createWritable (
-                       DataType::MIDI, *this, path, string(), false, frame_rate()));
+                       DataType::MIDI, *this, path, false, frame_rate()));
 }
 
 
@@ -4014,7 +4010,7 @@ Session::write_one_track (AudioTrack& track, framepos_t start, framepos_t end,
 
                try {
                        fsource = boost::dynamic_pointer_cast<AudioFileSource> (
-                               SourceFactory::createWritable (DataType::AUDIO, *this, buf, string(), false, frame_rate()));
+                               SourceFactory::createWritable (DataType::AUDIO, *this, buf, false, frame_rate()));
                }
 
                catch (failed_constructor& err) {
@@ -4207,7 +4203,7 @@ Session::add_automation_list(AutomationList *al)
 bool
 Session::have_rec_enabled_track () const
 {
-       return g_atomic_int_get (&_have_rec_enabled_track) == 1;
+       return g_atomic_int_get (const_cast<gint*>(&_have_rec_enabled_track)) == 1;
 }
 
 /** Update the state of our rec-enabled tracks flag */