AudioProcessor类群详解 5-5

AudioProcessorEditor

AudioProcessorEditor类继承自Component,派生出GenericAudioProcessorEditor。该类就是一个特殊的Component,其特殊性表现在:

  • 无法直接构造对象(构造函数为protected性质的)
  • 构造函数需一个构造参数,该参数为AudioProcessor指针

从第二点特殊性可看出,该组件专为AudioProcessor量身定制,即:本类可作为AudioProcessor的UI界面,按常规Component的模式添加子组件和各类控件,从而实现后台数据、前台界面与数据控制的完美整合(MVC)。

AudioProcessorEditor只有一个public成员函数(非虚):
 getAudioProcessor () 返回聚合到此组件的AudioProcessor

GenericAudioProcessorEditor

GenericAudioProcessorEditor是AudioProcessorEditor的派生类,以一组推子的形式来显示并控制本类所持有的AudioProcessor的各个参数。所持有的AudioProcessor有几个参数,本类就显示几个推子,并自动逐个对应。

值得借鉴的是:GenericAudioProcessorEditor所显示的推子并没有使用常规的内容组件添加Slider控件这种方式,而是通过PropertyPanel属性面板中添加数值型属性组件(推子)的方式来实现。

PropertyPanel属性面板等高级UI组件,详解请参见后文(JUCE GUI部分)。

GenericAudioProcessorEditor类的构造函数
 GenericAudioProcessorEditor (AudioProcessor *owner)

除构造函数和默认的空析构函数之外,本类没有新增任何成员函数。