diff options
-rw-r--r-- | libs/midi++2/midi++/midnam_patch.h | 21 | ||||
-rw-r--r-- | libs/midi++2/midnam_patch.cc | 20 |
2 files changed, 41 insertions, 0 deletions
diff --git a/libs/midi++2/midi++/midnam_patch.h b/libs/midi++2/midi++/midnam_patch.h index 775f46ec75..18100cf9be 100644 --- a/libs/midi++2/midi++/midnam_patch.h +++ b/libs/midi++2/midi++/midnam_patch.h @@ -88,6 +88,27 @@ private: PatchBanks _patch_banks; }; +class Note : public PBD::Stateful +{ +public: + Note() {}; + Note(string a_number, string a_name) : _number(a_number), _name(a_name) {}; + ~Note() {}; + + const string& name() const { return _name; } + void set_name(const string a_name) { _name = a_name; } + + const string& number() const { return _number; } + void set_number(const string a_number) { _number = a_number; } + + XMLNode& get_state (void); + int set_state (const XMLNode& a_node); + +private: + string _number; + string _name; +}; + class CustomDeviceMode : public PBD::Stateful { public: diff --git a/libs/midi++2/midnam_patch.cc b/libs/midi++2/midnam_patch.cc index 624701bcde..dbde6e240c 100644 --- a/libs/midi++2/midnam_patch.cc +++ b/libs/midi++2/midnam_patch.cc @@ -40,6 +40,26 @@ Patch::set_state (const XMLNode& node) } XMLNode& +Note::get_state (void) +{ + XMLNode* node = new XMLNode("Patch"); + node->add_property("Number", _number); + node->add_property("Name", _name); + + return *node; +} + +int +Note::set_state (const XMLNode& node) +{ + assert(node.name() == "Patch"); + _number = node.property("Number")->value(); + _name = node.property("Name")->value(); + + return 0; +} + +XMLNode& PatchBank::get_state (void) { XMLNode* node = new XMLNode("PatchBank"); |