diff options
author | Hans Baier <hansfbaier@googlemail.com> | 2008-11-22 15:40:19 +0000 |
---|---|---|
committer | Hans Baier <hansfbaier@googlemail.com> | 2008-11-22 15:40:19 +0000 |
commit | 2f07b77503f01e75970241e3aa4c9b6fc723a83f (patch) | |
tree | 6689c54d7d37509e92cb52ef514f466280096b79 /libs/midi++2/jack_midiport.cc | |
parent | 5de817c2509b3f8ab35e1aea7292e84ca51037ab (diff) |
* added XML deserialisation for control and program changes
* added pointer checks
* fixed typos in comments
git-svn-id: svn://localhost/ardour2/branches/3.0@4234 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/jack_midiport.cc')
-rw-r--r-- | libs/midi++2/jack_midiport.cc | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/libs/midi++2/jack_midiport.cc b/libs/midi++2/jack_midiport.cc index 6f3661d937..0464649989 100644 --- a/libs/midi++2/jack_midiport.cc +++ b/libs/midi++2/jack_midiport.cc @@ -60,28 +60,32 @@ JACK_MidiPort::cycle_start (nframes_t nframes) _last_read_index = 0; _last_write_timestamp = 0; - // output - void *buffer = jack_port_get_buffer (_jack_output_port, nframes); - jack_midi_clear_buffer (buffer); - flush (buffer); + if (_jack_output_port != 0) { + // output + void *buffer = jack_port_get_buffer (_jack_output_port, nframes); + jack_midi_clear_buffer (buffer); + flush (buffer); + } - // input - void* jack_buffer = jack_port_get_buffer(_jack_input_port, nframes); - const nframes_t event_count = jack_midi_get_event_count(jack_buffer); + if (_jack_input_port != 0) { + // input + void* jack_buffer = jack_port_get_buffer(_jack_input_port, nframes); + const nframes_t event_count = jack_midi_get_event_count(jack_buffer); - jack_midi_event_t ev; + jack_midi_event_t ev; - for (nframes_t i=0; i < event_count; ++i) { + for (nframes_t i=0; i < event_count; ++i) { - jack_midi_event_get (&ev, jack_buffer, i); + jack_midi_event_get (&ev, jack_buffer, i); - if (input_parser) { - for (size_t i = 0; i < ev.size; i++) { - // the midi events here are used for MIDI clock only - input_parser->set_midi_clock_timestamp(ev.time + jack_last_frame_time(_jack_client)); - input_parser->scanner (ev.buffer[i]); - } - } + if (input_parser) { + for (size_t i = 0; i < ev.size; i++) { + // the midi events here are used for MIDI clock only + input_parser->set_midi_clock_timestamp(ev.time + jack_last_frame_time(_jack_client)); + input_parser->scanner (ev.buffer[i]); + } + } + } } } |