Re: USB-MIDI driver in which built-in module?
Re: USB-MIDI driver in which built-in module?
- Subject: Re: USB-MIDI driver in which built-in module?
- From: Doug Wyatt <email@hidden>
- Date: Thu, 7 Jun 2001 08:19:52 -0700
From: Brian Willoughby <email@hidden>
Date: Tue, 5 Jun 2001 13:49:19 -0700
To: CoreAudio API <email@hidden>
Subject: USB-MIDI driver in which built-in module?
Which of the built-in drivers handles the support for USB devices which follow
the USB-MIDI spec? IOUSBFamily, AppleUSBAudio, ???
There isn't an IOKit driver for MIDI. There's AppleMIDIDriver.plugin
(in /System/Library/Extensions) which is loaded by the MIDI server.
It is implemented as an IOUSBFamily user client.
Maybe I have the wrong idea of how drivers and the MIDI subsystem are
organized, but I believe that a custom MIDI driver would inherit code from
CoreMIDIServer.framework and be identified with a specific device.
No, it can be based on the sample USB driver in
/Developer/Examples/CoreAudio/MIDI, which is packaged as a C++ base
class. The driver developer only has to override a few methods. A
MIDI driver gets built as a CFPlugIn.
However,
not all USB devices require a custom driver, since Apple provides generic
support for devices that follow the various sections of the USB spec. A
general USB device which follows the USB-MIDI specification, for example,
should NOT need a custom driver in Mac OS X, but would still enjoy
MIDI support
from the built-in drivers.
Right.
Does this mean that somewhere in the generic USB
drivers there is code for USB-MIDI?
No.
For example, the Darwin source for the AppleUSBAudio Kernel Extension project
has a USBAudioConfigObject::ParseConfigurationDescriptor method which only
understands the AUDIOCONTROL and AUDIOSTREAMING interface subclass codes, but
not the MIDISTREAMING subclass code that a USB-MIDI device would list. I
assume that there is an extension with a class overriding this code
which DOES
recognize MIDISTREAMING for generic support of USB-MIDI devices which follow
the spec. Where does this code live, so I can request that the
Darwin team add
it to the repository?
The MIDI drivers are not in Darwin.
Doug
--
Doug Wyatt
Core Audio
Apple
408 974 9314