From e5501c7be43ff369b2d6be0d9cec7ce8e224fdce Mon Sep 17 00:00:00 2001 From: Matthew Duggan Date: Fri, 1 May 2020 13:27:43 +0900 Subject: [PATCH] BASE: Move CoreMIDI to end of list to speed up finding the right device (#2193) CoreMIDI provides hardware midi device support. On my MacBook, the first call to MIDIGetNumberOfDestinations() takes around 2 seconds. Using one of the midi devices lower on the plugin list (mt32, fluidsynth, etc) takes 2 extra seconds on every game start as MidiDriver::getDeviceHandle() enumerates all the plugins to find the right one. This change simply moves CoreMIDI to the bottom of the list. It will still take 2 extra seconds when opening the options box, but that's a rare operation relative to starting games. --- base/plugins.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/base/plugins.cpp b/base/plugins.cpp index cb9d172d0b2..c3ee99e6b64 100644 --- a/base/plugins.cpp +++ b/base/plugins.cpp @@ -116,7 +116,6 @@ public: #endif #if defined(MACOSX) LINK_PLUGIN(COREAUDIO) - LINK_PLUGIN(COREMIDI) #endif #ifdef USE_FLUIDSYNTH LINK_PLUGIN(FLUIDSYNTH) @@ -141,6 +140,11 @@ public: #if defined(USE_TIMIDITY) LINK_PLUGIN(TIMIDITY) #endif + #if defined(MACOSX) + // Keep this at the end of the list - it takes a long time to enumerate + // and is only for hardware midi devices + LINK_PLUGIN(COREMIDI) + #endif return pl; }