summaryrefslogtreecommitdiff
path: root/libs/midi++2/jack_midiport.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-10-11 22:07:47 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-10-11 22:07:47 +0000
commitf7f9d6fdc40248b190ec9c6e1a886261d55777ae (patch)
tree080723e9dc35a66013b37acbafc67a6afa929302 /libs/midi++2/jack_midiport.cc
parentaa1f736a651376534acaa2268b65d42a3786fff7 (diff)
merge from 2.0-ongoing by hand, minus key binding editor
git-svn-id: svn://localhost/ardour2/trunk@2539 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/jack_midiport.cc')
-rw-r--r--libs/midi++2/jack_midiport.cc47
1 files changed, 27 insertions, 20 deletions
diff --git a/libs/midi++2/jack_midiport.cc b/libs/midi++2/jack_midiport.cc
index 4b2808a698..11cd70a051 100644
--- a/libs/midi++2/jack_midiport.cc
+++ b/libs/midi++2/jack_midiport.cc
@@ -23,26 +23,22 @@
#include <midi++/types.h>
#include <midi++/jack.h>
-#include <midi++/port_request.h>
using namespace std;
using namespace MIDI;
-JACK_MidiPort::JACK_MidiPort(PortRequest & req, jack_client_t* jack_client)
- : Port(req)
+JACK_MidiPort::JACK_MidiPort(const XMLNode& node, jack_client_t* jack_client)
+ : Port(node)
, _jack_client(jack_client)
, _jack_input_port(NULL)
, _jack_output_port(NULL)
, _last_read_index(0)
{
- int err = create_ports(req);
+ int err = create_ports (node);
if (!err) {
- req.status = PortRequest::OK;
_ok = true;
- } else {
- req.status = PortRequest::Unknown;
- }
+ }
}
JACK_MidiPort::~JACK_MidiPort()
@@ -94,8 +90,10 @@ JACK_MidiPort::read(byte * buf, size_t max, timestamp_t timestamp)
}
int
-JACK_MidiPort::create_ports(PortRequest & req)
+JACK_MidiPort::create_ports(const XMLNode& node)
{
+ Descriptor desc (node);
+
assert(!_jack_input_port);
assert(!_jack_output_port);
@@ -103,24 +101,33 @@ JACK_MidiPort::create_ports(PortRequest & req)
bool ret = true;
- if (req.mode == O_RDWR || req.mode == O_WRONLY) {
+ if (desc.mode == O_RDWR || desc.mode == O_WRONLY) {
_jack_output_port = jack_port_register(_jack_client,
- string(req.tagname).append("_out").c_str(),
- JACK_DEFAULT_MIDI_TYPE, JackPortIsOutput, 0);
- jack_midi_clear_buffer(
- jack_port_get_buffer(_jack_output_port, nframes));
+ string(desc.tag).append("_out").c_str(),
+ JACK_DEFAULT_MIDI_TYPE, JackPortIsOutput, 0);
+ jack_midi_clear_buffer(jack_port_get_buffer(_jack_output_port, nframes));
ret = ret && (_jack_output_port != NULL);
}
-
- if (req.mode == O_RDWR || req.mode == O_RDONLY) {
+
+ if (desc.mode == O_RDWR || desc.mode == O_RDONLY) {
_jack_input_port = jack_port_register(_jack_client,
- string(req.tagname).append("_in").c_str(),
- JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0);
- jack_midi_clear_buffer(
- jack_port_get_buffer(_jack_input_port, nframes));
+ string(desc.tag).append("_in").c_str(),
+ JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0);
+ jack_midi_clear_buffer(jack_port_get_buffer(_jack_input_port, nframes));
ret = ret && (_jack_input_port != NULL);
}
return ret ? 0 : -1;
}
+XMLNode&
+JACK_MidiPort::get_state () const
+{
+ XMLNode& root (Port::get_state ());
+ return root;
+}
+
+void
+JACK_MidiPort::set_state (const XMLNode& node)
+{
+}