Stefan Lucke wrote:
On Donnerstag, 30. Juni 2005 17:43, Klaus Schmidinger wrote:
Wolfgang Rohdewald wrote:
On Donnerstag 30 Juni 2005 16:53, Klaus Schmidinger wrote:
IIRC we already had this discussion some time ago. The point is that you're not supposed to call any of the skin functions from a thread. These functions are only supposed to be called by VDR itself.
how else can a plugin display a message or ask a question? since cInterface::Confirm() also calls Skins.Message(), I suppose Confirm() is also illegal for plugins?
this is how muggle has always been doing this:
#if VDRVERSNUM >= 10307 Skins.Message (mtInfo, buffer,duration); Skins.Flush (); #else Interface->Status (buffer); Interface->Flush (); #endif
and
if (!Interface->Confirm(tr("Import items?"))) return false;
Sorry, I was a little too vague here. What I meant to say was that these functions shall only be called from the _foreground_ thread (the one that VDR's main loop runs in).
Is there another way for a plugin to display a message during background processing ? Preferably a _non_ blocking way,as I noticed that Skins.Message() does it's job blocking.
Is there a solution for this problem? I now also need to notify the user of a background event, and the Housekeeping method (a possible candidate since it's called from the foreground thread) isn't suitable, since it's called only once every 60 seconds.
Bye