Перейти к содержанию
    

USB AUDIO (UAC 1.0) - выбор выходов

Есть проблема.

Делается некое устройство, в котором на виртуальную звуковую плату идёт поток.

 

Предположим, у устройства есть динамики и наушники.. или две пары наушников.

Как должен выглядеть дескриптор, с которым можно переключать эти выходы, выбирая из панели управления Windows устройство по умолчанию?

Пробовал сделать несколько альтернативных интерфейсов, в каждой из которых свой Audio Streaming Interface Descriptor подключен к соответствующему input terminal (чтобы разные типы устройств на output terminal дали разные названия) проверялся.

При этом аудиоустройство не определяется.

Может быть, для каждого альтернативного интерфейса нужен свой Audio Control Interface Header Descriptor ?

ПО отдельности варианты выхода работают (при закомментаривании неиспользуемой пары IT-OT). Так же, две альтернативных конфигурации с разными сэмплрэйтами тоже работают (можно выбирать скорость), если их соединить с одним выходом.

 

 

Второй вопрос:

из аудиоустройства в компьютер идут аудиоданные. Как выбрать один из возможных вариантов источника, у которых разные sample rate, да и форматы разные?

Применение selector unit освоено, но он дает выбор между одинаковыми по скорости источниками. Опять встает тот же вопрос про альтернативные конфигурации с похожей проболемой неопознающегося устройства.

 

Варианты неправильро посчитанных размеров дескрипторов предполагать не надо, дескрипторы формируются "на лету" при инициализации устройства под требуемую конфигурацию - всё считается правильно.

 

 

Исходник лежит тут https://188.134.5.254/browser/hfreceiver/trunk/usbd_desc.c

usb_log.txt

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вдумчивое чтение audio10.pdf натолкнуло на прямым текстом (конец параграфа 3.7.1) изложенную мысль – разные топологии должны описываться разными алтернативными конфигурациями у AUDIO CONTROL дескриптора (на что прямо намекает и расположение Audio Control Interface Header).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то опознающееся устройство не получить при добавлении алтернативных интерфейсов...

Гугление не дало даже картинок с топологиями на несколько выходов...

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...