We are developing a custom audio driver for a USB microphone in order to do simple processing (EQs) on the input audio stream (comparable to an APO for Windows). After some help, we managed to assign our Driver (based on the SimpleAudioDriver) to the right audio device. But we now have two devices showing up : one is assigned with our driver and the other one is assigned to the default driver. How can we override the original one with ours, to just have one device showing up ?
We already tried to add more IOKitPersonalities to have a better probe score but it's the same. We also read the logs and the original driver and our probe score are both at the maximum (100000).
Here is the current state of our info.plist file :
<plist version="1.0">
<dict>
<key>IOKitPersonalities</key>
<dict>
<key>SimpleAudioDriver</key>
<dict>
<key>idProduct</key>
<integer>49456</integer>
<key>idVendor</key>
<integer>1130</integer>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>IOClass</key>
<string>IOUserService</string>
<key>IOMatchCategory</key>
<string>SimpleAudioDriver</string>
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>IOResourceMatch</key>
<string>IOKit</string>
<key>IOUserAudioDriverUserClientProperties</key>
<dict>
<key>IOClass</key>
<string>IOUserUserClient</string>
<key>IOUserClass</key>
<string>IOUserAudioDriverUserClient</string>
</dict>
<key>IOUserClass</key>
<string>SimpleAudioDriver</string>
<key>IOUserServerName</key>
<string>com.example.apple-samplecode.SimpleAudio.Driver</string>
<key>SimpleAudioDriverUserClientProperties</key>
<dict>
<key>IOClass</key>
<string>IOUserUserClient</string>
<key>IOUserClass</key>
<string>SimpleAudioDriverUserClient</string>
</dict>
</dict>
</dict>
</dict>
</plist>
If you have any hints, please get back to us.
Thanks.