#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 <sstream>
#include <algorithm>
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace std;
using namespace PBD;
/*** 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;
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)));
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");
return name;
}
+/** @return true if everything is ok */
bool
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;
void
AudioTrackImporter::_move ()
{
+ /* XXX DISK */
+#if 0
/* Add diskstream */
boost::shared_ptr<XMLSharedNodeList> 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;
}
boost::shared_ptr<XMLNode> 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<Diskstream> new_ds (new AudioDiskstream (session, *ds_node));
+ boost::shared_ptr<DiskReader> 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 ());
XMLNode routes ("Routes");
routes.add_child_copy (xml_track);
session.load_routes (routes, 3000);
+#endif
}
bool