AudioPluginFormat类群详解

本小节内容与开发独立插件基本无关,与宿主平台的插件管理关系密切。所涉及的类:

  • AudioPluginFormat 代表某种插件格式,比如:VST、AU等等
  • AudioPluginFormatManager 保存并管理本机所有可用的插件格式
  • KnownPluginList 持有并可管理本机所有可用的插件实例
  • PluginDirectoryScanner 扫描某个目录,将可识别的插件添加到KnownPluginList
  • PluginListComponent 专门显示插件列表的高级UI组件,可扫描、添加、排序插件

AudioPluginFormat
代表某种插件格式,比如VST、AudioUnit、LADSPA等等。该类是一个抽象基类,无父类。其子类代表具体的插件格式,比如VSTPluginFormat、AudioUnitPluginFormat等等。

AudioPluginFormatManager
用于保存并管理本机所有可用的插件格式,该类无父类,亦无子类。使用流程:创建对象,调用addDefaultFormats()添加本机所有可用的插件格式。

本类的构造函数无参,成员函数有:(网站发布,略)

KnownPluginList
Hold一个PluginDescription数组,该数组中的每个元素代表一个具体的插件实例。本类可编辑、保存和加载PluginDescription,每一个PluginDescription均对应一个插件实例。该类构造函数无参,成员函数有:(略)

PluginDirectoryScanner
扫描某个目录,并将该目录下的插件添加到KnownPluginList中。本类的使用流程:创建对象,重复调用scanNextFile(),直至返回false。

PluginDirectoryScanner类的构造函数:
 PluginDirectoryScanner (
KnownPluginList &listToAddResultsTo, // 将扫描到的插件添加到此对象中
AudioPluginFormat &formatToLookFor, // 要扫描的格式类型
FileSearchPath directoriesToSearch, // 扫描该目录
bool searchRecursively, // 是否递归式扫描
const File &deadMansPedalFile) // 有问题的插件保存到此文件中

PluginDirectoryScanner类的成员函数:(网站发布,略)

PluginListComponent
PluginListComponent继承自Component等多个类,是一个专门显示和管理插件列表的多功能UI组件,可实现插件的扫描、添加(可直接将插件文件拖入此组件中)、删除、排序等功能。该类的继承图示:

PluginListComponent

图 3 15 PluginListComponent类的继承图示

PluginListComponent类的构造函数:
 PluginListComponent (AudioPluginFormatManager &formatManager,
KnownPluginList &listToRepresent, // 用于添加扫描到可用插件
const File &deadMansPedalFile, // 此文件用于存放损坏或不可识别的插件
PropertiesFile *propertiesToUse) // 存储最后的搜索路径。如无需,则nullptr

PluginListComponent类可供直接调用的成员函数只有一个:
 getNumRows () 返回列表中的插件数量