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

Modified Files:
        bmovl.py 
Log Message:
more bmovl fixes, still unstable

Index: bmovl.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/video/plugins/bmovl.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** bmovl.py    8 Jul 2004 19:30:54 -0000       1.9
--- bmovl.py    9 Jul 2004 21:12:18 -0000       1.10
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.10  2004/07/09 21:12:18  dischi
+ # more bmovl fixes, still unstable
+ #
  # Revision 1.9  2004/07/08 19:30:54  dischi
  # o make some changes to make it look better
***************
*** 95,100 ****
--- 98,149 ----
  
          self.bmovl  = os.open('/tmp/bmovl', os.O_WRONLY)
+         self.x0, self.y0, self.x1, self.y1 = self.width, self.height, 0, 0
+ 
+ 
+     def load_scaled_image(self, filename, width, height):
+         i = self.loadbitmap(filename)
+         if not i:
+             return None
+         scale = max(float(i.get_width()) / width, float(i.get_height()) / height)
+         return pygame.transform.scale(i, (int(i.get_width() / scale),
+                                           int(i.get_height() / scale)))
+ 
  
  
+     def calc_update_area(self, x0, y0, x1, y1):
+         self.x0 = min(x0, self.x0)
+         self.y0 = min(y0, self.y0)
+         self.x1 = max(x1, self.x1)
+         self.y1 = max(y1, self.y1)
+ 
+ 
+     def screenblit(self, source, destpos, sourcerect=None):
+         if sourcerect:
+             w = sourcerect[2]
+             h = sourcerect[3]
+             ret = self.screen.blit(source, destpos, sourcerect)
+         else:
+             w, h = source.get_size()
+             ret = self.screen.blit(source, destpos)
+         self.calc_update_area(destpos[0], destpos[1], destpos[0] + w, destpos[1] + h)
+         return ret
+ 
+ 
+     def drawbox(self, x0, y0, x1, y1, width=None, color=None, fill=0, layer=None):
+         if layer == None:
+             self.calc_update_area(x0, y0, x1, y1)
+         return OSD.drawbox(self, x0, y0, x1, y1, width, color, fill, layer)
+ 
+ 
+     def drawstringframed(self, string, x, y, width, height, font, fgcolor=None,
+                          bgcolor=None, align_h='left', align_v='top', mode='hard',
+                          layer=None, ellipses='...', dim=True):
+         ret = OSD.drawstringframed(self, string, x, y, width, height, font, fgcolor,
+                                    bgcolor, align_h, align_v, mode, layer, ellipses, 
dim)
+         if not layer:
+             self.calc_update_area(ret[1][0], ret[1][1], ret[1][2], ret[1][3])
+         return ret
+     
+         
      def close(self):
          print 'close'
