working-mpd-client
v1.0.2
Published
An MPD client
Readme
WorkingMpdClient
An MPD client
yarn add working-mpd-clientFeatures
working-mpd-clientsupports the command sendingworking-mpd-clientallows subscribing on the server events (i.e. status updates)working-mpd-clientattempts 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 adestroymethod 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;readyevent follows a method calldestroy- closes a connection and rejects all the callbacks left in the callbacks queue;disconnectedanddestroyedevents 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/
