Skip to content

jimmikristensen/PHP-MPD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

PHP-MPD

A PHP library to communicated with Music Player Daemon.

This PHP class lets you develop a web-interface for Music Player Daemon (MPD). It provides easy interaction with any (MPD) server and it very simple to use. You do not have to know much about MPD to use this class, as long as you know the IP, Port and Password of the MPD, this class lets you execute any of the functions available in the MPD server and returns the information back to you in a easy managable format that lets you use the information on your web-interface.

Useful Resources:
MPD Community Wiki: http://mpd.wikia.com/wiki/MusicPlayerDaemonWiki
MPD Wiki Page: http://en.wikipedia.org/wiki/MusicPlayerDaemon

Quick Usage Example

require('mpd.class.php');
$mpd = new MPD('localhost', 6600, 'my_password');
if ($mpd === true) {
  // connection successful
} else {
  echo $mpd->get_error();
}

API

/**
 * Sets consume state to STATE, STATE should be 0 or 1. 
 * When consume is activated, each song played is removed from playlist. 
 * 
 * @param integer $state The consume state
 * @return boolean Status of the command
 */
consume($state)

/**
 * Sets crossfading between songs.
 * 
 * @param integer $seconds Crossfade seconds
 * @return boolean Status of the command
 */
xfade($seconds)

/**
 * Sets random state to STATE, STATE should be 0 or 1.
 * 
 * @param integer $state 0 = no and 1 = yes
 * @return boolean Status of the command
 */
random($state)

/**
 * Sets repeat state to STATE, STATE should be 0 or 1.
 * 
 * @param integer $state 0 = no and 1 = yes
 * @return boolean Status of the command
 */
repeat($state)

/**
 * Sets volume to VOL, the range of volume is 0-100.
 * 
 * @param integer $vol The new volume
 * @return boolean Status of the command
 */
setvol($vol)

/**
 * Adjusts the volume up or down depending if the modifier is positive or negative
 * 
 * @param integer $mod Volume modification
 * @return boolean Status of the command
 */
adjust_vol($mod)

/**
 * Sets single state to STATE, STATE should be 0 or 1. When single is activated, playback 
 * is stopped after current song, or song is repeated if the 'repeat' mode is enabled. 
 * 
 * @param integer $state Activate or deactivate single
 * @return boolean Status of the command
 */
single($state)

/**
 * Plays next song in the playlist.
 * 
 * @return boolean Status of the command
 */
next()

/**
 * Plays previous song in the playlist.
 * 
 * @return boolean Status of the command
 */
prev()

/**
 * Toggles pause/resumes playing, PAUSE is 0 or 1. 
 * 
 * @param integer $pause 0 = play and 1 = pause
 * @return boolean Status of the command
 */
pause($pause)

/**
 * Stops playing.
 * 
 * @return boolean Status of the command
 */
stop()

/**
 * Begins playing the playlist at song number SONGPOS.
 * 
 * @param integer $song_pos The song position in playlist
 * @return boolean Status of the command
 */
play($song_pos)

/**
 * Begins playing the playlist at song SONGID. 
 * 
 * @param integer $id The song ID
 * @return boolean Status of the command
 */
play_id($id)

/**
 * Seeks to the position TIME (in seconds) of entry SONGPOS in the playlist.
 * 
 * @param integer $song_pos The song position in playlist
 * @param integer $time Position time in seconds
 * @return boolean Status of the command
 */
seek($song_pos, $time)

/**
 * Seeks to the position TIME (in seconds) of song SONGID.
 * 
 * @param integer $song_id ID of the song
 * @param integer $time Position time in seconds
 * @return boolean Status of the command
 */
seek_id($song_id, $time)

/**
 * Adds the file URI to the playlist (directories add recursively). URI can also be a single file.
 * 
 * @param string $uri The file or dir to add
 * @return boolean Status of the command
 */
playlist_add($uri)

 /**
 * Adds a song to the playlist (non-recursive) and returns the song id.
 * URI is always a single file or URL. For example:
 * addid "foo.mp3"
 * Id: 999
 * OK
 * 
 * @param string $uri The file or dir to add
 * @param integer $pos Position in the playlist
 * @return boolean Status of the command
 */
playlist_add_id($uri, $pos)

/**
 * Clears the current playlist. 
 * 
 * @return boolean Status of the command
 */
playlist_clear()

/**
 * Deletes the song SONGID from the playlist
 * 
 * @param integer $id ID to remove
 * @return boolean Status of the command
 */
playlist_remove($id)

/**
 * Moves the song at FROM to TO in the playlist.
 * 
 * @param integer $from From playlist position
 * @param integer $to To playlist position
 * @return boolean Status of the command
 */
playlist_move($from, $to)

/**
 * Moves the range of songs at START:END to TO in the playlist.
 * 
 * @param integer $start Start position
 * @param integer $end End position
 * @param integer $to New position
 * @return boolean Status of the command
 */
playlist_move_multi($start, $end, $to)

/**
 * Moves the song with FROM (songid) to TO (playlist index) in the playlist. 
 * If TO is negative, it is relative to the current song in the playlist (if there is one). 
 * 
 * @param integer $from From song id
 * @param integer $to To playlist index
 * @return boolean Status of the command
 */
playlist_move_id($from, $to)

/**
 * Shuffles the current playlist.
 * 
 * @return boolean Status of the command
 */
playlist_shuffle()

/**
 * Lists the contents of the directory URI.
 * 
 * @param string $uri The dir to display, default is root dir
 * @return boolean|array Returns false if command failed and an array containing the dirlist and other stuffs on success ;)
 */
dir_list($uri = '')

