Merge commit 'adamcik/gstreamer'
This commit is contained in:
commit
3375f806f0
@ -377,7 +377,7 @@ class BasePlaybackController(object):
|
||||
"""
|
||||
The previous :class:`mopidy.models.Track` in the playlist.
|
||||
|
||||
For normal playback this is the next track in the playlist. If random
|
||||
For normal playback this is the previous track in the playlist. If random
|
||||
and/or consume is enabled it should return the current track instead.
|
||||
"""
|
||||
if self.repeat or self.consume or self.random:
|
||||
@ -386,11 +386,8 @@ class BasePlaybackController(object):
|
||||
if self.current_track is None or self.playlist_position == 0:
|
||||
return None
|
||||
|
||||
try:
|
||||
return self.backend.current_playlist.playlist.tracks[
|
||||
self.playlist_position - 1]
|
||||
except IndexError:
|
||||
return None
|
||||
return self.backend.current_playlist.playlist.tracks[
|
||||
self.playlist_position - 1]
|
||||
|
||||
@property
|
||||
def state(self):
|
||||
|
||||
@ -3,11 +3,13 @@ gobject.threads_init()
|
||||
# FIXME make sure we don't get hit by
|
||||
# http://jameswestby.net/weblog/tech/14-caution-python-multiprocessing-and-glib-dont-mix.html
|
||||
|
||||
import pygst
|
||||
pygst.require('0.10')
|
||||
|
||||
import gst
|
||||
import logging
|
||||
import threading
|
||||
|
||||
from mopidy.models import Track, Playlist
|
||||
from mopidy.backends import (BaseBackend,
|
||||
BasePlaybackController,
|
||||
BaseCurrentPlaylistController)
|
||||
@ -91,7 +93,7 @@ class GStreamerPlaybackController(BasePlaybackController):
|
||||
try:
|
||||
return self._bin.query_position(gst.FORMAT_TIME)[0] // gst.MSECOND
|
||||
except gst.QueryError, e:
|
||||
logger.error('time_position failed: %s',e )
|
||||
logger.error('time_position failed: %s', e)
|
||||
return 0
|
||||
|
||||
def destroy(self):
|
||||
|
||||
@ -10,7 +10,7 @@ from tests.backends.base import (BasePlaybackControllerTest,
|
||||
folder = os.path.dirname(__file__)
|
||||
folder = os.path.join(folder, '..', 'data')
|
||||
folder = os.path.abspath(folder)
|
||||
song = os.path.join(folder, 'song%s.mp3')
|
||||
song = os.path.join(folder, 'song%s.wav')
|
||||
song = 'file://' + song
|
||||
|
||||
# FIXME can be switched to generic test
|
||||
@ -24,3 +24,23 @@ class GStreamerPlaybackControllerTest(BasePlaybackControllerTest,
|
||||
unittest.TestCase):
|
||||
tracks = [Track(uri=song % i, id=i, length=4464) for i in range(1, 4)]
|
||||
backend_class = GStreamerBackend
|
||||
|
||||
def add_track(self, file):
|
||||
uri = 'file://' + os.path.join(folder, file)
|
||||
track = Track(uri=uri, id=1, length=4464)
|
||||
self.backend.current_playlist.add(track)
|
||||
|
||||
def test_play_mp3(self):
|
||||
self.add_track('blank.mp3')
|
||||
self.playback.play()
|
||||
self.assertEqual(self.playback.state, self.playback.PLAYING)
|
||||
|
||||
def test_play_ogg(self):
|
||||
self.add_track('blank.ogg')
|
||||
self.playback.play()
|
||||
self.assertEqual(self.playback.state, self.playback.PLAYING)
|
||||
|
||||
def test_play_flac(self):
|
||||
self.add_track('blank.flac')
|
||||
self.playback.play()
|
||||
self.assertEqual(self.playback.state, self.playback.PLAYING)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user