diff options
Diffstat (limited to 'backends/midi/coremidi.cpp')
-rw-r--r-- | backends/midi/coremidi.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/backends/midi/coremidi.cpp b/backends/midi/coremidi.cpp index efbdaad4e4..da82249792 100644 --- a/backends/midi/coremidi.cpp +++ b/backends/midi/coremidi.cpp @@ -26,7 +26,7 @@ #include "common/config-manager.h" #include "common/util.h" -#include "sound/midiplugin.h" +#include "sound/musicplugin.h" #include "sound/mpu401.h" #include <CoreMIDI/CoreMIDI.h> @@ -179,24 +179,29 @@ void MidiDriver_CoreMIDI::sysEx(const byte *msg, uint16 length) { // Plugin interface -class CoreMIDIMidiPlugin : public MidiPluginObject { +class CoreMIDIMusicPlugin : public MusicPluginObject { public: - virtual const char *getName() const { + const char *getName() const { return "CoreMIDI"; } - virtual const char *getId() const { + const char *getId() const { return "coremidi"; } - virtual int getCapabilities() const { - return MDT_MIDI; - } - - virtual PluginError createInstance(Audio::Mixer *mixer, MidiDriver **mididriver) const; + MusicDevices getDevices() const; + PluginError createInstance(Audio::Mixer *mixer, MidiDriver **mididriver) const; }; -PluginError CoreMIDIMidiPlugin::createInstance(Audio::Mixer *mixer, MidiDriver **mididriver) const { +MusicDevices CoreMIDIMusicPlugin::getDevices() const { + MusicDevices devices; + // TODO: Return a different music type depending on the configuration + // TODO: List the available devices + devices.push_back(MusicDevice(this, "", MT_GM)); + return devices; +} + +PluginError CoreMIDIMusicPlugin::createInstance(Audio::Mixer *mixer, MidiDriver **mididriver) const { *mididriver = new MidiDriver_CoreMIDI(); return kNoError; @@ -205,16 +210,16 @@ PluginError CoreMIDIMidiPlugin::createInstance(Audio::Mixer *mixer, MidiDriver * MidiDriver *MidiDriver_CoreMIDI_create(Audio::Mixer *mixer) { MidiDriver *mididriver; - CoreMIDIMidiPlugin p; + CoreMIDIMusicPlugin p; p.createInstance(mixer, &mididriver); return mididriver; } //#if PLUGIN_ENABLED_DYNAMIC(COREMIDI) - //REGISTER_PLUGIN_DYNAMIC(COREMIDI, PLUGIN_TYPE_MIDI, CoreMIDIMidiPlugin); + //REGISTER_PLUGIN_DYNAMIC(COREMIDI, PLUGIN_TYPE_MUSIC, CoreMIDIMusicPlugin); //#else - REGISTER_PLUGIN_STATIC(COREMIDI, PLUGIN_TYPE_MIDI, CoreMIDIMidiPlugin); + REGISTER_PLUGIN_STATIC(COREMIDI, PLUGIN_TYPE_MUSIC, CoreMIDIMusicPlugin); //#endif #endif // MACOSX |