> ____
> union {
> struct {
> int (*x)();
> } actor;
>
> struct {
> int (*x)();
> } input;
>
> struct {
> int (*x)();
> } morph;
> } preferences;
> what are these preferences for ?
These will contain some plugin's requirements, like depth.
Probably placing function pointers here could be nice idea.
> /*
> // count defaults to 1
>
> const VisPluginInfo *get_plugin_info(int *count)
> {
> const VisPluginInfo info[] = {
> / * blah-blah-blah * /
> };
> *count = sizeof(info)/sizeof(*info);
> return info;
> }
> What is count for ?
It will make possible to create one library for multiple plugins.
For example, morph plugins can be separated to a simplier ones by depth
or make actor plugins with common codebase but very different appearance,
or all-in-one :)
These not plugins anymore, they are plugin libraries! :)
> Besides these questions, it looks good, if you can create a patch for this
> and put
> it on the list, it would be great!
OK, here's a first patch. Sorry, it's againts old cvs tree.
Sorry, it's a dirty patch.
But it works. At least it's capable to run two ported plugins --
alsa and lv_dna.
No morph stuff is ported, but it's easy to do:
1. s/VisMorphPlugin/VisPluginData/ in lv_plugin.h
2. fix lv_morph.[ch]
3. port plugin[s].
Looks like that's all for now. I'm going on vacation for a week or two
starting monday or so. I won't be available.
Anyway, everybody is welcome to try this patch, fix something ;) and
send a report!
--
Thanks,
Vitaly
GPG Key ID: F95A23B9
|