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()"