diff options
author | Hans Baier <hansfbaier@googlemail.com> | 2008-11-22 15:40:19 +0000 |
---|---|---|
committer | Hans Baier <hansfbaier@googlemail.com> | 2008-11-22 15:40:19 +0000 |
commit | 2f07b77503f01e75970241e3aa4c9b6fc723a83f (patch) | |
tree | 6689c54d7d37509e92cb52ef514f466280096b79 /libs/evoral/src | |
parent | 5de817c2509b3f8ab35e1aea7292e84ca51037ab (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')
-rw-r--r-- | libs/evoral/src/MIDIEvent.cpp | 14 |
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())); } } |