From ffdf5ada616d285fafb58f45c2e3d37b212a328a Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 5 Oct 2006 01:49:32 +0000 Subject: Generic MIDI control now saves+restores its state; PBD::ID now requires a buffer size for its print() method git-svn-id: svn://localhost/ardour2/trunk@949 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/pbd/controllable.cc | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'libs/pbd/controllable.cc') diff --git a/libs/pbd/controllable.cc b/libs/pbd/controllable.cc index b1176c64a5..80c6811e6a 100644 --- a/libs/pbd/controllable.cc +++ b/libs/pbd/controllable.cc @@ -1,26 +1,40 @@ #include #include +#include #include "i18n.h" using namespace PBD; -sigc::signal Controllable::Created; sigc::signal Controllable::GoingAway; sigc::signal Controllable::StartLearning; sigc::signal Controllable::StopLearning; -Controllable::Controllable () +Controllable::Controllable (std::string name) + : _name (name) { - Created (this); } XMLNode& Controllable::get_state () { - XMLNode* node = new XMLNode (X_("Controllable")); + XMLNode* node = new XMLNode (_name); char buf[64]; - _id.print (buf); + _id.print (buf, sizeof (buf)); node->add_property (X_("id"), buf); return *node; } + +int +Controllable::set_state (const XMLNode& node) +{ + const XMLProperty* prop = node.property (X_("id")); + + if (prop) { + _id = prop->value(); + return 0; + } else { + error << _("Controllable state node has no ID property") << endmsg; + return -1; + } +} -- cgit v1.2.3