Server

API

  • Anyone
    • get_capabilities() -> capabilities_list
    • authenticate(user_name, password) -> auth_token
  • User
    • get_current_song() -> song
    • vote(group) -> ?
    • unvote(group) -> ?
    • search(?) -> songs[]
    • volume_up/down -> volume
    • mute/unmute -> on|off
  • Admin
    • admin_skip
    • create_queue

Database Interface

Client Handler

Authentication Module

Government

Interface

  • add group(user, songs[])
  • delete group(user, songs[])
  • get next song
  • get current playlist

The authentication module is responsible for integrating user accounts and passwords. It exports a very simple interface that accepts a plain text user name and password and just returns true if it is a valid user.

Player

API

  • play file
  • volume up
  • volume down
  • mute
  • unmute