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.
This commit is contained in:
Matthew Duggan 2020-05-01 13:27:43 +09:00 committed by GitHub
parent 6cb8460d44
commit e5501c7be4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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;
}