关于将字符串和其他数据从UI传递到LV2插件的问题

时间:2016-11-26 15:27:15

标签: lv2

我需要将一个字符串从UI传递给插件。从eg-sample看,似乎应该将LV2原子写入原子端口。

如果我理解正确

  1. 首先分配LV2_Atom_Forge可能该对象在堆栈上还是在UI事件回调返回后必须存活?

  2. 致电lv2_atom_forge_set_buffer我如何知道所需的缓冲区大小?该示例无缘无故地将其设置为1024字节。 可以在堆栈上分配缓冲区,还是在UI事件回调返回后必须在UI中存活?

1 个答案:

答案 0 :(得分:0)

  1. 伪造只是一个写原子的工具。它写入的缓冲区由使用它的代码提供,因此伪造本身的生命周期是无关紧要的。将它分配到堆栈上是很好的,尽管在UI结构中保留一个以便在各个地方使用它可能更方便。

  2. 您可以通过了解文档中描述的原子格式来估算所需的空间,或者首先使用大量缓冲区实现所有内容并检查输出中顶级原子的大小字段。请记住,如果你有像字符串那样的可变大小的元素,这将会改变。传递给UI回调的数据是const并且仅在调用期间有效,如果需要稍后可用,则必须由接收者复制。