summaryrefslogtreecommitdiff
path: root/libs/surfaces/generic_midi
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2016-08-30 10:57:18 +1000
committerTim Mayberry <mojofunk@gmail.com>2017-04-19 09:36:54 +1000
commitf82cb87f0c842db145c79fb5404e740f01c44f9a (patch)
treeeffc1b3f9683b3b2ac11aa6e00458552fb532b75 /libs/surfaces/generic_midi
parent3be0170e823badff9ccc34759c31607099054b94 (diff)
Use XMLNode::get/set_property API in MIDIControllable class
Diffstat (limited to 'libs/surfaces/generic_midi')
-rw-r--r--libs/surfaces/generic_midi/midicontrollable.cc29
1 files changed, 14 insertions, 15 deletions
diff --git a/libs/surfaces/generic_midi/midicontrollable.cc b/libs/surfaces/generic_midi/midicontrollable.cc
index 82f214a248..0a7caac3bc 100644
--- a/libs/surfaces/generic_midi/midicontrollable.cc
+++ b/libs/surfaces/generic_midi/midicontrollable.cc
@@ -25,6 +25,7 @@
#include "pbd/error.h"
#include "pbd/xml++.h"
#include "pbd/stacktrace.h"
+#include "pbd/types_convert.h"
#include "pbd/compose.h"
#include "midi++/types.h" // Added by JE - 06-01-2009. All instances of 'byte' changed to 'MIDI::byte' (for clarification)
@@ -719,25 +720,24 @@ MIDIControllable::write_feedback (MIDI::byte* buf, int32_t& bufsize, bool /*forc
int
MIDIControllable::set_state (const XMLNode& node, int /*version*/)
{
- const XMLProperty* prop;
int xx;
- if ((prop = node.property ("event")) != 0) {
- sscanf (prop->value().c_str(), "0x%x", &xx);
+ std::string str;
+ if (node.get_property ("event", str)) {
+ sscanf (str.c_str(), "0x%x", &xx);
control_type = (MIDI::eventType) xx;
} else {
return -1;
}
- if ((prop = node.property ("channel")) != 0) {
- sscanf (prop->value().c_str(), "%d", &xx);
- control_channel = (MIDI::channel_t) xx;
+ if (node.get_property ("channel", xx)) {
+ control_channel = xx;
} else {
return -1;
}
- if ((prop = node.property ("additional")) != 0) {
- sscanf (prop->value().c_str(), "0x%x", &xx);
+ if (node.get_property ("additional", str)) {
+ sscanf (str.c_str(), "0x%x", &xx);
control_additional = (MIDI::byte) xx;
} else {
return -1;
@@ -756,18 +756,17 @@ MIDIControllable::get_state ()
XMLNode* node = new XMLNode ("MIDIControllable");
if (_current_uri.empty()) {
- node->add_property ("id", controllable->id().to_s());
+ node->set_property ("id", controllable->id ());
} else {
- node->add_property ("uri", _current_uri);
- }
+ node->set_property ("uri", _current_uri);
+ }
if (controllable) {
snprintf (buf, sizeof(buf), "0x%x", (int) control_type);
- node->add_property ("event", buf);
- snprintf (buf, sizeof(buf), "%d", (int) control_channel);
- node->add_property ("channel", buf);
+ node->set_property ("event", (const char *)buf);
+ node->set_property ("channel", (int16_t)control_channel);
snprintf (buf, sizeof(buf), "0x%x", (int) control_additional);
- node->add_property ("additional", buf);
+ node->set_property ("additional", (const char *)buf);
}
return *node;