fix data loss/file deletion caused by mistaken used of Session::source_by_path()...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 29 May 2014 20:27:33 +0000 (16:27 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 29 May 2014 20:27:41 +0000 (16:27 -0400)
::source_by_path() was written for MIDI files only. I fixed the call and renamed the two similar functions (one for audio and one for MIDI) to make it more clear.

gtk2_ardour/editor_audio_import.cc
libs/ardour/ardour/session.h
libs/ardour/import.cc
libs/ardour/session.cc

index da70df5c15a71c2e3ead386b9e43a85fb728f997..dd706496e372c7d3ac3d790e6030780982ac441d 100644 (file)
@@ -611,7 +611,7 @@ Editor::embed_sndfiles (vector<string> paths, bool multifile,
 
                                boost::shared_ptr<Source> s;
 
-                               if ((s = _session->source_by_path_and_channel (path, n)) == 0) {
+                               if ((s = _session->audio_source_by_path_and_channel (path, n)) == 0) {
 
                                        source = boost::dynamic_pointer_cast<AudioFileSource> (
                                                SourceFactory::createExternal (DataType::AUDIO, *_session,
index 5f1c02f80588ea700f142abfc43220d6250011fc..89c33f23ece81ad5c5ce9e7b74bc04aa927d288f 100644 (file)
@@ -585,8 +585,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        boost::shared_ptr<MidiSource> create_midi_source_by_stealing_name (boost::shared_ptr<Track>);
 
        boost::shared_ptr<Source> source_by_id (const PBD::ID&);
-       boost::shared_ptr<AudioFileSource> source_by_path_and_channel (const std::string&, uint16_t) const;
-       boost::shared_ptr<MidiSource> source_by_path (const std::string&) const;
+       boost::shared_ptr<AudioFileSource> audio_source_by_path_and_channel (const std::string&, uint16_t) const;
+       boost::shared_ptr<MidiSource> midi_source_by_path (const std::string&) const;
        uint32_t count_sources_by_origin (const std::string&);
 
        void add_playlist (boost::shared_ptr<Playlist>, bool unused = false);
index b66f3542249bcb042e771c8e405bd97ff57fbbf4..3ab46bfec56403d33313aafefe33a9beecbc99a0 100644 (file)
@@ -202,7 +202,7 @@ map_existing_mono_sources (const vector<string>& new_paths, Session& /*sess*/,
        for (vector<string>::const_iterator i = new_paths.begin();
             i != new_paths.end(); ++i)
        {
-               boost::shared_ptr<Source> source = session->source_by_path_and_channel(*i, 0);
+               boost::shared_ptr<Source> source = session->audio_source_by_path_and_channel(*i, 0);
 
                if (source == 0) {
                        error << string_compose(_("Could not find a source for %1 even though we are updating this file!"), (*i)) << endl;
index 04c86dc979e896316135fe9cd703acece4b2b989..0f0eb5b8f16422c72a42bbbe4f39a257f025bf3c 100644 (file)
@@ -3311,7 +3311,7 @@ Session::source_by_id (const PBD::ID& id)
 }
 
 boost::shared_ptr<AudioFileSource>
-Session::source_by_path_and_channel (const string& path, uint16_t chn) const
+Session::audio_source_by_path_and_channel (const string& path, uint16_t chn) const
 {
        /* Restricted to audio files because only audio sources have channel
           as a property.
@@ -3332,7 +3332,7 @@ Session::source_by_path_and_channel (const string& path, uint16_t chn) const
 }
 
 boost::shared_ptr<MidiSource>
-Session::source_by_path (const std::string& path) const
+Session::midi_source_by_path (const std::string& path) const
 {
        /* Restricted to MIDI files because audio sources require a channel
           for unique identification, in addition to a path.
@@ -3487,7 +3487,7 @@ Session::new_audio_source_name (const string& base, uint32_t nchan, uint32_t cha
 
                        string possible_path = Glib::build_filename (spath, buf);
 
-                       if (source_by_path (possible_path)) {
+                       if (audio_source_by_path_and_channel (possible_path, chan)) {
                                existing++;
                                break;
                        }
@@ -3553,7 +3553,7 @@ Session::new_midi_source_name (const string& owner_name)
                                existing++;
                        }
 
-                       if (source_by_path (possible_path)) {
+                       if (midi_source_by_path (possible_path)) {
                                existing++;
                        }
                }