X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudio_track_importer.cc;h=b3ac93e010696ebc091b9533c5907edc1cdce499;hb=8a128b33d38172ae525ac798c53bc105bc4e2c64;hp=b29384b2010cb9e2a4f2974d9a349f7d5815ac3d;hpb=f3a833e38e669d3194652ddba40fa10377ff750a;p=ardour.git diff --git a/libs/ardour/audio_track_importer.cc b/libs/ardour/audio_track_importer.cc index b29384b201..b3ac93e010 100644 --- a/libs/ardour/audio_track_importer.cc +++ b/libs/ardour/audio_track_importer.cc @@ -24,8 +24,9 @@ #include "ardour/audio_diskstream.h" #include "ardour/session.h" -#include "pbd/failed_constructor.h" +#include "pbd/controllable.h" #include "pbd/convert.h" +#include "pbd/failed_constructor.h" #include #include @@ -222,6 +223,7 @@ AudioTrackImporter::get_info () const return name; } +/** @return true if everything is ok */ bool AudioTrackImporter::_prepare_move () { @@ -246,7 +248,21 @@ AudioTrackImporter::_prepare_move () } name = rename_pair.second; } - xml_track.child ("IO")->property ("name")->set_value (name); + + XMLNode* c = xml_track.child ("IO"); + if (!c) { + error << _("badly-formed XML in imported track") << endmsg; + return false; + } + + XMLProperty* p = c->property ("name"); + if (!p) { + error << _("badly-formed XML in imported track") << endmsg; + return false; + } + + p->set_value (name); + track_handler.add_name (name); return true; @@ -266,7 +282,7 @@ AudioTrackImporter::_move () boost::shared_ptr ds_node_list; string xpath = "/Session/DiskStreams/AudioDiskstream[@id='" + old_ds_id.to_s() + "']"; - ds_node_list = source.root()->find (xpath); + ds_node_list = source.find (xpath); if (ds_node_list->size() != 1) { error << string_compose (_("Error Importing Audio track %1"), name) << endmsg; @@ -274,7 +290,9 @@ AudioTrackImporter::_move () } boost::shared_ptr ds_node = ds_node_list->front(); - ds_node->property ("id")->set_value (new_ds_id.to_s()); + XMLProperty* p = ds_node->property (X_("id")); + assert (p); + p->set_value (new_ds_id.to_s()); boost::shared_ptr new_ds (new AudioDiskstream (session, *ds_node)); new_ds->set_name (name); @@ -357,7 +375,7 @@ AudioTrackImporter::rate_convert_events (XMLNode & node) std::stringstream str (content_node->content()); std::ostringstream new_content; - nframes_t x; + framecnt_t x; double y; bool ok = true;