[PATCH v2 6/6] wineoss: Combine midReceiveChar() into handle_midi_data().
Andrew Eikum
aeikum at codeweavers.com
Thu Apr 28 08:51:27 CDT 2022
From: Huw Davies <huw at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---
dlls/wineoss.drv/midi.c | 39 ++++++++++++++-------------------------
1 file changed, 14 insertions(+), 25 deletions(-)
diff --git a/dlls/wineoss.drv/midi.c b/dlls/wineoss.drv/midi.c
index 564a2431472..e36a737624a 100644
--- a/dlls/wineoss.drv/midi.c
+++ b/dlls/wineoss.drv/midi.c
@@ -304,39 +304,28 @@ static void handle_regular_data(struct midi_src *src, unsigned char value, UINT
}
}
-/**************************************************************************
- * midReceiveChar [internal]
- */
-static void midReceiveChar(WORD wDevID, unsigned char value, DWORD dwTime)
-{
- TRACE("Adding %02xh to %d[%d]\n", value, wDevID, MidiInDev[wDevID].incLen);
-
- if (wDevID >= MIDM_NumDevs) {
- WARN("bad devID\n");
- return;
- }
- if (MidiInDev[wDevID].state <= 0) {
- TRACE("disabled or input not started, thrown away\n");
- return;
- }
-
- dwTime -= MidiInDev[wDevID].startTime;
-
- if (value == 0xf0 || MidiInDev[wDevID].state & 2) /* system exclusive */
- handle_sysex_data(MidiInDev + wDevID, value, dwTime);
- else
- handle_regular_data(MidiInDev + wDevID, value, dwTime);
-}
-
static void handle_midi_data(unsigned char *buffer, unsigned int len)
{
unsigned int time = GetTickCount(), i;
+ struct midi_src *src;
+ unsigned char value;
+ WORD dev_id;
for (i = 0; i < len; i += (buffer[i] & 0x80) ? 8 : 4)
{
if (buffer[i] != SEQ_MIDIPUTC) continue;
- midReceiveChar(buffer[i + 2], buffer[i + 1], time);
+ dev_id = buffer[i + 2];
+ value = buffer[i + 1];
+
+ if (dev_id >= MIDM_NumDevs) continue;
+ src = MidiInDev + dev_id;
+ if (src->state <= 0) continue;
+
+ if (value == 0xf0 || src->state & 2) /* system exclusive */
+ handle_sysex_data(src, value, time - src->startTime);
+ else
+ handle_regular_data(src, value, time - src->startTime);
}
}
--
2.36.0
More information about the wine-devel
mailing list