这里主要是参考VST3.6.5的文档…主要是做一下翻译吧。

主要是英文水平比较烂…看一句忘两句的。惨兮兮的,还是中文好。

前一篇: 【VST】VST3 SDK开发(一) —— 基础概念、处理部分、编辑部分、组件之间的通信.

入门教程,本教程将为您简要介绍如何开始使用VSTGUI.

 

VST Integration —— VST集成

使用VSTGUI将用户界面添加到VST插件非常简单。

创建一个从 AEffGUIEditor 继承的新类。重载 AEffGUIEditor::open 和 AEffGUIEditor::close 这两个方法.

现在你只需要将VST插件的编辑器设置为MyEditor的新实例。

 

在VST插件的构造函数某处,进行如下的调用:

 

这样你就有了自己的VST插件编辑器,现在你需要添加控制。

 

Adding views and controls —— 添加视图和控件

 

Loading images —— 加载图片

VSTGUI提供的大多数控件都使用图像。所以你需要知道如何在VSTGUI中加载和使用图像。要加载图像,只需要使用 CBitmap 类。

图像“MyBitmap.png” 必须在Windows的.rc资源文件中定义,如下所示:

MacOS:在Mac OS X上,映像必须位于vst软件包的Resources文件夹中。

 

Creating views and adding them to the frame —— 创建视图并将其添加到框架

现在我们已经加载了一个图像,我们希望这个图像在我们的编辑器中显示。最简单的方法是使用CView类,它是所有视图和控件类的基础。

为了实际显示,我们需要将这个视图添加到前面创建的CFrame对象中。

在设置所有视图之后,我们可以释放我们的图像,因为所有的视图都会自己存储记录自己的图像。

 

现在让我们看看下面的例子:(这看起来是一个完整的例子)

只有在我们的编辑器中显示的图像有点跛脚。 我们希望有一些用户可以与之交互的控件。

 

Creating a knob control —— 创建一个旋钮控件

VSTGUI提供了一些可以使用的基本控件。

作为一个例子,我们使用CKnob控件。 CKnob控件需要两个图像,即背景和句柄。背景名称建议始终绘制为此控件的背景,而句柄绘制在此控件值的位置。

有关更多信息可以看文档 VSTGUI::CKnob 部分。

 

现在让我们看看如何创建这样一个旋钮:

正如你所看到的,有一些参数被设置为0,先忽略他们,稍后再谈。

如果将此旋钮添加到框架并测试界面,将看到如果在该控件下按下鼠标并移动鼠标,旋钮的手柄也在转动。

太好了,我们在编辑器里有一些东西可以玩。

 

完整的例子:

 

Getting notification of control changes —— 获取控件变更的通知

现在我们的编辑器中由一个旋钮,我们想知道用户何时使用此控件。

 

The CControlListener —— 控件监听器

这是通过 CControlListener 接口完成的。VSTGUI中的每一个控件都可以有一个监听器,当控件的值发生变化时,通知监听器。

 

首先我们需要一个CControlListener.

最简单的方法是让我们的编辑器同时继承 AEffGUIEditor 和 CControlListener。

接下来我们可以使用我们的编辑器作为CKnob构造函数中的侦听参数。

 

然后我们只需要实现ValueChange方法,就可以知道用户何时旋转我们的旋钮。

 

 

Control identification —— 控制标识

使用一个控件的时候,我们可以很容易知道用户使用了哪个控件。

如果在我们的编辑器中有更多的控件,对控件的区分是由 <控件标签> 来完成的。

所有我们添加两个旋钮控件,我们给它不同的<控件标签>。

现在在我们的valueChanged方法中,我们可以区分控件:

 

有关完整示例,请参阅VSTGUI附带的教程项目。

【VST】VST3 SDK开发(二) —— VST集成
Tagged on: