mpd: Don't restart current track before seek
This commit is contained in:
parent
4b94a5a8ef
commit
ce318316a3
@ -58,6 +58,9 @@ v0.11.0 (in development)
|
||||
|
||||
- Add support for search by date.
|
||||
|
||||
- Make ``seek`` and ``seekid`` not restart the current track before seeking in
|
||||
it.
|
||||
|
||||
**Internal changes**
|
||||
|
||||
*Models:*
|
||||
|
||||
@ -329,6 +329,7 @@ def seek(context, songpos, seconds):
|
||||
|
||||
- issues ``seek 1 120`` without quotes around the arguments.
|
||||
"""
|
||||
songpos = int(songpos)
|
||||
if context.core.playback.tracklist_position.get() != songpos:
|
||||
playpos(context, songpos)
|
||||
context.core.playback.seek(int(seconds) * 1000).get()
|
||||
@ -343,6 +344,7 @@ def seekid(context, tlid, seconds):
|
||||
|
||||
Seeks to the position ``TIME`` (in seconds) of song ``SONGID``.
|
||||
"""
|
||||
tlid = int(tlid)
|
||||
tl_track = context.core.playback.current_tl_track.get()
|
||||
if not tl_track or tl_track.tlid != tlid:
|
||||
playid(context, tlid)
|
||||
|
||||
@ -371,45 +371,58 @@ class PlaybackControlHandlerTest(protocol.BaseTestCase):
|
||||
self.sendRequest('previous')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_seek(self):
|
||||
self.core.tracklist.add([Track(uri='dummy:a', length=40000)])
|
||||
def test_seek_in_current_track(self):
|
||||
seek_track = Track(uri='dummy:a', length=40000)
|
||||
self.core.tracklist.add([seek_track])
|
||||
self.core.playback.play()
|
||||
|
||||
self.sendRequest('seek "0"')
|
||||
self.sendRequest('seek "0" "30"')
|
||||
|
||||
self.assertEqual(self.core.playback.current_track.get(), seek_track)
|
||||
self.assertGreaterEqual(self.core.playback.time_position, 30000)
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_seek_with_songpos(self):
|
||||
def test_seek_in_another_track(self):
|
||||
seek_track = Track(uri='dummy:b', length=40000)
|
||||
self.core.tracklist.add(
|
||||
[Track(uri='dummy:a', length=40000), seek_track])
|
||||
self.core.playback.play()
|
||||
self.assertNotEqual(self.core.playback.current_track.get(), seek_track)
|
||||
|
||||
self.sendRequest('seek "1" "30"')
|
||||
|
||||
self.assertEqual(self.core.playback.current_track.get(), seek_track)
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_seek_without_quotes(self):
|
||||
self.core.tracklist.add([Track(uri='dummy:a', length=40000)])
|
||||
self.core.playback.play()
|
||||
|
||||
self.sendRequest('seek 0')
|
||||
self.sendRequest('seek 0 30')
|
||||
self.assertGreaterEqual(
|
||||
self.core.playback.time_position.get(), 30000)
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_seekid(self):
|
||||
self.core.tracklist.add([Track(uri='dummy:a', length=40000)])
|
||||
def test_seekid_in_current_track(self):
|
||||
seek_track = Track(uri='dummy:a', length=40000)
|
||||
self.core.tracklist.add([seek_track])
|
||||
self.core.playback.play()
|
||||
|
||||
self.sendRequest('seekid "0" "30"')
|
||||
|
||||
self.assertEqual(self.core.playback.current_track.get(), seek_track)
|
||||
self.assertGreaterEqual(
|
||||
self.core.playback.time_position.get(), 30000)
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_seekid_with_tlid(self):
|
||||
def test_seekid_in_another_track(self):
|
||||
seek_track = Track(uri='dummy:b', length=40000)
|
||||
self.core.tracklist.add(
|
||||
[Track(uri='dummy:a', length=40000), seek_track])
|
||||
self.core.playback.play()
|
||||
|
||||
self.sendRequest('seekid "1" "30"')
|
||||
|
||||
self.assertEqual(1, self.core.playback.current_tl_track.get().tlid)
|
||||
self.assertEqual(seek_track, self.core.playback.current_track.get())
|
||||
self.assertInResponse('OK')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user