diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-10-11 22:07:47 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-10-11 22:07:47 +0000 |
commit | f7f9d6fdc40248b190ec9c6e1a886261d55777ae (patch) | |
tree | 080723e9dc35a66013b37acbafc67a6afa929302 /libs/midi++2/jack_midiport.cc | |
parent | aa1f736a651376534acaa2268b65d42a3786fff7 (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.cc | 47 |
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) +{ +} |