projects
/
ardour.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
800fdd0
)
Use XMLNode::get/set_property API in PBD::Controllable
author
Tim Mayberry
<mojofunk@gmail.com>
Sat, 3 Sep 2016 12:11:19 +0000
(22:11 +1000)
committer
Tim Mayberry
<mojofunk@gmail.com>
Tue, 18 Apr 2017 23:36:48 +0000
(09:36 +1000)
libs/pbd/controllable.cc
patch
|
blob
|
history
diff --git
a/libs/pbd/controllable.cc
b/libs/pbd/controllable.cc
index 38554bd24abda076c3fb0484cd3562eb7576ef2a..60e43ab68812b0c000ad58bb0879aaa01c6b8082 100644
(file)
--- a/
libs/pbd/controllable.cc
+++ b/
libs/pbd/controllable.cc
@@
-22,6
+22,8
@@
#include "pbd/xml++.h"
#include "pbd/error.h"
#include "pbd/locale_guard.h"
#include "pbd/xml++.h"
#include "pbd/error.h"
#include "pbd/locale_guard.h"
+#include "pbd/types_convert.h"
+#include "pbd/string_convert.h"
#include "pbd/i18n.h"
#include "pbd/i18n.h"
@@
-108,7
+110,6
@@
Controllable::get_state ()
{
XMLNode* node = new XMLNode (xml_node_name);
LocaleGuard lg;
{
XMLNode* node = new XMLNode (xml_node_name);
LocaleGuard lg;
- char buf[64];
/* Waves' "Pressure3" has a parameter called "µ-iness"
* which causes a parser error : Input is not proper UTF-8, indicate encoding !
/* Waves' "Pressure3" has a parameter called "µ-iness"
* which causes a parser error : Input is not proper UTF-8, indicate encoding !
@@
-119,12
+120,10
@@
Controllable::get_state ()
// this is not reloaded from XML, but it must be present because it is
// used to find and identify XML nodes by various Controllable-derived objects
// this is not reloaded from XML, but it must be present because it is
// used to find and identify XML nodes by various Controllable-derived objects
- node->add_property (X_("name"), _name);
-
- node->add_property (X_("id"), id().to_s());
- node->add_property (X_("flags"), enum_2_string (_flags));
- snprintf (buf, sizeof (buf), "%2.12f", get_save_value());
- node->add_property (X_("value"), buf);
+ node->set_property (X_("name"), _name);
+ node->set_property (X_("id"), id());
+ node->set_property (X_("flags"), _flags);
+ node->set_property (X_("value"), get_save_value());
if (_extra_xml) {
node->add_child_copy (*_extra_xml);
if (_extra_xml) {
node->add_child_copy (*_extra_xml);
@@
-137,25
+136,20
@@
int
Controllable::set_state (const XMLNode& node, int /*version*/)
{
LocaleGuard lg;
Controllable::set_state (const XMLNode& node, int /*version*/)
{
LocaleGuard lg;
- const XMLProperty* prop;
Stateful::save_extra_xml (node);
set_id (node);
Stateful::save_extra_xml (node);
set_id (node);
- if (
(prop = node.property (X_("flags"))) != 0
) {
- _flags =
(Flag) ((_flags & Controllable::RealTime) | string_2_enum (prop->value(), _flags
));
+ if (
node.get_property (X_("flags"), _flags)
) {
+ _flags =
Flag(_flags | (_flags & Controllable::RealTime
));
}
}
- if ((prop = node.property (X_("value"))) != 0) {
- float val;
-
- if (sscanf (prop->value().c_str(), "%f", &val) == 1) {
+ float val;
+ if (node.get_property (X_("value"), val)) {
set_value (val, NoGroup);
set_value (val, NoGroup);
- }
- }
-
- return 0;
+ }
+ return 0;
}
void
}
void