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]

Reply via email to