diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-04-20 23:18:23 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-04-20 23:19:18 (GMT) |
commit | 88f2a5f3c2834f508a19f7cc8a4ec5a8ea2b0916 (patch) | |
tree | 2760f47677ca16dff8b0344572f3da8560849738 /ui.py | |
parent | 2e08c002759d09e31d13b96de02490d467da4e16 (diff) |
Rewrite glive.py
* Use uuid and do not md5 video files
* Fallback to ximagesink if xvimagesink is unaccessible
* Use one pass for encodings
* Remove glivex and add thumb_play to glive
Diffstat (limited to 'ui.py')
-rw-r--r-- | ui.py | 47 |
1 files changed, 25 insertions, 22 deletions
@@ -34,6 +34,9 @@ import time import pango import hippo +import logging +logger = logging.getLogger('record:ui.py') + #from sugar.graphics.toolcombobox import ToolComboBox #from sugar.graphics.tray import HTray from sugar.graphics.toolbutton import ToolButton @@ -50,7 +53,6 @@ from p5_button import P5Button from p5_button import Polygon from p5_button import Button from glive import LiveVideoWindow -from glivex import SlowLiveVideoWindow from gplay import PlayVideoWindow from recorded import Recorded from button import RecdButton @@ -402,14 +404,6 @@ class UI: self.liveVideoWindow.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK) self.liveVideoWindow.connect("visibility-notify-event", self._visibleNotifyCb) - self.slowLiveVideoWindow = SlowLiveVideoWindow(Constants.colorBlack.gColor) - self.addToWindowStack( self.slowLiveVideoWindow, self.windowStack[len(self.windowStack)-1] ) - self.slowLiveVideoWindow.set_glivex(self.ca.glivex) - self.slowLiveVideoWindow.set_events(gtk.gdk.BUTTON_RELEASE_MASK) - self.slowLiveVideoWindow.connect("button_release_event", self._returnButtonReleaseCb) - self.slowLiveVideoWindow.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK) - self.slowLiveVideoWindow.connect("visibility-notify-event", self._visibleNotifyCb) - self.recordWindow = RecordWindow(self) self.addToWindowStack( self.recordWindow, self.windowStack[len(self.windowStack)-1] ) @@ -546,7 +540,6 @@ class UI: self.moveWinOffscreen( self.maxWindow ) self.moveWinOffscreen( self.pipBgdWindow ) self.moveWinOffscreen( self.infWindow ) - self.moveWinOffscreen( self.slowLiveVideoWindow ) if (self.FULLSCREEN): self.moveWinOffscreen( self.recordWindow ) @@ -742,6 +735,7 @@ class UI: img = camerac.cairo_surface_from_gdk_pixbuf(pixbuf) self.livePhotoCanvas.setImage( img ) + self.ca.glive.thumb_play() self.LIVEMODE = False self.updateVideoComponents() @@ -831,12 +825,7 @@ class UI: def _liveButtonReleaseCb(self, widget, event): - self.resumeLiveVideo() - - - def _returnButtonReleaseCb(self, widget, event): self.ca.gplay.stop() - self.ca.glivex.stop() self.ca.glive.play() self.resumeLiveVideo() @@ -1309,6 +1298,17 @@ class UI: def updateVideoComponents( self ): + logger.debug('updateVideoComponents: MODE=(%s,%s) FULLSCREEN=(%s,%s)' \ + ' LIVE=(%s,%s) RECD_INFO=(%s,%s) TRANSCODING=(%s,%s)' \ + ' MESHING=(%s,%s) windowStack=%s' \ + % (self.LAST_MODE, self.ca.m.MODE, + self.LAST_FULLSCREEN, self.FULLSCREEN, + self.LAST_LIVE, self.LIVEMODE, + self.LAST_RECD_INFO, self.RECD_INFO_ON, + self.LAST_TRANSCODING, self.TRANSCODING, + self.LAST_MESHING, self.MESHING, + len(self.windowStack))) + if ( (self.LAST_MODE == self.ca.m.MODE) and (self.LAST_FULLSCREEN == self.FULLSCREEN) and (self.LAST_LIVE == self.LIVEMODE) @@ -1330,7 +1330,7 @@ class UI: pos.append({"position":"inf", "window":self.infWindow} ) elif (self.ca.m.MODE == Constants.MODE_VIDEO): pos.append({"position":"pgd", "window":self.pipBgdWindow} ) - pos.append({"position":"pip", "window":self.slowLiveVideoWindow} ) + pos.append({"position":"pip", "window":self.liveVideoWindow} ) pos.append({"position":"inb", "window":self.playOggWindow} ) pos.append({"position":"inf", "window":self.infWindow} ) elif (self.ca.m.MODE == Constants.MODE_AUDIO): @@ -1362,7 +1362,7 @@ class UI: else: pos.append({"position":"img", "window":self.playOggWindow} ) pos.append({"position":"pgd", "window":self.pipBgdWindow} ) - pos.append({"position":"pip", "window":self.slowLiveVideoWindow} ) + pos.append({"position":"pip", "window":self.liveVideoWindow} ) if (not self.MESHING): pos.append({"position":"max", "window":self.maxWindow} ) pos.append({"position":"scr", "window":self.scrubWindow} ) @@ -1423,7 +1423,7 @@ class UI: elif (self.ca.m.MODE == Constants.MODE_VIDEO): if (not self.LIVEMODE): pos.append({"position":"pgd", "window":self.pipBgdWindow} ) - pos.append({"position":"pip", "window":self.slowLiveVideoWindow} ) + pos.append({"position":"pip", "window":self.liveVideoWindow} ) if (not self.MESHING): pos.append({"position":"max", "window":self.maxWindow} ) pos.append({"position":"scr", "window":self.scrubWindow} ) @@ -1595,6 +1595,7 @@ class UI: def showAudio( self, recd ): + self.ca.glive.thumb_play() self.LIVEMODE = False #if (recd != self.shownRecd): @@ -1620,6 +1621,8 @@ class UI: def showVideo( self, recd ): + logger.debug('showVideo') + downloading = self.ca.requestMeshDownload(recd) if (not downloading): @@ -1639,18 +1642,18 @@ class UI: if (not downloading): mediaFilepath = recd.getMediaFilepath() if (mediaFilepath != None): - self.ca.glive.stop() - self.ca.glivex.play() + self.ca.glive.thumb_play(use_fallback=True) + logger.debug('showVideo2 file=%s' % mediaFilepath) videoUrl = "file://" + str( mediaFilepath ) self.ca.gplay.setLocation(videoUrl) self.scrubWindow.doPlay() ableToShowVideo = True if (not ableToShowVideo): + self.ca.glive.thumb_play(use_fallback=True) # FIXME is this correct? - self.ca.glive.stop() - self.ca.glivex.play() thumbFilepath = recd.getThumbFilepath( ) + logger.debug('showVideo3 file=%s' % thumbFilepath) thumbUrl = "file://" + str( thumbFilepath ) self.ca.gplay.setLocation(thumbUrl) |