hi again all, before i begin my testing, i wanted to ask about handling rudimentary MIDI calls.
the documentation reads: > "Note: MIDI device drivers are not I/O Kit drivers. The MIDI device driver > model is based on the CFPlugIn architecture and typically loads a CFPlugIn > bundle from /System/Library/Extensions or Library/Audio/MIDI Drivers. > > For MIDI devices that cannot be directly addressed from a user-space device > driver (for example, a MIDI interface built into a PCI card), you must split > your driver into two parts: an I/O Kit device driver that matches against the > device and a CFPlugIn bundle that manipulates the I/O Kit driver using a user > client.” (https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/WritingAudioDrivers/AudioOnMacOSX/AudioOnMacOSX.html#//apple_ref/doc/uid/TP30000730-TPXREF103) this is exactly the case i’m trying to handle, but i’m not sure if a PCIAudioDevice driver is considered user-space or not. -this may sound like a noobish confession, but i understand this line is drawn differently for BSD and Linux, and i don’t know where exactly it was at the time these docs were writen. -i do know that the newer (bad) SampleIOAudioDevice (from wwdc21) driver highlights being more “user-space”, so maybe a driver written for IOKit is considered “kernel space” anyways, i have a MIDI device that should be accessible within the device driver, as Clemens does here with the creation of am MPU401 device: https://elixir.bootlin.com/linux/v4.14.298/source/sound/pci/oxygen/oxygen_lib.c#L702 i have googled around the terms “ioaudiodevice” and midi, only to find nothing. the OS-X and Kernel Programming book by halvorson and clarke says: "Core MIDI / MIDI Server framework contains APIs for working MIDI.” i was hoping one of the readers could point me to some documentation that may be helpful on this topic. i am hopeful the midi/uart interface can be dealt with inside the driver. and if it can’t, i am hoping this bundle i’d need to write wouldn’t be that bad. but i already have all of the uart stuff put in the right spot, so it’s just a matter of having a way to handle a uart interrupt on the workloop for a midi device. see the interrupt handling for the driver here: https://elixir.bootlin.com/linux/v4.14.298/source/sound/pci/oxygen/oxygen_lib.c#L117 i just converted this function to the IOWorkLoop-equivalent. Thanks, Gagan _______________________________________________ Do not post admin requests to the list. They will be ignored. Coreaudio-api mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com This email sent to [email protected]
