[vdr] [PATCH] fix segfault in cSkins::Message

Luca Olivetti luca at ventoso.org
Sun Jul 31 18:01:50 CEST 2005


Klaus Schmidinger wrote:

> A plugin may well call Skins.Message(), but only from the _main_
> thread.
> 
> I'm thinking about a function like
> 
>   cOsdObject *cPlugin::Popup(void);
> 
> which would be called in every turn of the main loop (i.e. from the
> foreground thread) whenever there is no OSD display open. A plugin
> could either return a cOsdObject that will be presented to the user,

In this case the function wouldn't be called again, would it?
Isn't it possible to use Skins.Message even with an osd already open?
Maybe

cOsdObject *cPlugin::Popup(bool canpopup)

called regardless of an osd open (and canpopup set to false if the 
plugin cannot create a cOsdObject)?

> or could directly display a message (even with user interaction, if
> necessary) and retrun NULL. Of course, if a plugin's thread wants to
> issue a message, it will have to store the message inside the plugin
> and wait until asked through a call to its Popup() function.
> 
> Would that be a useful solution?

I think it would be useful. For example, I could use it in my actuator 
plugin to show the dish position instead of patching vdr as I do now, 
and as soon as the user presses a button I could close my cOsdObject and 
reinject the key to vdr.
But it's not a complete solution, what if more than one plugin needs to 
show something on screen? I reckon there's no simple solution to that, 
but maybe the solution would be implementing something like the ttxsubs 
or subtitles patches do (something like more than one osd opened at 
once, with only the highest priority one actually shown), or some kind 
of windowing system...I really don't know.

Bye

-- 
- Yo también quiero una Europa libre de Patentes de Software  -
- I want a Software Patents Free Europe too! And you?         -
---------------------------------------------------------------
   EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
Url : http://www.linuxtv.org/pipermail/vdr/attachments/20050731/91cb82c3/signature-0001.pgp


More information about the vdr mailing list