Как аудиоустройство может обнаружить запуск и остановку своего хоста? - PullRequest
2 голосов
/ 08 октября 2010

Как компонент аудиоустройства может обнаружить запуск и останов хоста аудиоустройства?

В компоненте Kernel Process () я попытался с помощью метода CallHostTransportState (...), который возвращает информацию о том, играет ли хост, или нет, поэтому я могу обнаружить первый запуск; но Process () больше не вызывается, когда хост останавливается, поэтому я не могу определить остановку таким образом. И поскольку останов не обнаружен, я не могу определить следующий запуск, так как состояние «остановлено» не обнаружено.

Есть идеи?

Спасибо.

1 Ответ

1 голос
/ 08 октября 2010

Что ж, не похоже, что есть какое-то конкретное свойство, которое вы можете прослушивать в отношении изменений состояния транспорта хоста, а это значит, что вам нужно будет отслеживать их самостоятельно.Вдобавок ко всему, самый простой способ сделать это - создать новый runloop (то есть, используя CFRunLoop или NSRunLoop в зависимости от того, находитесь ли вы на уровне C ++ / Obj-C) и передать ему ссылкув функцию бездействия, которая, в свою очередь, передает состояние транспорта хоста вашему плагину.

Это задача, которая обычно выполняется путем переопределения idle() в мире VST, но поскольку AudioUnits вытягиваются-ориентированный, а не ориентированный на push, вам нужно иногда извлекать информацию и передавать ее плагину вручную.

...