Как получить доступ к пользовательскому элементу управления драйвером CoreAudio?

Я создаю приложение конфигурации драйвера 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)) {

все возвращается ОК.

Но если я изменю 'phan'в 'phaN', чтобы создать собственный элемент управления,
устройство возвращает это не имеет контроля. Я пробовал настройку
controlID и возиться с параметрами create функция,
но нет успеха.

Мы искали документацию Apple, такие книги, как OS X и iOS Kernel
Программирование и т. Д., Но примеры показывают только создание элементов управления по умолчанию,
как громкость и отключение звука, только говоря, что возможно создание пользовательских команд.

Есть ли какая-либо ошибка в том, как я запрашиваю элемент управления? Если я открою AudioObject
Браузер в HALLab Я вижу элемент управления в обоих случаях (с помощью ‘phan’ и ‘phaN’).

Отсутствует ли какой-либо шаг в коде драйвера, коде приложения или обоих? Или это не
можно делать вещи таким образом — и если да, то любые рекомендации будут оценены.

Спасибо!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]