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.

Reply via email to