Обратный вызов для подключенного/неподключенного устройства с помощью portaudio?

Есть ли обратный вызов, чтобы узнать, когда список устройств обновляется?

Если нет, есть ли способ его обнаружить (в идеале кроссплатформенный)?

На данный момент единственный способ, который я нашел, - это повторно инициализировать PortAudio.

ps: я пытался найти документацию по "обратным вызовам" в документации PortAudio, но не смог ее найти.


person kroe    schedule 14.06.2015    source источник


Ответы (2)


Есть ли обратный вызов, чтобы узнать, когда список устройств обновляется?

Не в коде основной строки. Существует ветка, поддерживающая эту функциональность на некоторых платформах. Новые участники всегда рады помочь закончить это. Это очень нужная функция.

Обратите внимание, что список устройств никогда не обновляется между вызовами Pa_Initialize() и Pa_Terminate(). Это базовый инвариант API. Филиал также поддерживает вызов refresh.

Способ сделать это с текущей версией - использовать проверки для конкретной платформы, а затем вызвать Pa_Terminate();Pa_Initialize();, как вы предлагаете.

person Ross Bencina    schedule 20.06.2015
comment
мы реализовали завершение/инициализацию, и это было достаточно быстро! - person kroe; 20.06.2015

Если ваша ОС — Linux, вы можете использовать системный вызов inotify() и следить за каталогом /dev или его подкаталогом. Я не знаю о Windows, хотя.

person donjuedo    schedule 15.06.2015
comment
хорошо знать! может быть, нужно выяснить, как это работает на каждой ОС, а затем просто использовать классический переключатель: P - person kroe; 15.06.2015