Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/ui.py
diff options
context:
space:
mode:
Diffstat (limited to 'ui.py')
-rw-r--r--ui.py112
1 files changed, 57 insertions, 55 deletions
diff --git a/ui.py b/ui.py
index 64786b2..d1a6726 100644
--- a/ui.py
+++ b/ui.py
@@ -50,6 +50,7 @@ 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
@@ -92,7 +93,13 @@ class UI:
self.piph = self.__class__.dim_PIPH
#ui modes
+
+ # True when we're in full-screen mode, False otherwise
self.FULLSCREEN = False
+
+ # True when we're showing live video feed in the primary screen
+ # area, False otherwise (even when we are still showing live video
+ # in a p-i-p)
self.LIVEMODE = True
self.LAST_MODE = -1
@@ -103,7 +110,11 @@ class UI:
self.LAST_TRANSCODING = False
self.TRANSCODING = False
self.MESHING = False
+
+ # RECD_INFO_ON is True when the 'info' for a recording is being
+ # display on-screen (who recorded it, tags, etc), and False otherwise.
self.RECD_INFO_ON = False
+
self.UPDATE_DURATION_ID = 0
self.UPDATE_TIMER_ID = 0
self.COUNTINGDOWN = False
@@ -367,6 +378,16 @@ class UI:
self.livePhotoWindow.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
self.livePhotoWindow.connect("visibility-notify-event", self._visibleNotifyCb)
+ #video playback windows
+ self.playOggWindow = PlayVideoWindow(Constants.colorBlack.gColor)
+ self.addToWindowStack( self.playOggWindow, self.windowStack[len(self.windowStack)-1] )
+ #self.playOggWindow.set_gplay(self.ca.gplay)
+ self.ca.gplay.window = self.playOggWindow
+ self.playOggWindow.set_events(gtk.gdk.BUTTON_RELEASE_MASK)
+ self.playOggWindow.connect("button_release_event", self._mediaClickedForPlayback)
+ self.playOggWindow.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
+ self.playOggWindow.connect("visibility-notify-event", self._visibleNotifyCb)
+
#border behind
self.pipBgdWindow = gtk.Window()
self.pipBgdWindow.modify_bg( gtk.STATE_NORMAL, Constants.colorWhite.gColor )
@@ -381,28 +402,13 @@ class UI:
self.liveVideoWindow.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
self.liveVideoWindow.connect("visibility-notify-event", self._visibleNotifyCb)
- #video playback windows
- self.playOggWindow = PlayVideoWindow(Constants.colorBlack.gColor)
- self.addToWindowStack( self.playOggWindow, self.windowStack[len(self.windowStack)-1] )
- #self.playOggWindow.set_gplay(self.ca.gplay)
- self.ca.gplay.window = self.playOggWindow
- self.playOggWindow.set_events(gtk.gdk.BUTTON_RELEASE_MASK)
- self.playOggWindow.connect("button_release_event", self._mediaClickedForPlayback)
- self.playOggWindow.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
- self.playOggWindow.connect("visibility-notify-event", self._visibleNotifyCb)
-
- #border behind
- self.pipBgdWindow2 = gtk.Window()
- self.pipBgdWindow2.modify_bg( gtk.STATE_NORMAL, Constants.colorWhite.gColor )
- self.pipBgdWindow2.modify_bg( gtk.STATE_INSENSITIVE, Constants.colorWhite.gColor )
- self.addToWindowStack( self.pipBgdWindow2, self.windowStack[len(self.windowStack)-1] )
-
- self.playLiveWindow = LiveVideoWindow(Constants.colorBlack.gColor)
- self.addToWindowStack( self.playLiveWindow, self.windowStack[len(self.windowStack)-1] )
- self.playLiveWindow.set_events(gtk.gdk.BUTTON_RELEASE_MASK)
- self.playLiveWindow.connect("button_release_event", self._playLiveButtonReleaseCb)
- self.playLiveWindow.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
- self.playLiveWindow.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] )
@@ -458,7 +464,7 @@ class UI:
if (self.ca.m.MODE == Constants.MODE_VIDEO):
if (not self.LIVEMODE and widget == self.playOggWindow):
temp_ACTIVE = False
- if ( self.LIVEMODE and widget == self.playLiveWindow):
+ if ( self.LIVEMODE and widget == self.liveVideoWindow):
temp_ACTIVE = False
@@ -482,8 +488,6 @@ class UI:
self.pipBgdWindow.resize( pgdDim[0], pgdDim[1] )
self.liveVideoWindow.resize( imgDim[0], imgDim[1] )
self.playOggWindow.resize( imgDim[0], imgDim[1] )
- self.playLiveWindow.resize( imgDim[0], imgDim[1] )
- self.pipBgdWindow2.resize( pgdDim[0], pgdDim[1] )
self.recordWindow.resize( eyeDim[0], eyeDim[1] )
self.maxWindow.resize( maxDim[0], maxDim[1] )
self.progressWindow.resize( prgDim[0], prgDim[1] )
@@ -541,8 +545,8 @@ class UI:
def hideWidgets( self ):
self.moveWinOffscreen( self.maxWindow )
self.moveWinOffscreen( self.pipBgdWindow )
- self.moveWinOffscreen( self.pipBgdWindow2 )
self.moveWinOffscreen( self.infWindow )
+ self.moveWinOffscreen( self.slowLiveVideoWindow )
if (self.FULLSCREEN):
self.moveWinOffscreen( self.recordWindow )
@@ -554,7 +558,7 @@ class UI:
self.moveWinOffscreen( self.liveVideoWindow )
elif (self.ca.m.MODE == Constants.MODE_VIDEO):
if (not self.LIVEMODE):
- self.moveWinOffscreen( self.playLiveWindow )
+ self.moveWinOffscreen( self.liveVideoWindow )
elif (self.ca.m.MODE == Constants.MODE_AUDIO):
if (not self.LIVEMODE):
self.moveWinOffscreen( self.liveVideoWindow )
@@ -830,6 +834,13 @@ class UI:
self.resumeLiveVideo()
+ def _returnButtonReleaseCb(self, widget, event):
+ self.ca.gplay.stop()
+ self.ca.glivex.stop()
+ self.ca.glive.play()
+ self.resumeLiveVideo()
+
+
def resumeLiveVideo( self ):
self.livePhotoCanvas.setImage( None )
@@ -862,7 +873,7 @@ class UI:
self.showLiveVideoTags()
self.LIVEMODE = True
- self.startLiveVideo( self.playLiveWindow, self.ca.glive.PIPETYPE_XV_VIDEO_DISPLAY_RECORD, False )
+ self.startLiveVideo( False )
self.updateVideoComponents()
@@ -926,12 +937,7 @@ class UI:
#set up the x & xv x-ition (if need be)
self.ca.gplay.stop()
- if (self.ca.m.MODE == Constants.MODE_PHOTO):
- self.startLiveVideo( self.liveVideoWindow, self.ca.glive.PIPETYPE_XV_VIDEO_DISPLAY_RECORD, True )
- elif (self.ca.m.MODE == Constants.MODE_VIDEO):
- self.startLiveVideo( self.playLiveWindow, self.ca.glive.PIPETYPE_XV_VIDEO_DISPLAY_RECORD, True )
- elif (self.ca.m.MODE == Constants.MODE_AUDIO):
- self.startLiveVideo( self.liveVideoWindow, self.ca.glive.PIPETYPE_AUDIO_RECORD, True )
+ self.startLiveVideo( True )
bottomKid = self.bottomCenter.get_child()
if (bottomKid != None):
@@ -944,19 +950,16 @@ class UI:
self.resetWidgetFadeTimer()
- def startLiveVideo(self, window, pipetype, force):
+ def startLiveVideo(self, force):
#We need to know which window and which pipe here
#if returning from another activity, active won't be false and needs to be to get started
- if (self.ca.glive.getPipeType() == pipetype
- and self.ca.glive.window == window
+ if (self.ca.glive.window == self.liveVideoWindow
and self.ca.props.active
and not force):
return
- self.ca.glive.setPipeType( pipetype )
- window.set_glive(self.ca.glive)
- self.ca.glive.stop()
+ self.liveVideoWindow.set_glive(self.ca.glive)
self.ca.glive.play()
@@ -1326,8 +1329,8 @@ class UI:
pos.append({"position":"inb", "window":self.livePhotoWindow} )
pos.append({"position":"inf", "window":self.infWindow} )
elif (self.ca.m.MODE == Constants.MODE_VIDEO):
- pos.append({"position":"pgd", "window":self.pipBgdWindow2} )
- pos.append({"position":"pip", "window":self.playLiveWindow} )
+ pos.append({"position":"pgd", "window":self.pipBgdWindow} )
+ pos.append({"position":"pip", "window":self.slowLiveVideoWindow} )
pos.append({"position":"inb", "window":self.playOggWindow} )
pos.append({"position":"inf", "window":self.infWindow} )
elif (self.ca.m.MODE == Constants.MODE_AUDIO):
@@ -1352,14 +1355,14 @@ class UI:
pos.append({"position":"tmr", "window":self.progressWindow} )
elif (self.ca.m.MODE == Constants.MODE_VIDEO):
if (self.LIVEMODE):
- pos.append({"position":"img", "window":self.playLiveWindow} )
+ pos.append({"position":"img", "window":self.liveVideoWindow} )
pos.append({"position":"max", "window":self.maxWindow} )
pos.append({"position":"eye", "window":self.recordWindow} )
pos.append({"position":"prg", "window":self.progressWindow} )
else:
pos.append({"position":"img", "window":self.playOggWindow} )
- pos.append({"position":"pgd", "window":self.pipBgdWindow2} )
- pos.append({"position":"pip", "window":self.playLiveWindow} )
+ pos.append({"position":"pgd", "window":self.pipBgdWindow} )
+ pos.append({"position":"pip", "window":self.slowLiveVideoWindow} )
if (not self.MESHING):
pos.append({"position":"max", "window":self.maxWindow} )
pos.append({"position":"scr", "window":self.scrubWindow} )
@@ -1419,8 +1422,8 @@ class UI:
pos.append({"position":"eye", "window":self.recordWindow} )
elif (self.ca.m.MODE == Constants.MODE_VIDEO):
if (not self.LIVEMODE):
- pos.append({"position":"pgd", "window":self.pipBgdWindow2} )
- pos.append({"position":"pip", "window":self.playLiveWindow} )
+ pos.append({"position":"pgd", "window":self.pipBgdWindow} )
+ pos.append({"position":"pip", "window":self.slowLiveVideoWindow} )
if (not self.MESHING):
pos.append({"position":"max", "window":self.maxWindow} )
pos.append({"position":"scr", "window":self.scrubWindow} )
@@ -1617,11 +1620,6 @@ class UI:
def showVideo( self, recd ):
- if (self.LIVEMODE):
- if (self.ca.glive.isXv()):
- self.ca.glive.setPipeType( self.ca.glive.PIPETYPE_X_VIDEO_DISPLAY )
- self.ca.glive.stop()
- self.ca.glive.play()
downloading = self.ca.requestMeshDownload(recd)
if (not downloading):
@@ -1641,12 +1639,17 @@ class UI:
if (not downloading):
mediaFilepath = recd.getMediaFilepath()
if (mediaFilepath != None):
+ self.ca.glive.stop()
+ self.ca.glivex.play()
videoUrl = "file://" + str( mediaFilepath )
self.ca.gplay.setLocation(videoUrl)
self.scrubWindow.doPlay()
ableToShowVideo = True
if (not ableToShowVideo):
+ # FIXME is this correct?
+ self.ca.glive.stop()
+ self.ca.glivex.play()
thumbFilepath = recd.getThumbFilepath( )
thumbUrl = "file://" + str( thumbFilepath )
self.ca.gplay.setLocation(thumbUrl)
@@ -1664,7 +1667,7 @@ class UI:
self.livePhotoCanvas.setImage( None )
elif (recd.type == Constants.TYPE_VIDEO):
self.ca.gplay.stop()
- self.startLiveVideo( self.playLiveWindow, self.ca.glive.PIPETYPE_XV_VIDEO_DISPLAY_RECORD, False )
+ self.startLiveVideo( False )
elif (recd.type == Constants.TYPE_AUDIO):
self.livePhotoCanvas.setImage( None )
self.startLiveAudio()
@@ -1679,7 +1682,6 @@ class UI:
self.ca.m.setUpdating(True)
self.ca.gplay.stop()
- self.ca.glive.setPipeType( self.ca.glive.PIPETYPE_AUDIO_RECORD )
self.liveVideoWindow.set_glive(self.ca.glive)
self.showLiveVideoTags()
@@ -2358,4 +2360,4 @@ class AudioToolbar(gtk.Toolbar):
def getDuration(self):
- return 60 * Constants.DURATIONS[self.durCb.combo.get_active()] \ No newline at end of file
+ return 60 * Constants.DURATIONS[self.durCb.combo.get_active()]