diff --git a/src/ch/blinkenlights/android/vanilla/PlaybackService.java b/src/ch/blinkenlights/android/vanilla/PlaybackService.java index c0dc4a8c..03b8cdb0 100644 --- a/src/ch/blinkenlights/android/vanilla/PlaybackService.java +++ b/src/ch/blinkenlights/android/vanilla/PlaybackService.java @@ -1898,4 +1898,19 @@ public final class PlaybackService extends Service { return mTimeline.getLength(); } + + /** + * Returns 'Song' with given id from timeline + */ + public Song getSongByQueuePosition(int id) { + return mTimeline.getSongByQueuePosition(id); + } + + public void jumpToQueuePosition(int id) { + pause(); + mTimeline.setCurrentQueuePosition(id); + setCurrentSong(0); + play(); + } + } diff --git a/src/ch/blinkenlights/android/vanilla/SongTimeline.java b/src/ch/blinkenlights/android/vanilla/SongTimeline.java index 8fb16c2e..e273db48 100644 --- a/src/ch/blinkenlights/android/vanilla/SongTimeline.java +++ b/src/ch/blinkenlights/android/vanilla/SongTimeline.java @@ -557,7 +557,22 @@ public final class SongTimeline { mCurrentPos = pos; mShuffledSongs = null; } - + + /** + * Hard-Jump to given queue position + */ + public Song setCurrentQueuePosition(int pos) { + mCurrentPos = pos; + return getSong(0); + } + + /** + * Returns 'Song' at given position in queue + */ + public Song getSongByQueuePosition(int id) { + return mSongs.get(id); + } + /** * Move to the next or previous song or album. *