/**
 * List all genres
 * 
 * @return boolean|array Returns false if command failed and an array containing the result on success
 */
list_genres()

/**
 * List all artists
 * 
 * @return boolean|array Returns false if command failed and an array containing the result on success
 */
list_artists()

/**
 * List all albums
 * 
 * @return boolean|array Returns false if command failed and an array containing the result on success
 */
list_albums()

/**
 * Searches for any song that contains WHAT. The search WHAT is not case sensitive.
 * TYPE can be any tag supported by MPD, or one of the two special parameters — 
 * file to search by full path (relative to database root), and any to match against all available tags
 * 
 * @param string $type Type to search for
 * @param string $what case insensitive search string
 * @return boolean|array Returns false if command failed and an array containing the result on success
 */
search($type, $what)

/**
 * Counts the number of songs and their total playtime in the db matching WHAT exactly.
 * 
 * @param string $type Type to search for
 * @param string $what case sensitive search string
 * @return boolean|array Returns false if command failed and an array containing the result on success
 */
count($type, $what)

/**
 * Updates the music database: find new files, remove deleted files, update modified files.
 * URI is a particular directory or song/file to update. If you do not specify it, everything is updated.
 * 
 * @param string $uri (Optional) If URI is give database only updates files in that URI
 * @return boolean|array Returns false if command fails and returns updating_db: JOBID where JOBID is a positive number identifying the update job on success
 */
update_db($uri = '')

/**
 * Displays the song info of the current song (same song that is identified in status).
 * 
 * @return boolean|array Returns false on failure and current song on success
 */
current_song()

/**
 * Displays a list of all songs in the playlist.
 * 
 * @return array Returns an array containing the songs in the playlist
 */
playlist()

/**
 * Reports the current status of the player and the volume level.
 * 
 * @return array Returns and array containing the status
 */
server_status()

/**
 * Displays statistics.
 * 
 * @return array Returns an array containing the statistics
 */
server_stats()

/**
 * Prints a list of the playlist directory.
 * 
 * @return boolean|array Returns false on failure and playlists on success 
 */
playlists()

/**
 * Lists the songs with metadata in the playlist. Playlist plugins are supported. 
 * 
 * @param string $playlist Name of the playlist to display
 * @return boolean|array Returns false on failure and playlist info on success
 */
playlistinfo($playlist)

/**
 * Loads the playlist into the current queue. Playlist plugins are supported. 
 * 
 * @param string $playlist Playlist to load
 * @return boolean Returns false on failure and true on success
 */
load_playlist($playlist)

/**
 * Adds URI to the playlist NAME.m3u.
 * NAME.m3u will be created if it does not exist.
 * 
 * @param string $playlist Playlist to add to
 * @param string $uri URI to add
 * @return boolean Returns false on failure and true on success
 */
add_to_playlist($playlist, $uri)

/**
 * Clears the playlist NAME.m3u.
 * 
 * @param string $playlist Playlist to clear
 * @return boolean Returns false on failure and true on success
 */
clear_playlist($playlist)

/**
 * Deletes SONGPOS from the playlist NAME.m3u
 * 
 * @param string $playlist Playlist to remove from
 * @param integer $song_pos Position of the song to remove
 * @return boolean Returns false on failure and true on success
 */
remove_from_playlist($playlist, $song_pos)

/**
 * Moves SONGID in the playlist NAME.m3u to the position SONGPOS.
 * 
 * @param string $playlist The playlist to interact with
 * @param integer $song_id I of the song to move
 * @param integer $song_pos Position of the new position in the playlist
 * @return boolean Returns false on failure and true on success
 */
move_song_in_playlist($playlist, $song_id, $song_pos)

/**
 * Renames the playlist NAME.m3u to NEW_NAME.m3u.
 * 
 * @param string $playlist Playlist to rename
 * @param strnig $new_name New name of playlist
 * @return boolean Returns false on failure and true on success
 */
rename_playlist($playlist, $new_name)

/**
 * Removes the playlist NAME.m3u from the playlist directory.
 * 
 * @param string $playlist Playlist to remove
 * @return boolean Returns false on failure and true on success
 */
remove_playlist($playlist)

/**
 * Saves the current playlist to NAME.m3u in the playlist directory.
 * 
 * @param string $playlist Name of the new playlist
 * @return boolean Returns false on failure and true on success
 */
save_playlist($playlist)

/**
 * Closes the connection to MPD.
 * 
 * @return boolean Returns false on failure and true on success
 */
close()

/**
 * Kills MPD.
 * 
 * @return boolean Returns false on failure and true on success
 */
kill()

/**
 * Send a command to the MPD server.
 * 
 * @param string $cmd The command to send
 * @param array $args An array with the command arguments
 * @return boolean|string Returns false if the command fails else returns the command result from the MPD server
 */
cmd($cmd, $args = array())

/**
 * Updates the object variables.
 * 
 * @return boolean Returns false if something went wrong else returns true
 */
update()

/**
 * Get the an array of error messages that has been collected since the object was instantiated.
 * 
 * @return array Returns an array with error messages
 */
get_error()

/**
 * Get the MPD connection status.
 * 
 * @return boolean Returns true if connected to MPD server, else returns false
 */
get_connection_status()

/**
 * Get the MPD version.
 * 
 * @return string Returns the version of the MPD
 */
get_version()

/**
 * Get the current debug log.
 * 
 * @return array Returns the debug log
 */
get_debug_log()

/**
 * Get the MPD class version.
 * 
 * @return string Returns the currenct version of this MPD class
 */
get_php_mpd_version()

About

A PHP library to communicated with Music Player Daemon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published