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

Spirc: Replace Mecury with Dealer #1356

Draft
wants to merge 22 commits into
base: dev
Choose a base branch
from

Conversation

photovoltex
Copy link

As suggested from @roderickvd a draft PR so i can have some community feedback and give now and then updates on the progress.

The replacement is in a working state, so the very basic do work again. There is still a lot of cleanup and re-implementing to do.

But so far what is working:

  • transferring the playback so that we are the player
    • funnily enough, transferring back isn't working yet
  • play, pause, resume, prev, next, seek
  • just general communication of our state to other clients

Known Problems:

  • on the initial connection librespot doesn't appear, but if for example the volume is slightly updated, we should appear
  • if the session or spirc/dealer dies, we lose our complete ConnectState
    • it would be nice if that is preserved so we could start from that again
  • sometimes other client's forget that we are the current player
    • might be that that is already resolved, but i think i still saw that behavior not so long ago

What i still have to do:

  • handling the remaining request commands
  • transferring the state to a different player again
  • resolving the context from a cold state
    • currently it works really well if the playback starts from a different device like the web-player,
    • but from a cold start it's still a bit weird and not fully sorted out
  • shuffling has to be re-implemented
    • we can set restrictions for the clients getting our state
    • so for autoplay we should ignore shuffeling and just disable repeat and shuffle
  • i added the option for track repeat, but it's not handled yet
  • i would like to remove the remaining mercury calls
    • but for that i will have to see if the dealer sendes equivalent messages/requests

I tried to keep my code clean, but if there are points that i could improve and such, i would like to here them^^

@photovoltex
Copy link
Author

oh the branch might not compile because there are still some todo!() here and there which result in unreachable statements that clippy, understandably, doesn't like.

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

Successfully merging this pull request may close these issues.

1 participant