Update of /cvsroot/freevo/freevo/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1556

Modified Files:
        main.py osd.py 
Log Message:
Added support for animations. Most of the code is from Viggo Fredriksen


Index: osd.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/osd.py,v
retrieving revision 1.151
retrieving revision 1.152
diff -C2 -d -r1.151 -r1.152
*** osd.py      19 Mar 2004 21:03:39 -0000      1.151
--- osd.py      25 Apr 2004 11:23:57 -0000      1.152
***************
*** 11,14 ****
--- 11,17 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # 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
***************
*** 98,101 ****
--- 101,107 ----
  import cStringIO
          
+ # import animations
+ import animation
+ 
  
  help_text = """\
***************
*** 452,455 ****
--- 458,468 ----
          self.polygon = pygame.draw.polygon
  
+         # starts the render and it's thread
+         self.render = animation.render.get_singleton()
+ 
+         pygame.time.delay(10)   # pygame.time.get_ticks don't seem to
+                                 # work otherwise
+ 
+ 
      def focused_app(self):
          if len(self.app_list):
***************
*** 547,550 ****
--- 560,566 ----
          stop the display to give other apps the right to use it
          """
+         # stop all animations
+         self.render.suspendall()
+ 
          # backup the screen
          self.__stop_screen__ = pygame.Surface((self.width, self.height))
***************
*** 570,573 ****
--- 586,592 ----
              pygame.display.toggle_fullscreen()
              
+         # restart all animations
+         self.render.restartall()
+ 
          
      def toggle_fullscreen(self):
***************
*** 708,718 ****
  
  
!     def getsurface(self, x, y, width, height):
          """
          returns a copy of the given area of the current screen
          """
!         s = pygame.Surface((width, height))
!         s.blit(self.screen, (0,0), (x, y, width, height))
!         return s
      
  
--- 727,738 ----
  
  
!     def getsurface(self, x=0, y=0, width=0, height=0, rect=None):
          """
          returns a copy of the given area of the current screen
          """
!         if  rect != None:
!             return self.screen.subsurface(rect).convert()
!         else:
!             return self.screen.subsurface( (x, y, width, height) ).convert()
      
  
***************
*** 724,727 ****
--- 744,766 ----
  
  
+     def screenblit(self, source, destpos, sourcerect=None):
+         """
+         blit the source to the screen
+         """
+         if self.render:
+             r = source.get_rect()
+             w = r[2]
+             h = r[3]
+             if sourcerect:
+                 w = sourcerect[2]
+                 h = sourcerect[3]
+             self.render.damage( [(destpos[0], destpos[0], w, h)] )
+ 
+         if sourcerect != None:
+             return self.screen.blit(source, destpos, sourcerect)
+         else:
+             return self.screen.blit(source, destpos)
+ 
+ 
      def getfont(self, font, ptsize):
          """
***************
*** 1247,1285 ****
          if config.OSD_UPDATE_COMPLETE_REDRAW:
              rect = None
-             
-         # XXX New style blending
-         if blend_surface and blend_steps:
-             blend_last_screen = self.screen.convert()
-             blend_next_screen = blend_surface.convert()
-             blend_surface     = self.screen.convert()
- 
-             blend_start_time = time.time()
-             time_step = float(blend_time) / (blend_steps+1) 
-             step_size = 255.0 / (blend_steps+1)
-             blend_alphas = [int(x*step_size) for x in range(1, blend_steps+1)]
-             blend_alphas.append(255) # The last step must be 255
- 
-             for i in range(len(blend_alphas)):
-                 alpha = blend_alphas[i]
-                 #blend_surface.fill((255,0,0,0))
-                 #blend_last_screen.set_alpha(255 - alpha)
-                 blend_next_screen.set_alpha(alpha)
-                 blend_surface.blit(blend_last_screen, (0, 0))
-                 blend_surface.blit(blend_next_screen, (0, 0))
- 
-                 self.screen.blit(blend_surface, (0,0))
-                 if plugin.getbyname('osd'):
-                     plugin.getbyname('osd').draw(('osd', None), self)
-                 pygame.display.flip()
-                 if blend_time:
-                     # At what time does the next frame start?
-                     t_next = blend_start_time + time_step*(i+1)
-                     # How much time left until next frame starts?
-                     now = time.time()
-                     t_rem = t_next - now
-                     # Delay if needed
-                     if t_rem > 0.0:
-                         time.sleep(t_rem)
-             return
  
          if rect and not (stop_busyicon and self.busyicon.rect):
--- 1286,1289 ----
***************
*** 1292,1299 ****
--- 1296,1316 ----
          else:
              pygame.display.flip()
+ 
          if stop_busyicon:
              self.busyicon.rect = None
          
  
+     def sleep(self, sleep_time):
+         if self.render.realtime:
+             tick  = pygame.time.get_ticks()
+             start = tick
+             while tick - start < sleep_time * 100:
+                 self.render.update(tick)
+                 tick = pygame.time.get_ticks()
+         else:
+             self.render.update(pygame.time.get_ticks())
+             time.sleep(sleep_time)
+             
+         
      def _getbitmap(self, url):
          """

Index: main.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/main.py,v
retrieving revision 1.119
retrieving revision 1.120
diff -C2 -d -r1.119 -r1.120
*** main.py     20 Apr 2004 17:33:57 -0000      1.119
--- main.py     25 Apr 2004 11:23:55 -0000      1.120
***************
*** 11,14 ****
--- 11,17 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.120  2004/04/25 11:23:55  dischi
+ # Added support for animations. Most of the code is from Viggo Fredriksen
+ #
  # Revision 1.119  2004/04/20 17:33:57  dischi
  # lsdvd check
***************
*** 430,434 ****
                  child.poll()
  
!             time.sleep(0.01)
  
  
--- 433,437 ----
                  child.poll()
  
!             osd.sleep(0.01)
  
  



-------------------------------------------------------
This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek
For a limited time only, get FREE Ground shipping on all orders of $35
or more. Hurry up and shop folks, this offer expires April 30th!
http://www.thinkgeek.com/freeshipping/?cpg=12297
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to