[pitivi] pipeline, ui.viewer: move implementation of play, pause, and toggle into pipeline() class
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Subject: [pitivi] pipeline, ui.viewer: move implementation of play, pause, and toggle into pipeline() class
- Date: Tue, 19 May 2009 14:02:33 -0400 (EDT)
commit eadfd8c300432254fce2cae7ee36bedd1d80525a
Author: Brandon Lewis <brandon_lewis berkeley edu>
Date: Fri May 15 13:55:51 2009 -0700
pipeline, ui.viewer: move implementation of play, pause, and toggle into pipeline() class
---
pitivi/pipeline.py | 11 +++++++++++
pitivi/ui/viewer.py | 29 ++++-------------------------
2 files changed, 15 insertions(+), 25 deletions(-)
diff --git a/pitivi/pipeline.py b/pitivi/pipeline.py
index 07c892a..77a8217 100644
--- a/pitivi/pipeline.py
+++ b/pitivi/pipeline.py
@@ -298,6 +298,12 @@ class Pipeline(Signallable, Loggable):
"""
self.setState(STATE_READY)
+ def togglePlayback(self):
+ if self.getState() == gst.STATE_PLAYING:
+ self.pause()
+ else:
+ self.play()
+
#{ Position and Seeking methods
def getPosition(self, format=gst.FORMAT_TIME):
@@ -405,6 +411,11 @@ class Pipeline(Signallable, Loggable):
self.debug("seeking succesfull")
self.emit('position', position)
+ def seekRelative(self, time):
+ seekvalue = max(0, min(self.getPosition() + time,
+ self.getDuration()))
+ self.seek(seekvalue)
+
#{ GStreamer object methods (For Action usage only)
def _getFactoryEntryForStream(self, factory, stream, create=False):
diff --git a/pitivi/ui/viewer.py b/pitivi/ui/viewer.py
index 302420b..d42ebf7 100644
--- a/pitivi/ui/viewer.py
+++ b/pitivi/ui/viewer.py
@@ -413,39 +413,18 @@ class PitiviViewer(gtk.VBox, Loggable):
## public methods for controlling playback
def play(self):
- if not self.pipeline.play() == gst.STATE_CHANGE_FAILURE:
- self.currentState = gst.STATE_PLAYING
- self.playpause_button.setPause()
+ self.pipeline.play()
def pause(self):
- if not self.pipeline.pause() == gst.STATE_CHANGE_FAILURE:
- self.currentState = gst.STATE_PAUSED
- self.playpause_button.setPlay()
+ self.pipeline.pause()
def togglePlayback(self):
if self.pipeline is None:
return
-
- if self.currentState == gst.STATE_PLAYING:
- self.pause()
- else:
- self.play()
+ self.pipeline.togglePlayback()
def seekRelative(self, time):
- seekvalue = max(0, min(self.current_time + time,
- self.pipeline.getDuration()))
- self.seek(seekvalue)
-
- def frameSeekRelative(self, frame):
- # FIXME: untested
- self.info("scroll direction:%s", event.direction)
- if direction in [gtk.gdk.SCROLL_LEFT, gtk.gdk.SCROLL_DOWN]:
- self.info("scrolling backward")
- seekvalue = max(self.current_frame - 1, 0)
- else:
- self.info("scrolling forward")
- seekvalue = min(self.current_frame + 1, self.pipeline.getDuration())
- self.seek(seekvalue, gst.FORMAT_DEFAULT)
+ self.pipeline.seekRelative(time)
def _posCb(self, unused_pipeline, pos):
self._newTime(pos)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]