[mythtv] Better Integration of plugins

Paul Volkaerts paul.volkaerts at lineone.net
Fri Feb 25 15:17:11 UTC 2005


> This is how mythui works (kinda).  Check out the drawTimeout()
> function in
> mythmainwindow.cpp in libs/libmythui/.  No actual drawing happens
> outside of
> that function (but the UI objects can be updated, etc, outside of it).
> Actually, look at the rest of the architecture there, it'd be
> easier than me
> explaining, and it's all fairly simple.

Ok I get it -- so it would still be a single-threaded drawing process, and
if you wanted to have a plugin window on top of the TV, then based on some
event/keypress you would create the plugins QWidget in the same thread so
using the same QT event loop.

This certainly looks the right way to do it but it does seem a hell of a lot
of work. In order to get plugins to draw on-screen as per my example you
have to

(1) Get MythUI to have an OSD versus QT abstration layer and implement the
OSD paint functions. Is that in hand?

(2) Change the plugins so that they have a full-screen mode and a popup
mode. I guess thats required whichever way you do this.

(3) You still need a popup menu that integrates all plugins so the user can
choose "music" without exiting TV. I think my menu was as good as any at
this; and am happy to either check it in or put it in storage until its
needed.

(4) How would you see a plugin being able to draw to the screen without user
interaction, for example like the Caller Display.  Would you see the plugins
QWidget having to exist all the time but sit quietly in the background?

Would be good to understand what is in/out of scope for what you are coding;
then I can figure out how I can help.

Cheers;
Paul





More information about the mythtv-dev mailing list