working-mpd-client
v1.0.2
Published
An MPD client
Downloads
8
Readme
WorkingMpdClient
An MPD client
yarn add working-mpd-client
Features
working-mpd-client
supports the command sendingworking-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 establisheddisconnected
- a connection has been interrupted due to a problem or as the result of adestroy
method callreconnecting
- an attempt to recconect is in progressreconnected
- an attempt to reconnect succeeddestroyed
- 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 changedmixer
- the volume level has been changedplayer
- the playback has been paused, resumed, or stopedplaylist
- the playlist has been changedupdate
- a database update has been started or completeddatabase
- the track database has been updated
Methods
init
- establish a connection;ready
event follows a method calldestroy
- closes a connection and rejects all the callbacks left in the callbacks queue;disconnected
anddestroyed
events follow a method callsendCommand
- sends a command to a server and calls a callback when the server responds to the commandsendCommandList
- 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/