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