diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-23 16:23:48 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-23 16:23:48 +0000 |
commit | 6ca4b88d5a44c7467f1ef9af03fc1f7b44e30ae8 (patch) | |
tree | fb159043bf6d5b4804e4e31888cdaabddd07b733 /libs | |
parent | 1660f00ff3777b2bd52a4c73fe9aa43050f8ad34 (diff) |
libmidi++: fix a bunch of issues with previous commit
git-svn-id: svn://localhost/ardour2/branches/3.0@12065 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/midi++2/midi++/port_base.h | 2 | ||||
-rw-r--r-- | libs/midi++2/port.cc | 16 | ||||
-rw-r--r-- | libs/midi++2/port_base.cc | 3 |
3 files changed, 9 insertions, 12 deletions
diff --git a/libs/midi++2/midi++/port_base.h b/libs/midi++2/midi++/port_base.h index ceb7834643..f1649d84ba 100644 --- a/libs/midi++2/midi++/port_base.h +++ b/libs/midi++2/midi++/port_base.h @@ -141,7 +141,7 @@ class PortBase { Flags _flags; bool _centrally_parsed; - virtual void init (std::string const &, Flags); + void init (std::string const &, Flags); }; struct PortSet { diff --git a/libs/midi++2/port.cc b/libs/midi++2/port.cc index 06db2e14b8..ef1704857d 100644 --- a/libs/midi++2/port.cc +++ b/libs/midi++2/port.cc @@ -69,19 +69,15 @@ Port::Port (const XMLNode& node, jack_client_t* jack_client) , xthread (true) { assert (jack_client); - - Descriptor desc (node); + Descriptor desc (node); init (desc.tag, desc.flags); - set_state (node); } void Port::init (string const & name, Flags flags) { - PortBase::init (name, flags); - if (!create_port ()) { _ok = true; } @@ -250,8 +246,6 @@ Port::write(byte * msg, size_t msglen, timestamp_t timestamp) ret = msglen; - usleep (5000); - } else { // XXX This had to be temporarily commented out to make export work again @@ -306,7 +300,7 @@ Port::flush (void* jack_port_buffer) output_fifo.get_read_vector (&vec); if (vec.len[0] + vec.len[1]) { - cerr << "Flush " << vec.len[0] + vec.len[1] << " events from non-process FIFO\n"; + // cerr << "Flush " << vec.len[0] + vec.len[1] << " events from non-process FIFO\n"; } if (vec.len[0]) { @@ -410,9 +404,13 @@ Port::set_state (const XMLNode& node) { const XMLProperty* prop; + if ((prop = node.property ("tag")) == 0 || prop->value() != _tagname) { + return; + } + PortBase::set_state (node); - if ((prop = node.property ("connections")) != 0 && _jack_port) { + if ((prop = node.property ("connections")) != 0) { _connections = prop->value (); } } diff --git a/libs/midi++2/port_base.cc b/libs/midi++2/port_base.cc index 830dc4efe6..2910ace2a9 100644 --- a/libs/midi++2/port_base.cc +++ b/libs/midi++2/port_base.cc @@ -52,12 +52,11 @@ PortBase::PortBase (string const & name, Flags flags) PortBase::PortBase (const XMLNode& node) : _centrally_parsed (true) { - Descriptor desc (node); init (desc.tag, desc.flags); - set_state (node); + /* derived class must call ::set_state() */ } void |