X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fplaylist_source.cc;h=c27652851b22dc4f764c9a9a4a64cfab58327cf6;hb=1682368052f1b7b4fcc0e2465ea485628c339b21;hp=f68033c815280f8b37e3056f274d26e3a8792c50;hpb=9687e8a6673f61c2b7167cb5c848e2adc5d82238;p=ardour.git diff --git a/libs/ardour/playlist_source.cc b/libs/ardour/playlist_source.cc index f68033c815..c27652851b 100644 --- a/libs/ardour/playlist_source.cc +++ b/libs/ardour/playlist_source.cc @@ -27,24 +27,21 @@ #include #include "pbd/error.h" -#include "pbd/convert.h" +#include "pbd/types_convert.h" #include "pbd/enumwriter.h" #include "ardour/playlist.h" #include "ardour/playlist_source.h" #include "ardour/playlist_factory.h" -#include "ardour/session.h" -#include "ardour/session_playlists.h" -#include "ardour/source_factory.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace std; using namespace ARDOUR; using namespace PBD; PlaylistSource::PlaylistSource (Session& s, const ID& orig, const std::string& name, boost::shared_ptr p, DataType type, - frameoffset_t begin, framecnt_t len, Source::Flag flags) + frameoffset_t begin, framecnt_t len, Source::Flag /*flags*/) : Source (s, type, name) , _playlist (p) , _original (orig) @@ -78,25 +75,20 @@ PlaylistSource::~PlaylistSource () void PlaylistSource::add_state (XMLNode& node) { - char buf[64]; - - _playlist->id().print (buf, sizeof (buf)); - node.add_property ("playlist", buf); - snprintf (buf, sizeof (buf), "%" PRIi64, _playlist_offset); - node.add_property ("offset", buf); - snprintf (buf, sizeof (buf), "%" PRIu64, _playlist_length); - node.add_property ("length", buf); - node.add_property ("original", _id.to_s()); + node.set_property ("playlist", _playlist->id ()); + node.set_property ("offset", _playlist_offset); + node.set_property ("length", _playlist_length); + node.set_property ("original", id()); node.add_child_nocopy (_playlist->get_state()); } int -PlaylistSource::set_state (const XMLNode& node, int version) +PlaylistSource::set_state (const XMLNode& node, int /*version*/) { /* check that we have a playlist ID */ - const XMLProperty *prop = node.property (X_("playlist")); + XMLProperty const * prop = node.property (X_("playlist")); if (!prop) { error << _("No playlist ID in PlaylistSource XML!") << endmsg; @@ -124,28 +116,31 @@ PlaylistSource::set_state (const XMLNode& node, int version) /* other properties */ - if ((prop = node.property (X_("name"))) == 0) { + std::string name; + if (!node.get_property (X_("name"), name)) { throw failed_constructor (); } - set_name (prop->value()); + set_name (name); - if ((prop = node.property (X_("offset"))) == 0) { + if (!node.get_property (X_("offset"), _playlist_offset)) { throw failed_constructor (); } - sscanf (prop->value().c_str(), "%" PRIi64, &_playlist_offset); - if ((prop = node.property (X_("length"))) == 0) { + if (!node.get_property (X_("length"), _playlist_length)) { throw failed_constructor (); } - sscanf (prop->value().c_str(), "%" PRIu64, &_playlist_length); + /* XXX not quite sure why we set our ID back to the "original" one + here. october 2011, paul + */ - if ((prop = node.property (X_("original"))) == 0) { + std::string str; + if (!node.get_property (X_("original"), str)) { throw failed_constructor (); } - _id = prop->value(); + set_id (str); _level = _playlist->max_source_level () + 1;