summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_tracer.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-07 23:49:29 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-07 23:49:29 +0000
commita15bdfc6d9b42b4078976da54bdd84325cea3d16 (patch)
treefe3c2d32c415cff4b025605297c1f97492380fde /gtk2_ardour/midi_tracer.cc
parent10ef65b696492e5e6e9abe009f2e2c4a3af51994 (diff)
Trace MTC more nicely.
git-svn-id: svn://localhost/ardour2/branches/3.0@7390 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_tracer.cc')
-rw-r--r--gtk2_ardour/midi_tracer.cc87
1 files changed, 46 insertions, 41 deletions
diff --git a/gtk2_ardour/midi_tracer.cc b/gtk2_ardour/midi_tracer.cc
index a1ac7e14f9..e40fbca590 100644
--- a/gtk2_ardour/midi_tracer.cc
+++ b/gtk2_ardour/midi_tracer.cc
@@ -249,52 +249,57 @@ MidiTracer::tracer (Parser&, byte* msg, size_t len)
break;
}
- } else {
-
- if (len > 5 && msg[0] == 0xf0 && msg[1] == 0x7f && msg[3] == 0x06) {
- /* MMC */
- int cmd = msg[4];
- if (cmd == 0x44 && msg[5] == 0x06 && msg[6] == 0x01) {
- s += snprintf (
- &buf[s], bufsize, " MMC locate to %02d:%02d:%02d:%02d.%02d\n",
- msg[7], msg[8], msg[9], msg[10], msg[11]
- );
+ } else if (len > 5 && msg[0] == 0xf0 && msg[1] == 0x7f && msg[3] == 0x06) {
+ /* MMC */
+ int cmd = msg[4];
+ if (cmd == 0x44 && msg[5] == 0x06 && msg[6] == 0x01) {
+ s += snprintf (
+ &buf[s], bufsize, " MMC locate to %02d:%02d:%02d:%02d.%02d\n",
+ msg[7], msg[8], msg[9], msg[10], msg[11]
+ );
+ } else {
+ std::string name;
+ if (cmd == 0x1) {
+ name = "STOP";
+ } else if (cmd == 0x3) {
+ name = "DEFERRED PLAY";
+ } else if (cmd == 0x6) {
+ name = "RECORD STROBE";
+ } else if (cmd == 0x7) {
+ name = "RECORD EXIT";
+ } else if (cmd == 0x8) {
+ name = "RECORD PAUSE";
+ }
+ if (!name.empty()) {
+ s += snprintf (&buf[s], bufsize, " MMC command %s\n", name.c_str());
} else {
- std::string name;
- if (cmd == 0x1) {
- name = "STOP";
- } else if (cmd == 0x3) {
- name = "DEFERRED PLAY";
- } else if (cmd == 0x6) {
- name = "RECORD STROBE";
- } else if (cmd == 0x7) {
- name = "RECORD EXIT";
- } else if (cmd == 0x8) {
- name = "RECORD PAUSE";
- }
- if (!name.empty()) {
- s += snprintf (&buf[s], bufsize, " MMC command %s\n", name.c_str());
- } else {
- s += snprintf (&buf[s], bufsize, " MMC command %02x\n", cmd);
- }
+ s += snprintf (&buf[s], bufsize, " MMC command %02x\n", cmd);
}
-
- } else {
- /* other sys-ex */
+ }
+
+ } else if (len == 10 && msg[0] == 0xf0 && msg[1] == 0x7f && msg[9] == 0xf7) {
- s += snprintf (&buf[s], bufsize, "%16s (%d) = [", "Sysex", (int) len);
- bufsize -= s;
-
- for (unsigned int i = 0; i < len && bufsize > 3; ++i) {
- if (i > 0) {
- s += snprintf (&buf[s], bufsize, " %02x", msg[i]);
- } else {
- s += snprintf (&buf[s], bufsize, "%02x", msg[i]);
- }
- bufsize -= s;
+ /* MTC full frame */
+ s += snprintf (
+ &buf[s], bufsize, " MTC full frame to %02d:%02d:%02d:%02d\n", msg[5] & 0x1f, msg[6], msg[7], msg[8]
+ );
+
+ } else {
+
+ /* other sys-ex */
+
+ s += snprintf (&buf[s], bufsize, "%16s (%d) = [", "Sysex", (int) len);
+ bufsize -= s;
+
+ for (unsigned int i = 0; i < len && bufsize > 3; ++i) {
+ if (i > 0) {
+ s += snprintf (&buf[s], bufsize, " %02x", msg[i]);
+ } else {
+ s += snprintf (&buf[s], bufsize, "%02x", msg[i]);
}
- s += snprintf (&buf[s], bufsize, "]\n");
+ bufsize -= s;
}
+ s += snprintf (&buf[s], bufsize, "]\n");
}
break;