[LAD] "enhanced event port" LV2 extension proposal
Krzysztof Foltman
wdev at foltman.com
Thu Nov 29 10:00:21 UTC 2007
Dave Robillard wrote:
> IP doesn't dictate packet contents whatsoever. It does what it needs to
> do quite well, I don't think it's crufy at all. It would be crufty if
> it tried to define, say HTTP error codes...
That's right. Lars addressed that criticism pretty well, I think. The
"evolved" proposal is both keeping headers and data in the same place
and keeping event semantics on separate layer from event transport.
> Please look at the definition of the LV2_MIDI struct in lv2-midiport.h.
> Note the char* parameter, and read it's comment. The buffer is flat,
> there is no cache thrashing or any such issues here whatsoever.
Here it comes:
char* buf; ///< raw event data
Maybe you meant to write this?
char buf[]; ///< raw event data directly follow here
Because char* usually means, you know, a pointer, not a variable length
array :)
Take this, and solve alignment and URI numbering issues, and both
proposals (LarsL&KF and yours) are actually the same one. Which is a
good thing.
> The only problem that needs to be handled is how to get the type in
> there. I would like to find a good solution to this problem that's as
> extensible as URIs but doesn't actually stick a URI in the event struct
> (there are a few other future extensions that have the same problem.
Lars solved that one pretty well.
> strcmp of URIs in the audio thread is, as you say, completely out of the
> question, but so is handing out a flat numeric space.
Unless the handing out is done on the fly, based on URIs. Like, say,
file descriptors :) We still have "central authority", but this time
it's the host loading the plugins, not a person. Should give a much
better roundtrip and less authority abuse ;)
Krzysztof
More information about the Linux-audio-dev
mailing list