librespot-org / librespot

Open Source Spotify client library
MIT License
4.74k stars 581 forks source link

Shuffle/Repeat buttons are not fully functional. #19

Open herrwusel opened 6 years ago

herrwusel commented 6 years ago

Good to see you guys keep this project alive!

Basically copy/paste from plietar's repo issue #82

ComlOnline commented 6 years ago

Just so you know the shuffle and repeat from @kingosticks was added in #2, I know there are still some things to fix so I'll keep this open:

See his comments here and here.

kingosticks commented 6 years ago

Unfortunately it's only half done, if you disable shuffle it doesn't go back to the original track order like the official client does. I can't work out an elegant way to solve this, my only idea is to make another copy of the tracklist and restore that when shuffle is disabled

An update in regards to the above. It's become obvious this isn't a good idea as librespot may have never seen a non-shuffled version of the tracklist (e.g. a mobile client shuffled the tracklist whilst disconnected from the network). Re-fetching the tracks from the context uri is simplest. You just have to ensure you save the queued tracks before doing so as they are not part of the context and would otherwise be lost. I think the official Android client has a bug here as if you enable/disable shuffle a few times in a row you sometimes suddenly lose the queued tracks.

kingosticks commented 5 years ago

The different repeat modes (single vs all) is still covered by this issue but the remaining shuffle part of this is superseded by https://github.com/librespot-org/librespot/issues/264

louy2 commented 4 years ago

Running into this, cannot repeat a single track. Anything I can help with?

roderickvd commented 3 years ago

Will be tackling this under new-api efforts.

apprehensions commented 2 years ago

Status?

roderickvd commented 2 years ago

Same.

seraphgrid commented 2 years ago

Status?

roderickvd commented 2 years ago

Come on.

devawaves commented 2 years ago

would like to see this happen as well.

seraphgrid commented 2 years ago

In hindsight I should likely apologize as I came into this discussion section with frustration and confusion. I have no intention of rushing your development or forcing you to tunnel vision on just the repeat function. It's actually not that big of a deal in my life, Spotify. Continue focusing on what's important and spotifyd will be everything you're seeing ahead. Best of luck to you.

roderickvd commented 1 year ago

Reporting back after some time: with the current spirc we have no way of indicating that we support single repeat mode, so the client doesn't offer it. Maybe it will be possible when we start publishing our device capabilities on HTTPS, which is targeted for v0.5. Otherwise it will require the dealer interface which will certainly have to wait until v0.6.

arch-btw commented 1 year ago

Running into this, cannot repeat a single track. Anything I can help with?

For anyone facing this issue, the repeat single track option works with librespot-java, this might be a temporary solution until this gets fixed in the Rust version 👍

apprehensions commented 1 year ago

i would rather live with the proprietary spotify client than to have to use that

kinkard commented 8 months ago

@roderickvd Can you elaborate a bit about the dealer interface or link some reference about it? The "repeat one" functionality is quite important for my use case and I want to try to dig into this topic.

roderickvd commented 8 months ago

librespot-java has implemented it. Basically it's a complete move away from Mercury-based spirc towards a web socket interface. One could port it from librespot-java: it requires major breaking (i.e. non-incremental) changes under the hood of librespot.