Update of /cvsroot/freevo/freevo/src/video/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv6299
Modified Files:
mplayer.py
Log Message:
bmovl support
Index: mplayer.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/video/plugins/mplayer.py,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** mplayer.py 23 Sep 2003 13:47:48 -0000 1.26
--- mplayer.py 1 Oct 2003 20:39:34 -0000 1.27
***************
*** 21,29 ****
# -----------------------------------------------------------------------
# $Log$
! # Revision 1.26 2003/09/23 13:47:48 outlyer
! # Remove this for now...
! #
! # Revision 1.25 2003/09/23 13:39:51 outlyer
! # Remove more informational chatter.
#
# Revision 1.24 2003/09/20 17:03:20 dischi
--- 21,26 ----
# -----------------------------------------------------------------------
# $Log$
! # Revision 1.27 2003/10/01 20:39:34 dischi
! # bmovl support
#
# Revision 1.24 2003/09/20 17:03:20 dischi
***************
*** 87,90 ****
--- 84,89 ----
import osd
osd = osd.get_singleton()
+ import skin
+ import pygame
# contains an initialized MPlayer() object
***************
*** 110,114 ****
data = re.search( "^MPlayer (?P<version>\S+)", data )
if data:
! _debug_("MPlayer version is: %s" % data.group( "version" ),2)
data = data.group( "version" )
if data[ 0 ] == "1":
--- 109,113 ----
data = re.search( "^MPlayer (?P<version>\S+)", data )
if data:
! _debug_("MPlayer version is: %s" % data.group( "version" ))
data = data.group( "version" )
if data[ 0 ] == "1":
***************
*** 118,122 ****
elif data[ 0 : 7 ] == "dev-CVS":
mplayer_version = 9999
! _debug_("MPlayer version set to: %s" % mplayer_version,2)
child.wait()
--- 117,121 ----
elif data[ 0 : 7 ] == "dev-CVS":
mplayer_version = 9999
! _debug_("MPlayer version set to: %s" % mplayer_version)
child.wait()
***************
*** 165,169 ****
self.mode = mode # setting global var to mode.
! _debug_('MPlayer.play(): mode=%s, filename=%s' % (mode, filename),2)
if mode == 'file' and not os.path.isfile(filename) and not network_play:
--- 164,168 ----
self.mode = mode # setting global var to mode.
! _debug_('MPlayer.play(): mode=%s, filename=%s' % (mode, filename))
if mode == 'file' and not os.path.isfile(filename) and not network_play:
***************
*** 233,236 ****
--- 232,238 ----
mpl += (' ' + config.MPLAYER_SOFTWARE_SCALER )
+ if os.path.exists('/tmp/bmovl'):
+ mpl += ' -vf bmovl=1:0:/tmp/bmovl'
+
command = mpl + ' "' + filename + '"'
***************
*** 265,278 ****
self.file = item
self.thread.start(MPlayerApp, (command, item, network_play))
self.item = item
! _debug_('MPlayer.play(): Starting thread, cmd=%s' % command,2)
rc.app(self)
return None
def stop(self):
"""
--- 267,379 ----
self.file = item
+ self.bmovl = None
self.thread.start(MPlayerApp, (command, item, network_play))
self.item = item
! _debug_('MPlayer.play(): Starting thread, cmd=%s' % command)
rc.app(self)
+ # bmovl support?
+ if os.path.exists('/tmp/bmovl'):
+ # show warning until this code is stable
+ print 'Found /tmp/bmovl, activating experimental bmovl support'
+ self.bmovl = os.open('/tmp/bmovl', os.O_WRONLY)
+ self.osd_visible = False
return None
+ def update_osd(self):
+ """
+ bmovl: update elapsed time and current time
+ """
+ s = self.osd_bg.convert()
+ length = self.item.elapsed
+ pos = osd.drawstringframed('%d:%02d:%02d' % ( length / 3600, (length % 3600)
/ 60,
+ length % 60),
+ 10, 10, osd.width / 2, -1, self.osd_font.font,
+ self.osd_font.color, layer=s)
+
+ length = self.item.getattr('length')
+ if length:
+ pos = osd.drawstringframed(length, 10, pos[1][3]+5, osd.width / 2, -1,
+ self.osd_font.font, self.osd_font.color,
+ layer=s)
+
+ clock = time.strftime('%a %I:%M %P')
+ osd.drawstringframed(clock,
s.get_width()-10-self.osd_font.font.stringsize(clock),
+ 10, osd.width / 2, -1, self.osd_font.font,
+ self.osd_font.color, layer=s)
+
+ os.write(self.bmovl, 'RGBA32 %d %d %d %d %d %d\n' % \
+ (s.get_width(), s.get_height(), 0, osd.height-s.get_height(), 0, 0))
+ os.write(self.bmovl, pygame.image.tostring(s, 'RGBA'))
+
+
+ def show_osd(self):
+ """
+ bmovl: init bmovl osd and show it
+ """
+ _debug_('show osd')
+
+ if not self.item.elapsed:
+ _debug_('not ready')
+ return
+
+ height = config.OVERSCAN_Y + 100
+ if not skin.get_singleton().settings.images.has_key('background'):
+ _debug_('no background')
+ return
+
+ bg = osd.loadbitmap(skin.get_singleton().settings.images['background'])
+ bg = pygame.transform.scale(bg, (osd.width, osd.height))
+
+ font = skin.get_singleton().GetFont('title')
+ font_tagline = skin.get_singleton().GetFont('info tagline')
+
+ topbar = bg.subsurface((0,0,osd.width,height)).convert()
+ osd.drawbox(0, height-1, osd.width, height-1, width=1, color=0x000000,
layer=topbar)
+
+ title = self.item.name
+ tagline = self.item.getattr('tagline')
+
+ if self.item.tv_show:
+ show = config.TV_SHOW_REGEXP_SPLIT(self.item.name)
+ title = show[0] + " " + show[1] + "x" + show[2]
+ tagline = show[3]
+
+ pos = osd.drawstringframed(title, 10, 10, osd.width-config.OVERSCAN_X-130,
+ -1, font.font, font.color, layer=topbar)
+ if tagline:
+ osd.drawstringframed(tagline, 10, pos[1][3]+5,
+ osd.width-config.OVERSCAN_X-130, -1,
+ font_tagline.font, font_tagline.color, layer=topbar)
+
+ if self.item.image:
+ image = pygame.transform.scale(osd.loadbitmap(self.item.image), (65, 90))
+ topbar.blit(image, (osd.width-config.OVERSCAN_X-100,
config.OVERSCAN_Y+5))
+
+ os.write(self.bmovl, 'RGBA32 %d %d %d %d %d %d\n' % \
+ (topbar.get_width(), topbar.get_height(), 0, 0, 0, 1))
+ os.write(self.bmovl, pygame.image.tostring(topbar, 'RGBA'))
+
+ self.osd_bg =
bg.subsurface((0,osd.height-height,osd.width,height)).convert()
+ osd.drawbox(0, 0, osd.width, 0, width=1, color=0x000000, layer=self.osd_bg)
+ self.osd_font = skin.get_singleton().GetFont('clock')
+
+ self.update_osd()
+ self.thread.app.refresh = self.update_osd
+ os.write(self.bmovl, 'SHOW\n')
+
+
+ def hide_osd(self):
+ """
+ bmovl: hide osd
+ """
+ _debug_('hide')
+ self.thread.app.refresh = None
+ os.write(self.bmovl, 'HIDE\n')
+
+
def stop(self):
"""
***************
*** 281,285 ****
self.thread.stop('quit\n')
rc.app(None)
!
--- 382,388 ----
self.thread.stop('quit\n')
rc.app(None)
! if self.bmovl:
! os.close(self.bmovl)
! self.bmovl = None
***************
*** 331,334 ****
--- 434,445 ----
return self.item.eventhandler(event)
+ if event == TOGGLE_OSD and self.bmovl:
+ if self.osd_visible:
+ self.hide_osd()
+ else:
+ self.show_osd()
+ self.osd_visible = not self.osd_visible
+ return True
+
try:
if event == VIDEO_SEND_MPLAYER_CMD:
***************
*** 429,433 ****
self.exit_type = None
self.osdfont = osd.getfont(config.OSD_DEFAULT_FONTNAME,
config.OSD_DEFAULT_FONTSIZE)
!
def kill(self):
--- 540,544 ----
self.exit_type = None
self.osdfont = osd.getfont(config.OSD_DEFAULT_FONTNAME,
config.OSD_DEFAULT_FONTSIZE)
! self.refresh = None
def kill(self):
***************
*** 478,483 ****
m = self.RE_TIME(line) # Convert decimal
if hasattr(m,'group'):
self.item.elapsed = int(m.group(1))+1
!
elif line.find("Exiting...") == 0:
m = self.RE_EXIT(line)
--- 589,597 ----
m = self.RE_TIME(line) # Convert decimal
if hasattr(m,'group'):
+ t = self.item.elapsed
self.item.elapsed = int(m.group(1))+1
! if t != self.item.elapsed and self.refresh:
! self.refresh()
!
elif line.find("Exiting...") == 0:
m = self.RE_EXIT(line)
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog