I was looking at the (unfinished) example sampler plugin here:
https://gitorious.org/gabrbedd/lv2-sampler-example
I ran through the mental exercise of trying to figure out how to
finish it, and I have a question about the UI extension.  How does a
UI tell its plugin to load a sample file?  The example has a TODO in
its run function that indicates it will react to an LV2_Event that
contains a pathname for a file.  I don't understand how a UI will
create this event.
On lv2plug.in, I see there's an experimental string-port extension
that defines a transfer mechanism for strings.  Is this the
recommended method?  Do any hosts support this extension?
There's also an atom extension, but I don't think I grok it yet.  Can
I create a port of type atom:MessagePort?  How does a UI make use of
that?