***************
*** 123,128 ****
  
          
!     def update(self, rect):
          update = self.screen.subsurface(rect)
          try:
              os.write(self.bmovl, 'RGBA32 %d %d %d %d %d %d\n' % \
--- 172,184 ----
  
          
!     def update(self, rect=None):
!         if not rect:
!             if self.x0 > self.x1:
!                 return
!             rect = self.x0, self.y0, self.x1 - self.x0, self.y1 - self.y0
!             self.x0, self.y0, self.x1, self.y1 = self.width, self.height, 0, 0
!         
          update = self.screen.subsurface(rect)
+ 
          try:
              os.write(self.bmovl, 'RGBA32 %d %d %d %d %d %d\n' % \
***************
*** 169,175 ****
          self.bmovl = None
  
!         self.start = 0
!         if self.player.item_info and hasattr(self.player.item_info, 'ts_start'):
!             self.start = self.player.item_info.ts_start
          self.last_timer = self.start
          
--- 225,238 ----
          self.bmovl = None
  
!         self.start  = 0
!         try:
!             self.length = int(self.item.info['length'])
!         except:
!             self.lebgth = 0
!         if self.player.item_info:
!             length = int(self.player.item_info.length)
!             if hasattr(self.player.item_info, 'ts_start'):
!                 self.start = self.player.item_info.ts_start
! 
          self.last_timer = self.start
          
***************
*** 198,204 ****
          bg = pygame.transform.scale(bg, (self.bmovl.width, self.bmovl.height))
  
!         self.bmovl.screen.blit(bg, (0,0))
! 
!         self.clockfont = skin.get_singleton().get_font('clock')
  
          # bar at the bottom
--- 261,265 ----
          bg = pygame.transform.scale(bg, (self.bmovl.width, self.bmovl.height))
  
!         self.clockfont = skin.get_singleton().get_font('bmovl timer')
  
          # bar at the bottom
***************
*** 208,211 ****
--- 269,275 ----
          self.width   = self.bmovl.width - 2 * self.x0
          
+         self.bmovl.screenblit(bg, (0, self.y0), (0, self.y0, self.bmovl.width,
+                                                  self.bmovl.height - self.y0))
+ 
          self.bmovl.drawbox(0, self.y0 + 1, self.bmovl.width, self.y0 + 1,
                             width=1, color=0x000000)
***************
*** 215,227 ****
  
  
!         self.bmovl.update((0, self.bmovl.height-self.height, self.bmovl.width, 
self.height))
  
          # draw movie image
!         i = self.bmovl.loadbitmap(os.path.join(config.IMAGE_DIR, 'gant/movie.png'))
!         scale = max(float(i.get_width()) / 200, float(i.get_height()) / \
!                     (self.height-config.OSD_OVERSCAN_Y-30))
!         image = pygame.transform.scale(i, (int(i.get_width() / scale),
!                                            int(i.get_height() / scale)))
!         self.bmovl.screen.blit(image, (self.x0, self.y0+30))
  
          title   = self.item.name
--- 279,293 ----
  
  
!         # draw movie image
!         f = os.path.join(config.IMAGE_DIR, 'gant/movie.png')
!         i = self.bmovl.load_scaled_image(f, 90, 90)
!         if i:
!             self.bmovl.screenblit(i, (self.x0 + self.width - i.get_width(), self.y0 
+ 30))
  
          # draw movie image
!         f = skin.get_singleton().settings.images['logo']
!         i = self.bmovl.load_scaled_image(f, 200, 90)
!         if i:
!             self.bmovl.screenblit(i, (self.x0, self.y0 + 30))
  
          title   = self.item.name
***************
*** 231,242 ****
              title    = String(show[0]) + " " + String(show[1]) + "x" + \
                         String(show[2]) + ' - ' + String(show[3])
-             
-         font = skin.get_singleton().get_font('title')
-         pos  = self.bmovl.drawstringframed(title, self.x0 + 100, self.y0 + 40,
-                                            self.width - 100, -1, font)
  
!         self.bmovl.update((0, self.bmovl.height-self.height, self.bmovl.width, 
self.height))
  
!         self.elapsed(self.last_timer)
  
          # and show it
--- 297,315 ----
              title    = String(show[0]) + " " + String(show[1]) + "x" + \
                         String(show[2]) + ' - ' + String(show[3])
  
!         offset = 20 + i.get_width()
  
!         font = skin.get_singleton().get_font('bmovl title')
!         pos  = self.bmovl.drawstringframed(title, self.x0 + offset, self.y0 + 40,
!                                            self.width - offset, -1, font)
! 
!         font = skin.get_singleton().get_font('bmovl text')
!         pos  = self.bmovl.drawstringframed('%s min.' % (self.length / 60),
!                                            self.x0 + offset, self.y0 + 80,
!                                            self.width - offset, -1, font)
! 
!         self.elapsed(self.last_timer, update=False)
! 
!         self.bmovl.update()
  
          # and show it
***************
*** 304,308 ****
  
          
!     def elapsed(self, timer):
          """
          update osd
--- 377,381 ----
  
          
!     def elapsed(self, timer, update=True):
          """
          update osd
***************
*** 313,317 ****
          if self.osd_visible:
              start = self.start
!             end   = self.start + int(self.item.info['length'])
  
              if not self.bg:
--- 386,390 ----
          if self.osd_visible:
              start = self.start
!             end   = self.start + self.length
  
              if not self.bg:
***************
*** 319,323 ****
                  self.bg.blit(self.bmovl.screen, (0, 0), (self.x0, self.y0, 
self.width, 30))
              else:
!                 self.bmovl.screen.blit(self.bg, (self.x0, self.y0))
  
              # new calc the bar
--- 392,396 ----
                  self.bg.blit(self.bmovl.screen, (0, 0), (self.x0, self.y0, 
self.width, 30))
              else:
!                 self.bmovl.screenblit(self.bg, (self.x0, self.y0))
  
              # new calc the bar
***************
*** 355,378 ****
                                          align_v='center', align_h='center')
  
!             self.bmovl.update((self.x0, self.y0, self.width, 30))
! 
  
            if time.strftime('%P') =='':
                  format ='%a %H:%M'
              else:
                  format ='%a %I:%M %P'
!             
              if not self.cbg:
!                 self.cbg = pygame.Surface((self.bmovl.width - 110, 65))
                  self.cbg.blit(self.bmovl.screen, (0, 0),
!                               (self.x0 + self.width - 200, self.y0 + 65, 200, 30))
              else:
!                 self.bmovl.screen.blit(self.cbg, (self.x0 + self.width - 200, 
self.y0 + 65))
  
              self.bmovl.drawstringframed(time.strftime(format),
!                                         self.x0 + self.width - 200, self.y0 + 68,
                                          200, -1, font, align_h='right')
  
!             self.bmovl.update((self.x0 + self.width - 200, self.y0 + 65, 200, 30))
  
          else:
--- 428,453 ----
                                          align_v='center', align_h='center')
  
!             if update:
!                 self.bmovl.update()
  
+             font = skin.get_singleton().get_font('bmovl clock')
            if time.strftime('%P') =='':
                  format ='%a %H:%M'
              else:
                  format ='%a %I:%M %P'
! 
              if not self.cbg:
!                 self.cbg = pygame.Surface((200, 30))
                  self.cbg.blit(self.bmovl.screen, (0, 0),
!                               (self.x0 + self.width - 200, self.y0 + 78, 200, 30))
              else:
!                 self.bmovl.screenblit(self.cbg, (self.x0 + self.width - 200, self.y0 
+ 78))
  
              self.bmovl.drawstringframed(time.strftime(format),
!                                         self.x0 + self.width - 200, self.y0 + 80,
                                          200, -1, font, align_h='right')
  
!             if update:
!                 self.bmovl.update()
  
          else:



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to