diff --git a/beetsplug/bpd/__init__.py b/beetsplug/bpd/__init__.py index 95598ff18..8d90b5cf6 100644 --- a/beetsplug/bpd/__init__.py +++ b/beetsplug/bpd/__init__.py @@ -412,6 +412,11 @@ class BaseServer(object): current_id = self._item_id(self.playlist[self.current_index]) yield u'song: ' + six.text_type(self.current_index) yield u'songid: ' + six.text_type(current_id) + if len(self.playlist) > self.current_index + 1: + # If there's a next song, report its index too. + next_id = self._item_id(self.playlist[self.current_index + 1]) + yield u'nextsong: ' + six.text_type(self.current_index + 1) + yield u'nextsongid: ' + six.text_type(next_id) if self.error: yield u'error: ' + self.error diff --git a/test/test_player.py b/test/test_player.py index 874a2db52..9bd75519f 100644 --- a/test/test_player.py +++ b/test/test_player.py @@ -433,7 +433,8 @@ class BPDQueryTest(BPDTestHelper): } self.assertEqual(fields_not_playing, set(responses[0].data.keys())) fields_playing = fields_not_playing | { - 'song', 'songid', 'time', 'elapsed', 'bitrate', 'duration', 'audio' + 'song', 'songid', 'time', 'elapsed', 'bitrate', 'duration', + 'audio', 'nextsong', 'nextsongid' } self.assertEqual(fields_playing, set(responses[2].data.keys()))