[pitivi] pipeline, ui.viewer: move implementation of play, pause, and toggle into pipeline() class



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]