Техническое примечание TN2276

Аудиоустройство AUPlugIn - Обновление существующего Аудиоустройства для OS X Lion и позже

При обновлении аудиоустройств для Льва Mac OS X или позже существует много изменений, которые должны быть внесены в проект XCode для аудиоустройства, чтобы создать и работать на системе. Как только эти изменения существуют, аудиоустройство будет создавать и работать у Льва Mac OS X и также работать, когда развернуто в Mac OS X v10.6.x.

Это техническое примечание обсуждает эти изменения с помощью проекта примера кода аудиоустройства FilterDemo в качестве примера.

Обзор
Пример: обновление аудиоустройства FilterDemo
История версии документа

Обзор

Лев Mac OS X представляет новую сменную вызванную модель AUPlugIn который больше не является на основе Менеджера компонентов. AUPlugIn модель имеет новый механизм отгрузки, требующий включения двух новых вызванных файлов помощника отгрузки AUPlugInDispatch.h и AUPlugInDispatch.cpp соответственно.

Новое AUDIOCOMPONENT_ENTRY() макрос был добавлен к ComponentBase.h и при помощи этого макро-аудиоустройства точки входа создаются и для плагина аудиоустройства для Льва Mac OS X и для компонента Component Manager для назад совместимости с Mac OS X v10.6.x.

Поскольку аудиоустройства больше не используют Менеджер компонентов на Льве Mac OS X или более новый, AUPlugIn основанные аудиоустройства не используют файлы ресурсов (.r файлы) или'thng'ресурс для определения свойств такой как kComponentType, kComponentSubType, и kComponentManufactureType. Эти свойства теперь указаны в проекте Info.plist файл для аудиоустройства. Можно продолжать включать файл ресурсов Менеджера компонентов в проект для назад совместимости с Mac OS X v10.6.x.

Новое AUPlugIn точка входа, сгенерированная AUDIOCOMPONENT_ENTRY() макрос требуется и должен быть добавлен к файлу экспорта (.exp). Можно оставить точку входа Менеджера компонентов в файле экспорта для обеспечения назад совместимости Mac OS X v10.6.x.

Пример: обновление аудиоустройства FilterDemo

Загрузите выборку Аудиоустройства FilterDemo и обход хотя выполняющие шаги обновления. Лев Mac OS X и связанные инструменты Xcode требуются.

  1. Откройте файл Filter.cpp и замена COMPONENT_ENTRY(Filter) с AUDIOCOMPONENT_ENTRY(AUBaseFactory, Filter). Это - новый макрос, генерирующий сменную запись для аудиоустройства. См. Перечисление 1.

  2. Добавьте новую вызванную точку входа _FilterFactory к Filter.exp файл. _FilterFactory сгенерирован AUDIOCOMPONENT_ENTRY() макрос. Отпуск _FilterEntry для назад совместимости. См. Перечисление 2.

  3. Добавьте AudioComponents словарь к Info.plist файл. Плагины аудиоустройства не используют файлы ресурсов для определения их свойств, поэтому эти элементы теперь должны быть указаны в Info.plist файл. Обратите внимание на то, что файл ресурсов (Filter.r) должен быть оставлен на месте для назад совместимости. См. Перечисление 3 и рисунок 1.

  4. Добавьте AUPlugInDispatch.h и AUPlugInDispatch.cpp файлы к проекту. Эти файлы помощника отгрузки расположены в Developer/Extras/CoreAudio/AUPublic/AUBase и требуются AUPlugIn менеджер. Посмотрите рисунок 2.

  Макрос генерации точки входа Изменения перечисления 1 в Filter.cpp

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//	Standard DSP AudioUnit implementation
 
// old component manager entry point no longer required
//COMPONENT_ENTRY(Filter)
 
// new AUPlugIn macro
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Filter)

Перечисление 2  Включает новую точку входа Filter.exp

_FilterEntry
_FilterFactory

Перечисление 3  AudioComponents массив в Info.plist файл.

<key>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>Filter AU</string>
<key>factoryFunction</key>
<string>FilterFactory</string>
<key>manufacturer</key>
<string>Acme</string>
<key>name</key>
<string>Apple Demo: Filter</string>
<key>subtype</key>
<string>FILT</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
  Графическое представление рисунка 1 AudioComponents массив.
Рисунок 2  файлы AUPlugInDispatch добавил к проекту XCode.


История версии документа


ДатаПримечания
17.08.2012

Фиксированная plist информация

09.05.2012

Передовая статья

30.09.2011

Фиксированная plist информация

22.08.2011

Передовая статья

23.05.2011

Новый документ, обсуждающий требуемые изменения проекта аудиоустройства для создания и работы OS X Lion (и v10.6.x).