Open herrernst opened 7 years ago
+1 would really like to see this. @herrernst any way you could include this PR in your raspberry pi builds?
What about adding this as a runtime option?
I don't think it should be included as a runtime option. This is a good stopgap measure until someone gets the repeat button working.
I also think this shouldn't be an extra option, but the repeat mode should be toggled/controlled with the Spotify app as raised in #237
I would agree that that is the best possible option. Unfortunately, I do not have any experience with rust and it doesn't seem to share a lot of similarities with languages I am familiar with. If you have the time and energy to implement that, it would be fantastic. It does seem that the repeat status is received in protocol/src/spirc.rs, and the original file (src/spirc.rs) could simply have the logic self.load_track(!was_last_track || is_repeating);
So I had a go at integrating this with the connect side of things, my first stab at rust: https://github.com/plietar/librespot/compare/master...kingosticks:master
However, it's not quite there yet as it's missing the ability to repeat just one song which is available on the native client (you toggle repeat, repeat one, and off through the same control on the Android app). The repeat state is just a boolean so maybe there's a different bit of state to control repeat one (single?). Any ideas welcome.
I also wanted to do shuffle but doing the actual track shuffle is a bit more work.
Currently, librespot plays endlessly: After the last track in a playlist/album it continues playing the first one.
This changes the behaviour to match the official Spotify client: The first track is loaded again, but the player is paused.
See #237