Аудиоустройство AUPlugIn - Обновление существующего Аудиоустройства для OS X Lion и позже
При обновлении аудиоустройств для Льва Mac OS X или позже существует много изменений, которые должны быть внесены в проект XCode для аудиоустройства, чтобы создать и работать на системе. Как только эти изменения существуют, аудиоустройство будет создавать и работать у Льва Mac OS X и также работать, когда развернуто в Mac OS X v10.6.x.
Это техническое примечание обсуждает эти изменения с помощью проекта примера кода аудиоустройства 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 требуются.
Откройте файл
Filter.cppи заменаCOMPONENT_ENTRY(Filter)сAUDIOCOMPONENT_ENTRY(AUBaseFactory,Filter). Это - новый макрос, генерирующий сменную запись для аудиоустройства. См. Перечисление 1.Добавьте новую вызванную точку входа
_FilterFactoryкFilter.expфайл._FilterFactoryсгенерированAUDIOCOMPONENT_ENTRY()макрос. Отпуск_FilterEntryдля назад совместимости. См. Перечисление 2.Добавьте
AudioComponentsсловарь кInfo.plistфайл. Плагины аудиоустройства не используют файлы ресурсов для определения их свойств, поэтому эти элементы теперь должны быть указаны вInfo.plistфайл. Обратите внимание на то, что файл ресурсов (Filter.r) должен быть оставлен на месте для назад совместимости. См. Перечисление 3 и рисунок 1.Добавьте
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> |
AudioComponents массив. 

История версии документа
| Дата | Примечания |
|---|---|
| 17.08.2012 | Фиксированная plist информация |
| 09.05.2012 | Передовая статья |
| 30.09.2011 | Фиксированная plist информация |
| 22.08.2011 | Передовая статья |
| 23.05.2011 | Новый документ, обсуждающий требуемые изменения проекта аудиоустройства для создания и работы OS X Lion (и v10.6.x). |