While testing gapless playback more extensively with BubbleUPnP, I think
I found an issue with SetNextAVTransportURI behaviour in MC.
It concerns track reordering.
Suppose I have a gapless album (or just a succession of non-gaples tracks) whose track titles are in order:
Title 1
Title 2
...
Title n
Let's play this album in BubbleUPnP gaplessly to MC.
In the "Playing Now / Player" view, the playback queue shows:
Title 1
Title 2
That's fine. Title1 is playing and Title 2 was queud by SetNextAVTransportURI.
Now, while 'Title 1' is playing, in BubbleUPnP the user move track 'Title 5' just after 'Title 1' to play it just after.
BubbleUPnP detect reordering an call SetNextAVTransportURI('Title 5').
MC shows queue:
Title 1
Title 2
Title 5
Which is bogus since Title 5 should have replaced Title 2:
Title 1
Title 5
In short, with MC, SetNextAVTransportURI awalys append to what's in the queue instead of replacing what's to be played after the playing track.
There should'nt be more than 2 tracks in MC queue using SetNextAVTransportURI: the playing track and the eventual track that follows.
Another SetNextAVTransportURI issue in MC is that SetNextAVTransportURI("", "") should remove the track after the playing one. It doesn't, and if
SetNextAVTransportURI("", "") called with this queue:
Title 1
Title 2
produce:
Title 1
Title 2
Title 1
instead of just:
Title 1
SetNextAVTransportURI("", "") is called by Control points in the case the user remove the next track to be played and there is no track after it.