Lars Eggert wrote:
> Anyone have a clue why the animation stuff would break things like that?
Yes, since yesterday. Try current cvs or 1.5.0-rc1 with the attached
patch.
Dischi
*** ./src/rc.py Sat Feb 28 18:30:59 2004
--- /home/dmeyer/src/freevo/./src/rc.py Sun May 9 14:11:27 2004
***************
*** 100,106 ****
get_singleton().set_context(context)
!
# --------------------------------------------------------------------------------
# internal classes of this module
--- 100,108 ----
get_singleton().set_context(context)
! def callback(function, *arg):
! get_singleton().one_time_callbacks.append((function, arg))
!
# --------------------------------------------------------------------------------
# internal classes of this module
***************
*** 291,297 ****
self.context = 'menu'
self.queue = []
self.event_callback = None
!
def set_app(self, app, context):
self.app = app
--- 293,300 ----
self.context = 'menu'
self.queue = []
self.event_callback = None
! self.one_time_callbacks = []
!
def set_app(self, app, context):
self.app = app
***************
*** 335,340 ****
--- 338,348 ----
def poll(self):
+ while self.one_time_callbacks:
+ callback, arg = self.one_time_callbacks[0]
+ self.one_time_callbacks.pop()
+ callback(*arg)
+
if len(self.queue):
ret = self.queue[0]
del self.queue[0]
*** ./src/osd.py Sun May 2 13:46:12 2004
--- /home/dmeyer/src/freevo/./src/osd.py Sun May 9 14:12:51 2004
***************
*** 5,11 ****
# -----------------------------------------------------------------------
# $Id: osd.py,v 1.154 2004/05/02 11:46:12 dischi Exp $
#
! # Notes:
# Todo:
#
# -----------------------------------------------------------------------
--- 5,12 ----
# -----------------------------------------------------------------------
# $Id: osd.py,v 1.154 2004/05/02 11:46:12 dischi Exp $
#
! # Notes: do not use the OSD object inside a thread
! #
# Todo:
#
# -----------------------------------------------------------------------
***************
*** 19,66 ****
# Revision 1.152 2004/04/25 11:23:57 dischi
# Added support for animations. Most of the code is from Viggo Fredriksen
#
- # Revision 1.151 2004/03/19 21:03:39 dischi
- # fix tvguide context bug
- #
- # Revision 1.150 2004/03/14 17:46:24 dischi
- # fix update for some cards
- #
- # Revision 1.149 2004/03/14 17:22:43 dischi
- # seperate ellipses and dim in drawstringframed
- #
- # Revision 1.148 2004/03/14 13:10:41 dischi
- # more dim/ellipse fixes
- #
- # Revision 1.147 2004/03/14 12:59:34 dischi
- # fix crash
- #
- # Revision 1.146 2004/03/14 12:55:11 dischi
- # dim support for texts
- #
- # Revision 1.145 2004/03/12 18:33:56 dischi
- # text input patch from Viggo Frederiksen
- #
- # Revision 1.144 2004/03/10 20:13:52 dischi
- # set keyboard repeat
- #
- # Revision 1.143 2004/02/27 20:12:16 dischi
- # reworked rc.py to make several classes
- #
- # Revision 1.141 2004/02/18 21:55:44 dischi
- # Some osd updates for new gui code
- #
- # Revision 1.140 2004/02/14 13:05:03 dischi
- # do not call skin.get_singleton() anymore
- #
- # Revision 1.139 2004/02/12 12:37:14 dischi
- # fix alternative font loading
- #
- # Revision 1.138 2004/02/12 03:32:41 outlyer
- # Fixes for OSD_EXTRA_FONT:
- #
- # o Filesystems are case sensitive; we can't arbitrarily set them to lower.
- # o If we're using the extra font path for osd.py, we need to use it in xml_skin
- #
# -----------------------------------------------------------------------
# Freevo - A Home Theater PC framework
# Copyright (C) 2002 Krister Lagerstrom, et al.
--- 20,25 ----
***************
*** 170,176 ****
# One-time init
if _singleton == None:
! _singleton = util.SynchronizedObject(OSD())
return _singleton
--- 129,135 ----
# One-time init
if _singleton == None:
! _singleton = OSD()
return _singleton
*** ./src/childapp.py Sun Mar 14 12:43:08 2004
--- /home/dmeyer/src/freevo/./src/childapp.py Sun May 9 14:07:47 2004
***************
*** 410,416 ****
# Combine saved data and first line, send to app
if self.logger:
self.logger.write(saved + lines[0]+'\n')
! self.callback(saved + lines[0])
saved = ''
# There's one or more lines + possibly a partial line
--- 410,416 ----
# Combine saved data and first line, send to app
if self.logger:
self.logger.write(saved + lines[0]+'\n')
! rc.callback(self.callback, saved + lines[0])
saved = ''
# There's one or more lines + possibly a partial line
***************
*** 422,434 ****
for line in lines[1:-1]:
if self.logger:
self.logger.write(line+'\n')
! self.callback(line)
else:
# Send all lines to the app
for line in lines[1:]:
if self.logger:
self.logger.write(line+'\n')
! self.callback(line)
--- 422,434 ----
for line in lines[1:-1]:
if self.logger:
self.logger.write(line+'\n')
! rc.callback(self.callback, line)
else:
# Send all lines to the app
for line in lines[1:]:
if self.logger:
self.logger.write(line+'\n')
! rc.callback(self.callback, line)
--
Quitters never win, and winners never quit, but those who never quit AND
never win are idiots.