From b8e06a4495b2d39a8a82ec9647d7a87916caca56 Mon Sep 17 00:00:00 2001
From: David Robillard This extension defines a generic container for data, called an Atom
,
and several basic Atom types which can be used to express structured data.
-Atoms allow LV2 plugins and hosts to communicate, process, serialise, and store
-values of any type via a generic mechanism (e.g. ports, files, networks,
-ringbuffers, etc.). Atoms are, with one exception, Plain Old Data (POD) which
-may safely be copied (e.g. with a simple call to memcpy
).memcpy
), and are suitable
+for use in high-performance and real-time code.
Since Atom communication can be implemented generically, plugins that understand some type can be used together in a host that does not understand -that type, and plugins (e.g. routers, delays) can process atoms of unknown -type.
+that type. Similarly, plugins (such as routers, delays, or data stores) can +meaningfully process atoms of a type unknown to them.Atoms can and should be used anywhere values of various types must be stored or transmitted. This extension defines port types, atom:ValuePort and -atom:MessagePort, which are connected to an Atom. The atom:Sequence type in -conjunction with atom:MessagePort is intended to replace the LV2 event extension.
The types defined in this extension should be powerful enough to express
-almost any structure. Implementers SHOULD build structures out of the types
+almost any structure. Implementations SHOULD build structures out of the types
provided here, rather than define new binary formats (e.g. use atom:Object
rather than a new C struct
type). New binary formats are an
implementation burden which harms interoperabilty, and should only be defined
--
cgit v1.2.1