working-mpd-client

1.0.2 • Public • Published

WorkingMpdClient

An MPD client

yarn add working-mpd-client

Features

  • working-mpd-client supports the command sending
  • working-mpd-client allows subscribing on the server events (i.e. status updates)
  • working-mpd-client attempts to reconnect if the connection has been interrupted

Example

const mpdClient = new MpdClient({
  connectOptions: {
    host: 'localhost',
    port: 6600
  },
  reconnectOptions: {
    isUse: true,
    reconnectDelay: 2000
  }
}).on('error', console.error)
  .on('changed', (name) => {
    if (name === 'playlist') printPlaylist()
  })
  .on('ready', printPlaylist)
  .init()
 
function printPlaylist() {
  mpdClient.sendCommand('playlist', (err, result) => {
    if (err) {
      console.error(err)
    } else {
      console.log('\nnew playlist:\n' + result)
    }
  })
}

Information events

  • warn - a channel to notify about maintainable problems. Example: a connection has been interrupted but an attempt to reconnect will be performed. Another example: a server responded with an error to a command that did not register a callback.
  • error - a channel to notify about critical problems. Example: a connection has been interrupted and a reconnect attempt won't be performed.

Connection events

  • ready - a connection has been established
  • disconnected - a connection has been interrupted due to a problem or as the result of a destroy method call
  • reconnecting - an attempt to recconect is in progress
  • reconnected - an attempt to reconnect succeed
  • destroyed - a client has been destroyed

Server events

  • changed - a server reported a change

Known changes

  • options - an option has been changed (the repeat option or the random option for example)
  • output - an audio channel has been changed
  • mixer - the volume level has been changed
  • player - the playback has been paused, resumed, or stoped
  • playlist - the playlist has been changed
  • update - a database update has been started or completed
  • database - the track database has been updated

Methods

  • init - establish a connection; ready event follows a method call
  • destroy - closes a connection and rejects all the callbacks left in the callbacks queue; disconnected and destroyed events follow a method call
  • sendCommand - sends a command to a server and calls a callback when the server responds to the command
  • sendCommandList - sends a list of commands to a server and calls a callback when the server responds to all the commands

Ways to send a command

mpdClient
    .sendCommand('status')
    .sendCommand('status', someHandler)
    .sendCommand({
        cmd: 'add',
        args: 'somePath'
    })
    .sendCommand({
        cmd: 'add',
        args: ['somePath', 'anotherSomePath']
    }, someHandler)
    .sendCommandList([{
        cmd: 'add',
        args: 'somePath'
    }, 'play'])

MPD documention

http://www.musicpd.org/doc/protocol/

Readme

Keywords

Package Sidebar

Install

npm i working-mpd-client

Weekly Downloads

2

Version

1.0.2

License

MIT

Unpacked Size

16.2 kB

Total Files

8

Last publish

Collaborators

  • nskazki