From patchwork Fri Mar 24 20:31:17 2006 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tobias Grimm X-Patchwork-Id: 12236 Received: from moutng.kundenserver.de ([212.227.126.188]) by www.linuxtv.org with esmtp (Exim 4.50) id 1FMswH-0004Xe-Up for vdr@linuxtv.org; Fri, 24 Mar 2006 21:31:17 +0100 Received: from [84.184.61.183] (helo=[192.168.30.101]) by mrelayeu.kundenserver.de (node=mrelayeu9) with ESMTP (Nemesis), id 0ML2xA-1FMswI0Unn-0003OC; Fri, 24 Mar 2006 21:31:18 +0100 Message-ID: <44245715.1010803@e-tobi.net> Date: Fri, 24 Mar 2006 21:31:17 +0100 From: Tobias Grimm User-Agent: Debian Thunderbird 1.0.7 (X11/20051017) X-Accept-Language: en-us, en MIME-Version: 1.0 To: VDR Mailing List Subject: Re: [vdr] Announce vdr-eggtimer-0.9.2 and vdr-zaphistory-0.9.3 References: <4423EB6B.8040601@unterbrecher.de> In-Reply-To: <4423EB6B.8040601@unterbrecher.de> X-Provags-ID: kundenserver.de abuse@kundenserver.de login:3a660adf8439ddc7be7d699eb4083112 X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: VDR Mailing List List-Id: VDR Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Mar 2006 20:31:18 -0000 Status: O X-Status: X-Keywords: X-UID: 8521 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 --- 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;