X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudio_track_importer.cc;h=af6d9a613ae144645127bd0003e7eaf1b5b48c0f;hb=dec10f2f3c6fffe27e72243d9bf36713d8f084f9;hp=e3fe0825dba0ce912d473da91022bc9a75afadf1;hpb=1c399d5ebc542abf7132d90395c5c23b43935bdb;p=ardour.git diff --git a/libs/ardour/audio_track_importer.cc b/libs/ardour/audio_track_importer.cc index e3fe0825db..af6d9a613a 100644 --- a/libs/ardour/audio_track_importer.cc +++ b/libs/ardour/audio_track_importer.cc @@ -21,17 +21,17 @@ #include "ardour/audio_track_importer.h" #include "ardour/audio_playlist_importer.h" -#include "ardour/audio_diskstream.h" +#include "ardour/disk_reader.h" #include "ardour/session.h" #include "pbd/controllable.h" -#include "pbd/convert.h" #include "pbd/failed_constructor.h" +#include "pbd/string_convert.h" #include #include -#include "i18n.h" +#include "pbd/i18n.h" using namespace std; using namespace PBD; @@ -40,8 +40,7 @@ using namespace ARDOUR; /*** AudioTrackImportHandler ***/ AudioTrackImportHandler::AudioTrackImportHandler (XMLTree const & source, Session & session, AudioPlaylistImportHandler & pl_handler) : - ElementImportHandler (source, session), - pl_handler (pl_handler) + ElementImportHandler (source, session) { XMLNode const * root = source.root(); XMLNode const * routes; @@ -52,7 +51,7 @@ AudioTrackImportHandler::AudioTrackImportHandler (XMLTree const & source, Sessio XMLNodeList const & route_list = routes->children(); for (XMLNodeList::const_iterator it = route_list.begin(); it != route_list.end(); ++it) { - const XMLProperty* type = (*it)->property("default-type"); + XMLProperty const * type = (*it)->property("default-type"); if ( (!type || type->value() == "audio") && ((*it)->property ("diskstream") != 0 || (*it)->property ("diskstream-id") != 0)) { try { elements.push_back (ElementPtr ( new AudioTrackImporter (source, session, *this, **it, pl_handler))); @@ -100,7 +99,7 @@ AudioTrackImporter::AudioTrackImporter (XMLTree const & source, XMLNode * remote_control = xml_track.child ("RemoteControl"); if (remote_control && (prop = remote_control->property ("id"))) { uint32_t control_id = session.ntracks() + session.nbusses() + 1; - prop->set_value (to_string (control_id, std::dec)); + prop->set_value (to_string (control_id)); } xml_track.remove_nodes_and_delete ("Extra"); @@ -223,6 +222,7 @@ AudioTrackImporter::get_info () const return name; } +/** @return true if everything is ok */ bool AudioTrackImporter::_prepare_move () { @@ -247,7 +247,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; @@ -263,6 +277,8 @@ AudioTrackImporter::_cancel_move () void AudioTrackImporter::_move () { + /* XXX DISK */ +#if 0 /* Add diskstream */ boost::shared_ptr ds_node_list; @@ -275,9 +291,11 @@ 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)); + boost::shared_ptr new_ds (new DiskReader (session, *ds_node)); new_ds->set_name (name); new_ds->do_refill_with_alloc (); new_ds->set_block_size (session.get_block_size ()); @@ -293,6 +311,7 @@ AudioTrackImporter::_move () XMLNode routes ("Routes"); routes.add_child_copy (xml_track); session.load_routes (routes, 3000); +#endif } bool @@ -358,7 +377,7 @@ AudioTrackImporter::rate_convert_events (XMLNode & node) std::stringstream str (content_node->content()); std::ostringstream new_content; - framecnt_t x; + samplecnt_t x; double y; bool ok = true;