我正在创建一个CoreAudio驱动程序的配置应用程序,因为它有一些自定义
参数。我可以访问默认控件,如音量和静音,以及另一个
与AudioObjectGetPropertyData
和AudioObjectSetPropertyData
相关的属性,例如频道号。我不是开发者
司机,但我们正在共同努力。
使用IOAudioXXXControl::create()
创建自定义控件(在驱动程序中,而不是应用程序中),并且给定自定义控件子类型时我无法访问它
从申请。但是,如果我用"默认"创建它?值(在标题中定义),我可以访问它。
例如,使用以下命令创建驱动程序控件:
control = IOAudioToggleControl::create(FALSE,
kIOAudioControlChannelIDAll,
0,0, 'phan', //'phan' is as kAudioToggleControlSubTypePhantomPower
kIOAudioControlUsageCoreAudioProperty);
并且,在应用程序中,我问这样是否有这种控制:
AudioObjectPropertyAddress pAddress;
pAddress.mSelector = 'phan';
pAddress.mScope = kAudioObjectPropertyScopeGlobal;
pAddress.mElement =kAudioObjectPropertyElementMaster;
if (AudioObjectHasProperty(device, &pAddress)) {
它返回OK。
但如果我将'phan'
更改为'phaN'
,则要创建自定义控件,
设备返回它没有控件。我试过设置
controlID和乱用create
函数的参数,
没有成功。
我们搜索了Apple文档,OS X和iOS Kernel等书籍 编程等,但示例仅显示默认控件的创建, 像音量和静音一样,只说可以创建自定义命令。
我请求控件的方式有任何错误吗?如果我打开AudioObject HALLab中的浏览器我可以在两种情况下看到控件(使用' phan'和#39; phan')。
驱动程序代码,应用程序代码或两者都缺少一些步骤?或者不是 可以这样做 - 如果是这样,任何指南都将受到赞赏。
谢谢!