Bugzilla – Bug 2293
Extra track info shows info for wrong track
Last modified: 2008-09-15 14:37:04 UTC
Sometimes, when playing a random songs mix, the information that you get when pressing right on a song in the now playing list doesn't always correspond to the selected song. Instead, I often get info on a previous song in the list. I'm running random mix with the number old tracks setting set to blank (i.e. infinite). This could be a bug with random mix, but I've been unable to work it out. Given that the behaviour is exhibited by the now playing list, please don't assign it to me unless there's something random mix specific that needs fixing. Either way, this could do with being fixed pre 6.2. Steps to reproduce: - Enable a now playing screensaver - Play (not add) a random songs mix - Press now playing - Let the screensaver kick in, and let the first song finish without interrupting the screensaver - Press left to cancel the screensaver and therefore take you back to now playing - Note the track that is being displayed (it should correspond to what you're hearing) - Press left again to take you into the extra info screen After the last step, you should find that the extra info screen is displaying info for the previous track, not the current one. This only seems to happen if a now playing screensaver is enabled. If you now press Now Playing to "reset" the playlist, it sorts itself out.
I've noticed that the info seems to be shown for the last track that was viewed on the client. If you leave it playing many tracks with the screensaver on interrupted, when you press left it shows the info for a track from ages ago.
All referencs to left should be right. Anyone want a lift? ;-)
exiting the screensaver goes back to where it was, ie the song that was playing when it entered the screensaver. most modes save the last position and return to that position when going back. I'm not sure if the 'playlist' mode should break from that. if you scroll to a different song, it might be upsetting to leave and come back to the current song instead. Solution might be complicated for a small gain: Track current/other songs on entering and leaving as a completely separate lastSelection item from the rest. other ideas?
No, that's not the point. Exiting the screensaver by pressing right doesn't go back to where it was - it goes to the currently playing song. But, when you press right you get the info for what was assumedly the last song you were viewing. The link between the song and its additional info has been broken.
confusing, since the code would seem to leave the song wherever it is for poping out of screenaver. however, I can reproduce with any playlist and any button. I will look into this.
Created attachment 911 [details] reset the index when returning to playlist long ago, we added a check for "wasshowing" that allowed the return to hte playlist display to show the current song if it was showing prior to the screensaver. calling jump at the same time as calling for the currentSongLines will also reset the browse index, feeding trackinfo with the right track index. we can't force the jump in setmode, since returning from trackinfo on a different playlist index (via pop) should still go back to that song, instead of the currently playing song.
I'm a little nervous about calling jump() from the lines function (the lines functions shouldn't affect state, only describe it... To be honest, i don't completely understand the wasshowing logic, but it seems clear that the root cause here is that the browseplaylistindex and showingNowPlaying are out of sync, no? Shouldn't we be calling jump() at wakeup time?
the browsePlaylistIndex is disconnected from the showingNowPlaying. The problem was that people would browse through the playlist, go into track info, or have the screensaver engage and want to return to THAT track on wakeup. I'll try it out in wakeup.
moved jump() to wakeup and tested. fix committed svn change 4665.
There are 536 bugs in the database with targets of '---' that were fixed prior to new year 2006. I am setting them to targets of 6.2.1 to keep them from showing up in my queries.