mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-04 04:39:33 +01:00
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
This commit is contained in:
parent
5ad68cf2c5
commit
ffdf5ada61
31 changed files with 209 additions and 77 deletions
|
|
@ -1,26 +1,40 @@
|
|||
#include <pbd/controllable.h>
|
||||
#include <pbd/xml++.h>
|
||||
#include <pbd/error.h>
|
||||
|
||||
#include "i18n.h"
|
||||
|
||||
using namespace PBD;
|
||||
|
||||
sigc::signal<void,Controllable*> Controllable::Created;
|
||||
sigc::signal<void,Controllable*> Controllable::GoingAway;
|
||||
sigc::signal<bool,Controllable*> Controllable::StartLearning;
|
||||
sigc::signal<void,Controllable*> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue