我已经实现了一个带有2个垂直推子的VST 2.4 GUI(C ++)。
在代码中我链接了2,因此一个缩放到另一个。所以基本上我想说fader2总是fader1值的一半:
fader1 = 1.0;
fader2 = fader1 / 2;
代码相当简单,但我需要添加哪些功能才能“反馈”到GUI;这样当fader1滑块移动时,fader2上的滑块也会以显示变量更新的方式移动(比例)?
我认为它必须以与'valueChanged'中的setParameterAutomated类似的方式工作
我实现这一点的原因是我有一个开关可以将2个推子连接到这个比例。因此,当它关闭时,每个推子可以独立设置;但是当它打开时,fader1被移动而fader2以2:1的比例移动
答案 0 :(得分:1)
当您移动滑块时,它会调用编辑器valueChanged()方法,该方法会调用效果setParameterAutomated()。
setParameterAutomated()在内部调用setParameter()。此方法是虚拟的,您应该覆盖它,以便它将与第二个推子关联的参数的值设置为您想要的任何值。只是不要忘记调用AEffectX :: setParameter()。
然后,无论您使用什么机制通知UI参数更改都会启动,您的第二个推子将正常移动。
你必须这样做,以便第二个推子移动,无论第一个推子移动的原因(因为用户拖动它,或者因为主机向其发送了自动化事件)。