summaryrefslogtreecommitdiff
path: root/libs/midi++2/coremidi_midiport.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/midi++2/coremidi_midiport.cc')
-rw-r--r--libs/midi++2/coremidi_midiport.cc31
1 files changed, 19 insertions, 12 deletions
diff --git a/libs/midi++2/coremidi_midiport.cc b/libs/midi++2/coremidi_midiport.cc
index e950da2949..4349ea45f4 100644
--- a/libs/midi++2/coremidi_midiport.cc
+++ b/libs/midi++2/coremidi_midiport.cc
@@ -122,22 +122,29 @@ void CoreMidi_MidiPort::read_proc (const MIDIPacketList *pktlist, void *refCon,
if (driver->firstrecv) {
driver->firstrecv = false;
- PBD::notify_gui_about_thread_creation (pthread_self(), "COREMIDI");
+ PBD::notify_gui_about_thread_creation ("gui", pthread_self(), "COREMIDI", 256);
}
for (unsigned int i = 0; i < pktlist->numPackets; ++i) {
-
- driver->bytes_read += packet->length;
-
+
+ driver->bytes_read += packet->length;
+
if (driver->input_parser) {
- driver->input_parser->raw_preparse (*driver->input_parser, packet->data, packet->length);
- for (int i = 0; i < packet->length; i++) {
- driver->input_parser->scanner (packet->data[i]);
- }
- driver->input_parser->raw_postparse (*driver->input_parser, packet->data, packet->length);
- }
-
- packet = MIDIPacketNext(packet);
+ //driver->input_parser->raw_preparse (*driver->input_parser, packet->data, packet->length);
+
+ /* XXX This is technically the wrong timebase, since it is based on
+ host time.
+ */
+ driver->input_parser->set_timestamp (packet->timestamp);
+
+ for (int i = 0; i < packet->length; i++) {
+ driver->input_parser->scanner (packet->data[i]);
+ }
+
+ //driver->input_parser->raw_postparse (*driver->input_parser, packet->data, packet->length);
+ }
+
+ packet = MIDIPacketNext(packet);
}
}