NAME
   Net::MPD - Communicate with an MPD server

SYNOPSIS
     use Net::MPD;

     my $mpd = Net::MPD->connect();

     $mpd->stop();
     $mpd->clear();
     $mpd->search_add(Artist => 'David Bowie');
     $mpd->shuffle();
     $mpd->play();
     $mpd->next();

     while (1) {
       my @changes = $mpd->idle();
       print 'Changed: ' . join(', ', @changes) . "\n";
     }

DESCRIPTION
   Net::MPD is designed as a lightweight replacment for Audio::MPD which
   depends on Moose and is no longer maintained.

METHODS
 connect
   Arguments: [$address]

   Connects to the MPD running at the given address. Address takes the form
   of password@host:port. Both the password and port are optional. If no
   password is given, none will be used. If no port is given, the default
   (6600) will be used. If no host is given, "localhost" will be used.

   Returns a Net::MPD object on success and croaks on failure.

 version
   Returns the API version of the connected MPD server.

 update_status
   Issues a "status" command to MPD and stores the results in the local
   object. The results are also returned as a hashref.

MPD ATTRIBUTES
   Most of the "status" attributes have been written as combined
   getter/setter methods. Calling the "update_status" method will update
   these values. Only the items marked with an asterisk are writable.

   volume*
   repeat*
   random*
   single*
   consume*
   playlist
   playlist_length
   state
   song
   song_id
   next_song
   next_song_id
   time
   elapsed
   bitrate
   crossfade*
   mix_ramp_db*
   mix_ramp_delay*
   audio
   updating_db
   error
   replay_gain_mode*

MPD COMMANDS
   The commands are mostly the same as the MPD protocol
   <http://www.musicpd.org/doc/protocol/index.html> but some have been
   renamed slightly.

   clear_error
   current_song
   idle
   stats
   next
   pause
   play
   play_id
   previous
   seek
   seek_id
   seek_cur
   stop
   add
   add_id
   clear
   delete
   delete_id
   move
   move_id
   playlist_find
   playlist_id
   playlist_info
   playlist_search
   playlist_changes
   playlist_changes_pos_id
   prio
   prio_id
   shuffle
   swap
   swapid
   list_playlist
   list_playlist_info
   list_playlists
   load
   playlist_add
   playlist_clear
   playlist_delete
   playlist_move
   rename
   rm
   save
   count
   find
   find_add
   list
   list_all
   list_all_info
   ls_info
   search
   search_add
   search_add_pl
   update
   rescan
   sticker
   close
   kill
   ping
   disable_output
   enable_output
   outputs
   config
   commands
   not_commands
   tag_types
   url_handlers
   decoders
   subscribe
   unsubscribe
   channels
   read_messages
   send_message

TODO
 Command Lists
   MPD supports sending batches of commands but that is not yet available
   with this API.

 Asynchronous IO
   Event-based handling of the idle command would make this module more
   robust.

BUGS
 Idle connections
   MPD will close the connection if left idle for too long. This module
   will reconnect if it senses that this has occurred, but the first call
   after a disconnect will fail and have to be retried. Calling the "ping"
   command periodically will keep the connection open if you do not have
   any real commands to issue. Calling the "idle" command will block until
   something interesting happens.

 Reporting
   Report any issues on GitHub
   <https://github.com/bentglasstube/Net-MPD/issues>

AUTHOR
   Alan Berndt <[email protected]>

COPYRIGHT
   Copyright 2013 Alan Berndt

LICENSE
   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.

SEE ALSO
   Audio::MPD, MPD Protocol
   <http://www.musicpd.org/doc/protocol/index.html>