[LV2] Widget-less UI not working

Stefan Riha hoitaus at gmail.com
Fri May 27 16:27:42 PDT 2016


I had time now to try it. I'm not sure if I understood this correctly, but
ui:idleInterface and ui:showInterface don't seem to solve my problem. Jalv
and Ardour don't even call extension_data(). They break before that, due to
the invalid widget pointer they get from calling instantiate().

However, I noticed that if I declare the widget-less UI as a ui:X11UI in
the .ttl, then it works! Jalv, Ardour and Qtractor open an empty window,
call extension_data() with ui:idleInterface. I actually think that's all I
need. Probably has something to do with the pointer type for X11 windows
(see http://lv2plug.in/ns/extensions/ui/#X11UI )



On Sat, May 21, 2016 at 5:08 PM, Hanspeter Portner <ventosus at airpost.net>
wrote:

> On 21.05.2016 06:23, Stefan Riha wrote:
> > Hi, I'm a beginner and experimenting with lv2.
>
> Great
>
> > I wrote a simply synth and want a UI without Widget. On the lv2 page it
> says
> >
> >  "There is no requirement that a UI actually be a graphical widget."
> >  (from: http://lv2plug.in/ns/extensions/ui/ ).
>
> True, an UI can theoretically be anything.
>
> Can you give some more information on what you want to accomplish? You may
> well not need an UI in the first place (but
> don't know yet, as you are a beginner).
>
> > Below that, there is a list of subclasses of UI, but all are for
> widgets. So I thought I'd try ui:UI directly instead of
> > ui:GtkUI etc. But neither jalv nor Ardour recognises that there is a UI.
>
> ui:UI is the parent class which the Widget UIs (ui:GtkUI, ui:Gtk3UI,
> ui:QtUI, ...) derive from. It is en empty shell
> really, hosts cannot possibly know what is inside, you have to give the
> host some more information.
>
> > So I used ui:GtkUI instead. In jalv, this yields error messages of type
> Gtk-CRITICAL. Obviously it's because there is no
> > actual widget. In Ardour, I can see that the UI is instantiated() and
> immediately cleanedup(), probably because the Gtk
> > errors are handled that way.
>
> If you define the UI as an ui:GtkUI, but do not return a valid GtkWidget
> to the host, sure this raises an error.
>
> > How do you do this?
> >
> > I looked for hours for some example code but couldn't find one. I
> stumbled across Ingen which has some form of
> > web-interface (if I understood correctly) and tried to read the .ttl
> files, but don't understand them.
>
> You may be looking for ui:showInterface [1] and ui:idleInterface [2], with
> those you can build arbitrary
> UIs.
>
> Here [3] you can find a dummy plugin I use for testing various UIs in my
> humble host.
> <test_show.c> implements an as-simple-as-it-gets no-widget UI.
>
> [1] http://lv2plug.in/ns/extensions/ui/#showInterface
> [2] http://lv2plug.in/ns/extensions/ui/#idleInterface
> [3] https://github.com/ventosus/alluis.lv2
>
> > Thanks a lot for your help,
> > Stefan
> _______________________________________________
> Devel mailing list
> Devel at lists.lv2plug.in
> http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lv2plug.in/pipermail/devel-lv2plug.in/attachments/20160528/d038f387/attachment.htm>


More information about the Devel mailing list