Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/ui.py
diff options
context:
space:
mode:
authorAleksey 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)
commit88f2a5f3c2834f508a19f7cc8a4ec5a8ea2b0916 (patch)
tree2760f47677ca16dff8b0344572f3da8560849738 /ui.py
parent2e08c002759d09e31d13b96de02490d467da4e16 (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.py47
1 files changed, 25 insertions, 22 deletions
diff --git a/ui.py b/ui.py
index eca4fb1..12ff80e 100644
--- a/ui.py
+++ b/ui.py
@@ -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)