briankendall / proxy-audio-device

A virtual audio driver for macOS to sends all audio to another output
The Unlicense
514 stars 33 forks source link

Any good documentation #11

Closed Raj123456788 closed 3 years ago

Raj123456788 commented 3 years ago

Thank you for the repo. New to driver development. Any good reference documentation links would be helpful. Cheers!

briankendall commented 3 years ago

Sadly Apple's documentation for CoreAudio is very lacking. I never found any documentation about the API I'm using, only an example project, NullAudio, which is where most of the boilerplate in Proxy Audio Device comes from. I'd start there if you'd like to implement a similar HAL plug-in. That said, I can't even find a link to the NullAudio example on Apple's developer website any longer!

Raj123456788 commented 3 years ago

No worries. I appreciate the response😊. How did you debug proxy-audio-device? Any idea?

briankendall commented 3 years ago

You can actually see how I did it in debugHelpers.h in the project. I use a macro named DebugMsg that calls syslog in debug builds. You can see those messages printed in Console.app, and I filter the output in there using a text search for "ProxyAudio". This isn't necessarily the best way to get print statements out of the driver, but it works.

And if you want to attach a debugger to it, I don't actually know. But in theory it's possible to debug coreaudiod, perhaps even with Xcode. It will probably require disabling System Integrity Protection.

Raj123456788 commented 3 years ago

Thank you so much for the information @briankendall . If you ever get a chance, it would be helpful if you can create a rough sketch of flow diagram. I will try to fix it for M1 @Big Sur once we have one.

kasimok commented 1 year ago

@Raj123456788 https://developer.apple.com/forums/thread/712359?login=true I'm able to debug now.