Readme.txt

SampleUSBAudioPlugin
 
This project provides an example of how to write a simple USB audio plug-in.  This plug-in performs a lowpass filtering operation on both an input and output audio stream.
 
To specify a specific audio device for this sample code project to use, you will need to modify the project's Info.plist file and pluginInit() routine in SampleUSBAudioPlugin.cpp.
You must modify the IOPropertyMatch key in Info.plist. These values must be changed to match to your device.  Modify the Info.plist entry IOPropertyMatch to match to the hex values of the idVendor and idProduct of your device.  Do the same for vendorID & productID in SampleUSBAudioPlugin.cpp.
 
You can discover these values by using developer applications like IORegistryExplorer or USBProber.
You will also need to change these values in  SampleUSBAudioPlugin::pluginInit(..).
 
The target produces SampleUSBAudioPlugin.kext which must be copied to the 
/System/Library/Extensions folder of the boot volume by an administrator using a 
command like (from the project folder):
 
sudo cp -rf ./build/SampleUSBAudioPlugin.kext /System/Library/Extensions
 
Your plugin must have the correct ownership (root , wheel):
sudo chown -R root:wheel SampleUSBAudioPlugin.kext/
 
Your plugin must have the correct permissions (755):
sudo chmod -R 755 SampleUSBAudioPlugin.kext/
 
Then you must notify the operating system that the contents of the kernel extension directory has 
changed by "touching the directory":
 
sudo touch /System/Library/Extensions
 
Restart the system.
 
After restarting the system, the plug-in should automatically load when the device
specified in the Info.plist (accessible from the Targets->SampleUSBAudioPlugin ->Get Info -> Properties) 
is attached. Plug-in logging can be observed using Console in /Applications/Utilities 
on the boot volume.