summaryrefslogtreecommitdiff
path: root/libs/evoral/src/MIDIEvent.cpp
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2008-11-22 15:40:19 +0000
committerHans Baier <hansfbaier@googlemail.com>2008-11-22 15:40:19 +0000
commit2f07b77503f01e75970241e3aa4c9b6fc723a83f (patch)
tree6689c54d7d37509e92cb52ef514f466280096b79 /libs/evoral/src/MIDIEvent.cpp
parent5de817c2509b3f8ab35e1aea7292e84ca51037ab (diff)
* added XML deserialisation for control and program changes
* added pointer checks * fixed typos in comments git-svn-id: svn://localhost/ardour2/branches/3.0@4234 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/evoral/src/MIDIEvent.cpp')
-rw-r--r--libs/evoral/src/MIDIEvent.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/libs/evoral/src/MIDIEvent.cpp b/libs/evoral/src/MIDIEvent.cpp
index 35161515d6..7617d2ae9a 100644
--- a/libs/evoral/src/MIDIEvent.cpp
+++ b/libs/evoral/src/MIDIEvent.cpp
@@ -22,14 +22,24 @@ namespace Evoral {
#ifdef EVORAL_MIDI_XML
-MIDIEvent::MIDIEvent(const XMLNode& event)
+MIDIEvent::MIDIEvent(const XMLNode& event)
+ : Event()
{
string name = event.name();
if (name == "ControlChange") {
+ _buffer = (uint8_t*) ::malloc(3);
+ _owns_buffer = true;
+ set_type(MIDI_CMD_CONTROL);
+ set_cc_number(atoi(event.property("Control")->value().c_str()));
+ set_cc_value (atoi(event.property("Value")->value().c_str()));
} else if (name == "ProgramChange") {
-
+ _buffer = (uint8_t*) ::malloc(2);
+ _owns_buffer = true;
+ set_type(MIDI_CMD_PGM_CHANGE);
+
+ set_pgm_number(atoi(event.property("Number")->value().c_str()));
}
}