summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc/osc.cc
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2016-08-30 12:08:12 +1000
committerTim Mayberry <mojofunk@gmail.com>2017-04-19 09:36:54 +1000
commit6c1e7153ef4d518d31c336c75c4549dcf84f7f42 (patch)
tree11560c9a2237dd82a182c53f09e62133f260657e /libs/surfaces/osc/osc.cc
parent1680811dbf4097cbe0b9172e9171bf1f0c9cf8b1 (diff)
Use XMLNode::get/set_property API in OSC class
Diffstat (limited to 'libs/surfaces/osc/osc.cc')
-rw-r--r--libs/surfaces/osc/osc.cc114
1 files changed, 47 insertions, 67 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 009e8c14c4..7e7adb819a 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -3674,23 +3674,23 @@ XMLNode&
OSC::get_state ()
{
XMLNode& node (ControlProtocol::get_state());
- node.add_property("debugmode", (int) _debugmode); // TODO: enum2str
- node.add_property ("address-only", address_only);
- node.add_property ("remote-port", remote_port);
- node.add_property ("banksize", default_banksize);
- node.add_property ("striptypes", default_strip);
- node.add_property ("feedback", default_feedback);
- node.add_property ("gainmode", default_gainmode);
+ node.set_property ("debugmode", (int32_t) _debugmode); // TODO: enum2str
+ node.set_property ("address-only", address_only);
+ node.set_property ("remote-port", remote_port);
+ node.set_property ("banksize", default_banksize);
+ node.set_property ("striptypes", default_strip);
+ node.set_property ("feedback", default_feedback);
+ node.set_property ("gainmode", default_gainmode);
if (_surface.size()) {
XMLNode* config = new XMLNode (X_("Configurations"));
for (uint32_t it = 0; it < _surface.size(); ++it) {
OSCSurface* sur = &_surface[it];
XMLNode* devnode = new XMLNode (X_("Configuration"));
- devnode->add_property (X_("url"), sur->remote_url);
- devnode->add_property (X_("bank-size"), sur->bank_size);
- devnode->add_property (X_("strip-types"), sur->strip_types.to_ulong());
- devnode->add_property (X_("feedback"), sur->feedback.to_ulong());
- devnode->add_property (X_("gainmode"), sur->gainmode);
+ devnode->set_property (X_("url"), sur->remote_url);
+ devnode->set_property (X_("bank-size"), sur->bank_size);
+ devnode->set_property (X_("strip-types"), (uint64_t)sur->strip_types.to_ulong());
+ devnode->set_property (X_("feedback"), (uint64_t)sur->feedback.to_ulong());
+ devnode->set_property (X_("gainmode"), sur->gainmode);
config->add_child_nocopy (*devnode);
}
node.add_child_nocopy (*config);
@@ -3704,68 +3704,48 @@ OSC::set_state (const XMLNode& node, int version)
if (ControlProtocol::set_state (node, version)) {
return -1;
}
- XMLProperty const * p = node.property (X_("debugmode"));
- if (p) {
- _debugmode = OSCDebugMode (PBD::atoi(p->value ()));
- }
- p = node.property (X_("address-only"));
- if (p) {
- address_only = OSCDebugMode (PBD::atoi(p->value ()));
- }
- p = node.property (X_("remote-port"));
- if (p) {
- remote_port = p->value ();
- }
- p = node.property (X_("banksize"));
- if (p) {
- default_banksize = OSCDebugMode (PBD::atoi(p->value ()));
- }
- p = node.property (X_("striptypes"));
- if (p) {
- default_strip = OSCDebugMode (PBD::atoi(p->value ()));
- }
- p = node.property (X_("feedback"));
- if (p) {
- default_feedback = OSCDebugMode (PBD::atoi(p->value ()));
- }
- p = node.property (X_("gainmode"));
- if (p) {
- default_gainmode = OSCDebugMode (PBD::atoi(p->value ()));
+ int32_t debugmode;
+ if (node.get_property (X_("debugmode"), debugmode)) {
+ _debugmode = OSCDebugMode (debugmode);
}
+
+ node.get_property (X_("address-only"), address_only);
+ node.get_property (X_("remote-port"), remote_port);
+ node.get_property (X_("banksize"), default_banksize);
+ node.get_property (X_("striptypes"), default_strip);
+ node.get_property (X_("feedback"), default_feedback);
+ node.get_property (X_("gainmode"), default_gainmode);
+
XMLNode* cnode = node.child (X_("Configurations"));
if (cnode) {
XMLNodeList const& devices = cnode->children();
for (XMLNodeList::const_iterator d = devices.begin(); d != devices.end(); ++d) {
- XMLProperty const * prop = (*d)->property (X_("url"));
- if (prop) {
- OSCSurface s;
- bank_dirty = true;
- s.remote_url = prop->value();
- prop = (*d)->property (X_("bank-size"));
- if (prop) {
- s.bank_size = atoi (prop->value().c_str());
- }
- prop = (*d)->property (X_("strip-types"));
- if (prop) {
- s.strip_types = atoi (prop->value().c_str());
- }
- prop = (*d)->property (X_("feedback"));
- if (prop) {
- s.feedback = atoi (prop->value().c_str());
- }
- prop = (*d)->property (X_("gainmode"));
- if (prop) {
- s.gainmode = atoi (prop->value().c_str());
- }
- s.bank = 1;
- s.sel_obs = 0;
- s.expand = 0;
- s.expand_enable = false;
- s.strips = get_sorted_stripables(s.strip_types, s.cue);
- s.nstrips = s.strips.size();
- _surface.push_back (s);
+ OSCSurface s;
+ if (!(*d)->get_property (X_("url"), s.remote_url)) {
+ continue;
+ }
+
+ bank_dirty = true;
+
+ (*d)->get_property (X_("bank-size"), s.bank_size);
+
+ uint64_t bits;
+ if ((*d)->get_property (X_ ("strip-types"), bits)) {
+ s.strip_types = bits;
+ }
+ if ((*d)->get_property (X_("feedback"), bits)) {
+ s.feedback = bits;
}
+ (*d)->get_property (X_("gainmode"), s.gainmode);
+
+ s.bank = 1;
+ s.sel_obs = 0;
+ s.expand = 0;
+ s.expand_enable = false;
+ s.strips = get_sorted_stripables (s.strip_types, s.cue);
+ s.nstrips = s.strips.size ();
+ _surface.push_back (s);
}
}
global_init = true;