sanic/NOTES.md
2024-01-23 12:16:21 +01:00

2.3 KiB
Raw Blame History

features

frontend

  • Ribbon menu
    • Show mpd connection state
    • Display config dialog (is this even needed?)
    • Update DB button
      • Disable if running update is detected
    • Previous Track button
    • Next Track button
    • Stop button
    • Play button
      • Pause button
    • Track seeker
    • Repeat toggle
    • Shuffle toggle
    • xfade
      • decrease
      • increase
    • Volume
      • increase
      • decrease
      • set with bar
    • Now playing
      • shows current track
      • marquee effect
    • Time
  • Queue
    • Show queue
    • Highlight current track
    • Move track up
    • Move track down
    • Remove track
    • Clear queue button?
  • File browser
    • List all directories
    • Open folders have different icon (📂 vs 📁)
    • Folders with subfolders have a sign
    • Clicked folders contents are displayed in the results
    • Select tracks in results
    • Add selected tracks to queue button
  • Search
    • Search files results
    • Select tracks in results
    • Add selected tracks to queue button
  • Playlist browser
    • Show current playlists
    • Replace current queue with playlist button
    • Attach playlist to current queue button
    • Save current queue as playlist button
      • Show dialog
    • Delete selected playlist button

backend

  • Websocket
    • #status requests mpd infos:
      • status
      • currentsong
      • playlistinfo
    • #download requests download of URL (yt-dlp)
      • TBA
  • API endpoints
    • /api/update_db
    • /api/previous_track
    • /api/next_track
    • /api/stop
    • /api/play
    • /api/pause
    • /api/seek/:seconds
    • /api/repeat
    • /api/random
    • /api/volume/:level
    • /api/xfade/:seconds
    • /api/queue_clear
    • /api/queue_add/:songid
    • /api/queue_del/:songid
    • /api/queue_move/:songid/:pos
    • /api/list_database/:path
    • /api/list_playlists
    • /api/save_playlist
    • /api/delete_playlist

foo

  • client: connect websocket
  • server: on_connect: send full state
  • server: subscribe to changes
  • server: on_change: send to client