From b9fd25ea18f3e87530e1558cc377f36645fcd980 Mon Sep 17 00:00:00 2001 From: Fernando Cosentino Date: Fri, 29 Dec 2023 23:29:10 +0000 Subject: Add MIDI controller device index to InputEventMIDI.device property. It is possible to query the OS for the connected MIDI controllers, but the event messages' device field was not being used. This implements controller index being sent in InputEventMIDI messages in the device property, matching the index from OS.get_connected_midi_inputs(). Based on the work done by @ramdor. Closes godotengine/godot-proposals#7733 Co-authored-by: Richie --- drivers/winmidi/midi_driver_winmidi.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/winmidi/midi_driver_winmidi.cpp') diff --git a/drivers/winmidi/midi_driver_winmidi.cpp b/drivers/winmidi/midi_driver_winmidi.cpp index cdbab489c4..07f0226c5d 100644 --- a/drivers/winmidi/midi_driver_winmidi.cpp +++ b/drivers/winmidi/midi_driver_winmidi.cpp @@ -36,7 +36,7 @@ void MIDIDriverWinMidi::read(HMIDIIN hMidiIn, UINT wMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2) { if (wMsg == MIM_DATA) { - receive_input_packet((uint64_t)dwParam2, (uint8_t *)&dwParam1, 3); + receive_input_packet((int)dwInstance, (uint64_t)dwParam2, (uint8_t *)&dwParam1, 3); } } @@ -44,7 +44,7 @@ Error MIDIDriverWinMidi::open() { for (UINT i = 0; i < midiInGetNumDevs(); i++) { HMIDIIN midi_in; - MMRESULT res = midiInOpen(&midi_in, i, (DWORD_PTR)read, (DWORD_PTR)this, CALLBACK_FUNCTION); + MMRESULT res = midiInOpen(&midi_in, i, (DWORD_PTR)read, (DWORD_PTR)i, CALLBACK_FUNCTION); if (res == MMSYSERR_NOERROR) { midiInStart(midi_in); connected_sources.insert(i, midi_in); -- cgit v1.2.3