Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shuffle/Repeat buttons are not fully functional. #19

Open
herrwusel opened this issue Jan 29, 2018 · 16 comments
Open

Shuffle/Repeat buttons are not fully functional. #19

herrwusel opened this issue Jan 29, 2018 · 16 comments

Comments

@herrwusel
Copy link

Good to see you guys keep this project alive!

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

@ComlOnline
Copy link
Contributor

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
Copy link
Contributor

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.

@sashahilton00 sashahilton00 changed the title Shuffle buttons don't work on some clients. Shuffle/Repeat buttons are not fully functional. Jan 29, 2018
@kingosticks
Copy link
Contributor

The different repeat modes (single vs all) is still covered by this issue but the remaining shuffle part of this is superseded by #264

@louy2
Copy link

louy2 commented Apr 3, 2020

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

@roderickvd
Copy link
Member

Will be tackling this under new-api efforts.

@apprehensions
Copy link

Status?

@roderickvd
Copy link
Member

Same.

@seraphgrid
Copy link

Status?

@roderickvd
Copy link
Member

Come on.

@devawaves
Copy link

would like to see this happen as well.

@seraphgrid
Copy link

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
Copy link
Member

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
Copy link

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
Copy link

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

@kinkard
Copy link

kinkard commented Jan 11, 2024

@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
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants