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

Wolfgang Rohdewald wolfgang at rohdewald.de
Sun Jul 31 18:02:42 CEST 2005


On Sonntag 31 Juli 2005 16:56, Klaus Schmidinger wrote:
> Stefan Lucke wrote:
> > Isn't it more suitable to make Skins.Message() usable for plugins ?
> > Klaus ?
> 
> 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,
> 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?

Sounds good to me.

How long would the cOsdObject be displayed? Could this be definable
by a parameter like in cSkins::Message()?

Does vdr have a way to notice if a background thread accesses the
OSD? If so, and if this happens thru cSkins::Message() or cInterface::Confirm(),
could vdr automatically handle this? Or just issue a warning
like "You should use ::Popup()"

-- 
Wolfgang



More information about the vdr mailing list