X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fuser_bundle.cc;h=ee98f02858f55bcff5235b579983ca755d166cd5;hb=79f01bc889d6c928345214eaba9016c6396bcfca;hp=312a3c58ed564ae106a38b2e6dba9265f86c69cf;hpb=01d57ff3e7bea307ab43d5521f232f947a24e10f;p=ardour.git diff --git a/libs/ardour/user_bundle.cc b/libs/ardour/user_bundle.cc index 312a3c58ed..ee98f02858 100644 --- a/libs/ardour/user_bundle.cc +++ b/libs/ardour/user_bundle.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Paul Davis + Copyright (C) 2012 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,7 +18,8 @@ */ #include "ardour/user_bundle.h" -#include "i18n.h" +#include "ardour/types_convert.h" +#include "pbd/i18n.h" #include "pbd/compose.h" #include "pbd/error.h" #include "pbd/failed_constructor.h" @@ -41,14 +42,13 @@ ARDOUR::UserBundle::UserBundle (XMLNode const & node, bool i) int ARDOUR::UserBundle::set_state (XMLNode const & node, int /*version*/) { - XMLProperty const * name; - - if ((name = node.property ("name")) == 0) { + std::string str; + if (!node.get_property ("name", str)) { PBD::error << _("Node for Bundle has no \"name\" property") << endmsg; return -1; } - set_name (name->value ()); + set_name (str); XMLNodeList const channels = node.children (); @@ -60,18 +60,18 @@ ARDOUR::UserBundle::set_state (XMLNode const & node, int /*version*/) return -1; } - if ((name = (*i)->property ("name")) == 0) { + if (!(*i)->get_property ("name", str)) { PBD::error << _("Node for Channel has no \"name\" property") << endmsg; return -1; } - XMLProperty const * type; - if ((type = (*i)->property ("type")) == 0) { + DataType type(DataType::NIL); + if (!(*i)->get_property ("type", type)) { PBD::error << _("Node for Channel has no \"type\" property") << endmsg; return -1; } - add_channel (name->value (), DataType (type->value())); + add_channel (str, type); XMLNodeList const ports = (*i)->children (); @@ -81,12 +81,12 @@ ARDOUR::UserBundle::set_state (XMLNode const & node, int /*version*/) return -1; } - if ((name = (*j)->property ("name")) == 0) { + if (!(*j)->get_property ("name", str)) { PBD::error << _("Node for Port has no \"name\" property") << endmsg; return -1; } - add_port_to_channel (n, name->value ()); + add_port_to_channel (n, str); } ++n; @@ -106,19 +106,19 @@ ARDOUR::UserBundle::get_state () node = new XMLNode ("OutputBundle"); } - node->add_property ("name", name ()); + node->set_property ("name", name ()); { Glib::Threads::Mutex::Lock lm (_channel_mutex); for (std::vector::iterator i = _channel.begin(); i != _channel.end(); ++i) { XMLNode* c = new XMLNode ("Channel"); - c->add_property ("name", i->name); - c->add_property ("type", i->type.to_string()); + c->set_property ("name", i->name); + c->set_property ("type", i->type); for (PortList::iterator j = i->ports.begin(); j != i->ports.end(); ++j) { XMLNode* p = new XMLNode ("Port"); - p->add_property ("name", *j); + p->set_property ("name", *j); c->add_child_nocopy (*p); }