summaryrefslogtreecommitdiff
path: root/libs/midi++2/midiport.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/midi++2/midiport.cc')
-rw-r--r--libs/midi++2/midiport.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/midi++2/midiport.cc b/libs/midi++2/midiport.cc
index a42aac2984..a4b28ce461 100644
--- a/libs/midi++2/midiport.cc
+++ b/libs/midi++2/midiport.cc
@@ -21,10 +21,13 @@
#include <cstdio>
#include <fcntl.h>
+#include <pbd/xml++.h>
+
#include <midi++/types.h>
#include <midi++/port.h>
#include <midi++/channel.h>
#include <midi++/port_request.h>
+#include <midi++/factory.h>
//using namespace Select;
using namespace MIDI;
@@ -47,7 +50,6 @@ Port::Port (PortRequest &req)
_devname = req.devname;
_tagname = req.tagname;
_mode = req.mode;
- _number = nports++;
if (_mode == O_RDONLY || _mode == O_RDWR) {
input_parser = new Parser (*this);
@@ -83,6 +85,18 @@ Port::~Port ()
}
}
+XMLNode&
+Port::get_state () const
+{
+ XMLNode* node = new XMLNode ("MIDI-port");
+ node->add_property ("tag", _tagname);
+ node->add_property ("device", _devname);
+ node->add_property ("mode", PortFactory::mode_to_string (_mode));
+ node->add_property ("type", get_typestring());
+
+ return *node;
+}
+
int
Port::clock ()