[vdr] How to display an OSD message from a thread?

Christian Wieninger cwieninger at gmx.de
Fri Nov 18 16:32:04 CET 2005


Hi,

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?

BR,

Christian



More information about the vdr mailing list