From 3d284a890365041aa156f69eba8a6b99797ba0bd Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Thu, 18 Feb 2010 12:59:15 +0100 Subject: [PATCH] Implement seek --- mopidy/backends/__init__.py | 3 +++ mopidy/backends/gstreamer.py | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index eac1118c..6b688183 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -128,6 +128,9 @@ class BasePlaybackController(object): def resume(self): raise NotImplementedError + def seek(self, time_position): + raise NotImplementedError + @property def next_track(self): playlist = self.backend.current_playlist.playlist diff --git a/mopidy/backends/gstreamer.py b/mopidy/backends/gstreamer.py index c5c4fe90..b7116ab6 100644 --- a/mopidy/backends/gstreamer.py +++ b/mopidy/backends/gstreamer.py @@ -84,6 +84,14 @@ class GStreamerPlaybackController(BasePlaybackController): else: self._set_state(gst.STATE_PLAYING) + def seek(self, time_position): + if self.state == self.STOPPED: + self.play() + + self.bin.seek_simple(gst.Format(gst.FORMAT_TIME), + gst.SEEK_FLAG_FLUSH, time_position * gst.MSECOND) + self._set_state(gst.STATE_PLAYING) + @property def volume(self): return int(self.bin.get_property('volume') * 100)