diff --git a/mopidy/backends/gstreamer.py b/mopidy/backends/gstreamer.py index 777da391..15439c69 100644 --- a/mopidy/backends/gstreamer.py +++ b/mopidy/backends/gstreamer.py @@ -1,10 +1,6 @@ import logging -import gst - -from mopidy import config -from mopidy.backends import BaseBackend -from mopidy.models import Artist, Album, Track, Playlist +from mopidy.backends import BaseBackend, BasePlaybackController logger = logging.getLogger(u'backends.gstreamer') @@ -12,30 +8,8 @@ class GStreamerBackend(BaseBackend): def __init__(self, *args, **kwargs): super(GStreamerBackend, self).__init__(*args, **kwargs) - playlist = [] - player = gst.element_factory_make("playbin2", "player") - fakesink = gst.element_factory_make("fakesink", "fakesink") + self.playback = GStreamerPlaybackController(self) - player.set_property("video-sink", fakesink) - - self.player = player - - def _play(self): - if self._current_track is None: - return False - - self.player.set_property("uri", self._current_track.uri) - self.player.set_state(gst.STATE_PLAYING) - - return True - - def _stop(self): - self.player.set_state(gst.STATE_NULL) - - return True - - def playlist_add_track(self, uri, pos=None): - tracks = self._current_playlist.tracks - tracks.insert(pos or -1, Track(uri)) - - self._current_playlist = Playlist(tracks=tracks) +class GStreamerPlaybackController(BasePlaybackController): + def __init__(self, backend): + super(GStreamerPlaybackController, self).__init__(backend)