diff options
Diffstat (limited to 'libs/midi++2/midiport.cc')
-rw-r--r-- | libs/midi++2/midiport.cc | 16 |
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 () |