[vdr] Announce vdr-eggtimer-0.9.2 and vdr-zaphistory-0.9.3

Tobias Grimm listaccount at e-tobi.net
Fri Mar 24 21:31:17 CET 2006


Peter Juszack wrote:

> - corrected thread termination to avoid several problems ( reported by
> C.Y.M )


There's another problem. It's not allowed to use Skins.Message() from
within a thread other than the main thread. You should use
QueueMessage() (available since vdr 1.3.37) instead (see attached
patch). You may need to add some ifdef's to check for the correct vdr
version. I'm afraid the Interface->Status() code for VDR < 1.3.14 will
not work either.

bye,

Tobias
-------------- next part --------------
--- vdr-plugin-eggtimer-0.9.2.orig/background.c
+++ vdr-plugin-eggtimer-0.9.2/background.c
@@ -71,7 +71,7 @@
 #if VDRVERSNUM < 10314
 			Interface->Error( tr("Eggtimer: could not switch channel") );
 #else
-			Skins.Message( mtError, tr("Eggtimer: could not switch channel") );
+			Skins.QueueMessage( mtError, tr("Eggtimer: could not switch channel") );
 #endif
 		    }
 		    
@@ -94,9 +94,7 @@
 			usleep( Setup.OSDMessageTime * 1000);
 			Interface->Status( NULL );
 #else
-			Skins.Message( mtStatus, eggtimer->msg );
-			cCondWait::SleepMs( Setup.OSDMessageTime * 1000);
-			Skins.Message( mtStatus, NULL );		
+			Skins.QueueMessage( mtInfo, eggtimer->msg, 0, -1);
 #endif
 			// remember time when message was displayed
 			lastInfo = now;
@@ -116,7 +114,7 @@
 #if VDRVERSNUM < 10314
 			    Interface->Error( tr("Eggtimer: command not found") );
 #else
-			    Skins.Message( mtError, tr("Eggtimer: command not found") );
+			    Skins.QueueMessage( mtError, tr("Eggtimer: command not found") );
 #endif
 			leaveLoop = true; // Stop eggtimer thread
 		} break;


More information about the vdr mailing list