diff options
-rw-r--r-- | tools/osx/simulator-osx.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/tools/osx/simulator-osx.c b/tools/osx/simulator-osx.c index 57b0f38..08a7b9a 100644 --- a/tools/osx/simulator-osx.c +++ b/tools/osx/simulator-osx.c | |||
@@ -91,27 +91,34 @@ static void processPacket(const unsigned char *data, int length) | |||
91 | case NOTEON: | 91 | case NOTEON: |
92 | case NOTEOFF: | 92 | case NOTEOFF: |
93 | app_surface_event(TYPEPAD, data[1], data[2]); | 93 | app_surface_event(TYPEPAD, data[1], data[2]); |
94 | data += 3; | ||
94 | length -= 3; | 95 | length -= 3; |
95 | break; | 96 | break; |
96 | 97 | ||
97 | case CC: | 98 | case CC: |
98 | app_surface_event(TYPEPAD, data[1], data[2]); | 99 | app_surface_event(TYPEPAD, data[1], data[2]); |
100 | data += 3; | ||
99 | length -= 3; | 101 | length -= 3; |
100 | break; | 102 | break; |
101 | 103 | ||
102 | case POLYAFTERTOUCH: | 104 | case POLYAFTERTOUCH: |
103 | app_aftertouch_event(data[1], data[2]); | 105 | app_aftertouch_event(data[1], data[2]); |
106 | data += 3; | ||
104 | length -= 3; | 107 | length -= 3; |
105 | break; | 108 | break; |
106 | 109 | ||
107 | default: | 110 | default: |
111 | // Don't know this message, so bail | ||
112 | length--; | ||
113 | data++; | ||
108 | break; | 114 | break; |
109 | } | 115 | } |
110 | } | 116 | } |
111 | else | 117 | else |
112 | { | 118 | { |
113 | // We expected at least three bytes and didn't get them, so bail | 119 | // We expected at least three bytes and didn't get them, so bail |
114 | length = 0; | 120 | length--; |
121 | data++; | ||
115 | } | 122 | } |
116 | } | 123 | } |
117 | } | 124 | } |