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

Message ID 44245715.1010803@e-tobi.net
State New
Headers

Commit Message

Tobias Grimm March 24, 2006, 8:31 p.m. UTC
  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
  

Patch

--- 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;