[vdr] How to display an OSD message from a thread?
Klaus.Schmidinger at cadsoft.de
Sat Nov 19 10:45:56 CET 2005
Christian Wieninger wrote:
> I'm trying to display an OSD message from a separate thread within a plugin to
> indicate when some background action has finished. The message should pop up
> no matter if there's currently an OSD displayed or not. So SVDRP MESG is no
> solution, since this will only appear when leaving the OSD.
> I tried it with the new service interface. The thread calls a service of the
> plugin passing the message. The service itself calls
> Skins.Message(serviceData->type, serviceData->message);
> This works fine, but sometimes crashes VDR in cSkins::Message. I've found a
> way to reproduce it:
> When the main menu is displayed and the message pops up then pressing BACK
> while the message still is displayed crashes VDR. In this case the problem is
> that in
> cSkinDisplay::Current()->SetMessage(Type, NULL);
> cSkinDisplay::Current() is NULL. Don't know if this is a bug or just the
> result of my wrong usage ;-)
> Is there any other way to display a message from a thread?
There is currently no way of doing this.
I'm not sure if there will be one in version 1.4.
What's so important about your message that it can't wait?
More information about the vdr