!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ alpha+Joachim Fasting <joachim.fasting@gmail.com> Safe-Inferred+Represents various MPD errors (aka. ACKs). An unknown ACK (aka. bug) File already exists (ACK 56)  An operation requiring playback  got interrupted (ACK 55)  Update already running (ACK 54) !Playlist loading failed (ACK 53) A system error (ACK 52) "Playlist at maximum size (ACK 51) $File or directory not found ACK 50) Unknown command (ACK 5)  Authentication required (ACK 4) "Invalid password supplied (ACK 3)  Invalid argument passed (ACK 2) BThe MPDError type is used to signal errors, both from the MPD and  otherwise.  ACK type and a message from the  server Used for misc. errors %MPD returned an unexpected response. + This is a bug, either in the library or  in MPD itself. The connection timed out MPD not responding     alpha+Joachim Fasting <joachim.fasting@gmail.com> Safe-InferredBA typeclass to allow for multiple implementations of a connection  to an MPD server. 2Open (or re-open) a connection to the MPD server. Close the connection. 5Send a string to the server and return its response. EGet underlying Handle (or Nothing, if no connection is estabilished) ;Produce a password to send to the server should it ask for  one. *Alters password to be sent to the server. Get MPD protocol version  alpha+Joachim Fasting <joachim.fasting@gmail.com>None.Like Prelude.read, but works with ByteString. /Like Prelude.reads, but works with ByteString.  alpha+Joachim Fasting <joachim.fasting@gmail.com>None-A uniform interface for argument preparation + The basic idea is that one should be able / to magically prepare an argument for use with , an MPD command, without necessarily knowing/caring , how it needs to be represented internally. BArguments for getResponse are accumulated as strings in values of D this type after being converted from whatever type (an instance of " MPDArg) they were to begin with. *Groups together arguments to getResponse. BConverts a command name and a string of arguments into the string  to hand to getResponse.      alpha+Joachim Fasting <joachim.fasting@gmail.com>NoneFContainer for MPD status. A percentage (0-100) "9A value that is incremented by the server every time the  playlist changes. #-The number of items in the current playlist. $ Current song's position in the playlist. % Current song's playlist ID. & Next song's position in the playlist. ' Next song's playlist ID. ( Time elapsed/ total time. )<Bitrate (in kilobytes per second) of playing song (if any). *Crossfade time. +MixRamp threshold in dB ,MixRamp extra delay in seconds - Samplerate/bits/&channels for the chosen output device  (see mpd.conf). .-Job ID of currently running update (if any). /BIf True, MPD will play only one song and stop after finishing it. 0:If True, a song will be removed after it has been played. 1Last error message (if any). 2#Container for database statistics. 4Number of artists. 5Number of albums. 6Number of songs. 7Daemon uptime in seconds. 8Total playing time. 9$Total play time of all the songs in  the database. :#Last database update in UNIX time. =Represents a single song item. @DMap of available tags (multiple occurences of one tag type allowed) ALast modification date BLength of the song in seconds CId in playlist DPosition in playlist ERepresents an output device. GOutput' s ID number HOutput's name as defined in the MPD  configuration file JResult of the lsInfo operation K Playlist LSong M Directory N!Represents the result of running count. P#Number of songs matching the query Q"Total play time of matching songs SPer album mode TPer track mode UDisable replay gain V'Represents the various MPD subsystems. WPlayback options XAudio outputs YThe volume mixer Z The player [The current playlist \Stored playlists ]Database updates ^The song database _*Represents the different playback states. dObject types. fA metadata value. hAvailable metadata types/(scope modifiers, used for searching the 4 database for entries with certain metadata values. iMUSICBRAINZ_ALBUMID  | MUSICBRAINZ_ALBUMARTISTID kComment r AlbumArtist  | AlbumArtistSort s ArtistSort u<Used for commands which require a path within the database. " If empty, the root path is used. w1Used for commands which require a playlist name. ) If empty, the current playlist is used. |1A type class for values that can be converted to  s. }Convert given value to  . ~Convert given value to  . %Convert given value an UTF-8 encoded  . Get list of specific tag type Add metadata tag value. v !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~k !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~& !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKNOPQRUTSV^]\[ZYXW_ba`cdefgh tsrqponmlkjiuvwxyz{|}~ alpha+Joachim Fasting <joachim.fasting@gmail.com>None'An interface for creating MPD queries. <For example, to match any song where the value of artist is "Foo", we  use:   Artist =? "Foo" HWe can also compose queries, thus narrowing the search. For example, to - match any song where the value of artist is "Foo" and the value of album  is "Bar" , we use: $ Artist =? "Foo" <&> Album =? "Bar" "An empty query. Matches anything. Create a query. Combine queries. alpha+Joachim Fasting <joachim.fasting@gmail.com>NoneA response is either an   or some result. Inner state for MPD @The main implementation of an MPD client. It actually connects & to a server and interacts with it. To use the error throwing/catching capabilities:  5 import Control.Monad.Error (throwError, catchError) (To run IO actions within the MPD monad: % import Control.Monad.Trans (liftIO) 5The most configurable API for running an MPD action. <Kill the server. Obviously, the connection is then invalid. 8Send a command to the MPD server and return the result.  !"#$%&'()*+,-.# #   !"#$%&'()*+,-. alpha+Joachim Fasting <joachim.fasting@gmail.com>None/ Builds a N instance from an assoc. list. 0Builds a list of E instances from an assoc. list 1 Builds a 2 instance from an assoc. list. 2 Builds a = instance from an assoc. list. 3 Builds a  instance from an assoc. list. 4*Run a parser and lift the result into the MPD monad 5>A helper that runs a parser on a string and, depending on the C outcome, either returns the result of some command applied to the < result, or a default value. Used when building structures. 6DA helper for running a parser returning Maybe on a pair of strings. L Returns Just if both strings where parsed successfully, Nothing otherwise. /01723456 /01723456 /01723456 alpha+Joachim Fasting <joachim.fasting@gmail.com>None89:;<=>?89:;<=>?89:;<=>? alpha+Joachim Fasting <joachim.fasting@gmail.com>NoneM+Clear the current error message in status.  Get the currently playing song. =Wait until there is a noteworthy change in one or more of MPD's  susbystems. JThe first argument is a list of subsystems that should be considered. An @ empty list specifies that all subsystems should be considered. ?A list of subsystems that have noteworthy changes is returned. 7Note that running this command will block until either  returns or is  cancelled by . Cancel . Get server statistics. Get the server' s status. Set consume mode Set crossfading between songs. Set random playing. Set repeating.  Set the volume (0-100 percent). Set single mode Set the replay gain mode. Get the replay gain options. Play the next song. Pause playing. Begin/continue playing. Play a file with given id. Play the previous song. Seek to some point in a song. *Seek to some point in a song (id version) Stop playing. Like , but returns a playlist id. Like ( but returns a list of the files added. ;Add a song (or a whole directory) to the current playlist. Clear the current playlist. )Remove a song from the current playlist. )Remove a song from the current playlist. 9Move a song to a given position in the current playlist. HMove a song from (songid) to (playlist index) in the playlist. If to is Q negative, it is relative to the current song in the playlist (if there is one). DRetrieve file paths and positions of songs in the current playlist. B Note that this command is only included for completeness sake; it's < deprecated and likely to disappear at any time, please use   instead. ?Search for songs in the current playlist with strict matching. 5Retrieve metadata for songs in the current playlist. *Displays a list of songs in the playlist. 0 If id is specified, only its info is returned. @Search case-insensitively with partial matches for songs in the  current playlist. ARetrieve a list of changed songs currently in the playlist since  a given playlist version. Like % but only returns positions and ids. Shuffle the playlist. !Swap the positions of two songs. ,Swap the positions of two songs (Id version .Retrieve a list of files in a given playlist. 1Retrieve metadata for files in a given playlist. %Retreive a list of stored playlists. Load an existing playlist. Like ( but returns a list of the files added. 8Add a song (or a whole directory) to a stored playlist. I Will create a new playlist if the one specified does not already exist. GClear a playlist. If the specified playlist does not exist, it will be  created. Remove a song from a playlist. ;Move a song to a given position in the playlist specified. Rename an existing playlist. Delete existing playlist. Save the current playlist. .Count the number of entries matching a query. :Search the database for entries exactly matching a query. 5Adds songs matching a query to the current playlist. %List all tags of the specified type. GList the songs (without metadata) in a database directory recursively.  Recursive . ;Non-recursively list the contents of a database directory. 5Search the database using case insensitive matching. Update the server' s database. 3 If no paths are given, all paths will be scanned. 8 Unreadable or non-existent paths are silently ignored. Like $ but also rescans unmodified files. 0Reads a sticker value for the specified object. .Adds a sticker value to the specified object. 2Delete a sticker value from the specified object. -Lists the stickers for the specified object. JSearches the sticker database for stickers with the specified name, below  the specified path. 1Send password to server to authenticate session. ! Password is sent as plain text. +Check that the server is still responding. Turn off an output device. Turn on an output device. -Retrieve information for all output devices. 'Retrieve a list of available commands. FRetrieve a list of unavailable (due to access restrictions) commands. ,Retrieve a list of available song metadata. *Retrieve a list of supported urlhandlers. JRetreive a list of decoder plugins with associated suffix and mime types. OOptional playlist position Optional range (start, end) Playlist position Original playlist New playlist name Metadata to list @ Object URI  Sticker name  Object URI  Sticker name Sticker value  Object URI  Sticker name A Object URI  Sticker name/sticker value Path  Sticker name URI/sticker value  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~O@Aalpha+Joachim Fasting <joachim.fasting@gmail.com>NoneLike !, but returns the update job id.  Toggles play/pause. Plays if stopped. Add a list of songs/folders to a playlist. ' Should be more efficient than running  many times. (Delete a list of songs from a playlist. C If there is a duplicate then no further songs will be deleted, so  take care to avoid them (see prune for this). "List the artists in the database. =List the albums in the database, optionally matching a given  artist. +List the songs in an album of some artist. Retrieve the current playlist.  Equivalent to playlistinfo Nothing. 5Increase or decrease volume by a given percent, e.g.  ' volume 10'/ will increase the volume by 10 percent, while  ' volume (-10)'& will decrease it by the same amount. alpha+Joachim Fasting <joachim.fasting@gmail.com>NoneA wrapper for ) that uses localhost:6600 as the default K host:port, or whatever is found in the environment variables MPD_HOST and & MPD_PORT. If MPD_HOST is of the form "password@host" the password  will be supplied as well.  Examples:  withMPD $ play Nothing 6 withMPD $ add_ "tool" >> play Nothing >> currentSong Same as :, but takes optional arguments that override MPD_HOST and  MPD_PORT. 5This is e.g. useful for clients that optionally take --port and --host - as command line arguments, and fall back to 's defaults if those  arguments are not given. optional override for MPD_HOST optional override for MPD_PORT BCDE  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  |}~{zywxuvhtsrqponmlkjifgdec_ba`V^]\[ZYXWRUTSNOPQJMLKEFGHI=>?@ABCD;<23456789: !"#$%&'()*+,-./01BCDEF  !"#$%&'())*+,-./0123456789:;<=>>?@ABCDEFFGGHIJKLMNNOPQRSTUVVWXYZ[\]^_`abcdefghijklmmnopqrstuvwxyz{{||xyz}~              !""#$%&'()*+,-./ 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A BCDEFlibmpd-0.8.0.2Network.MPD.Core Network.MPDNetwork.MPD.Commands.ExtensionsNetwork.MPD.Core.ErrorNetwork.MPD.Core.ClassNetwork.MPD.UtilNetwork.MPD.Commands.ArgNetwork.MPD.Commands.TypesNetwork.MPD.Commands.QueryNetwork.MPD.Commands.ParseNetwork.MPD.Commands.UtilNetwork.MPD.CommandsACKType UnknownACK FileExists NotPlayingBusy PlaylistLoadSystem PlaylistMax FileNotFoundUnknownCommandAuthInvalidPasswordInvalidArgumentMPDErrorACKCustom UnexpectedTimedOutNoMPDMonadMPDopenclosesend getHandle getPassword setPassword getVersionPasswordStatusstStatestVolumestRepeatstRandomstPlaylistVersionstPlaylistLength stSongPosstSongID stNextSongPos stNextSongIDstTime stBitrate stXFadeWidth stMixRampdBstMixRampDelaystAudio stUpdatingDbstSingle stConsumestErrorStats stsArtists stsAlbumsstsSongs stsUptime stsPlaytime stsDbPlaytime stsDbUpdateIdSong sgFilePathsgTagssgLastModifiedsgLengthsgIdsgIndexDevice dOutputID dOutputNamedOutputEnabledLsResult LsPlaylistLsSong LsDirectoryCountcSongs cPlaytimeReplayGainMode AlbumMode TrackModeOff SubsystemOptionsSOutputSMixerSPlayerS PlaylistSStoredPlaylistSUpdateS DatabaseSStatePausedStoppedPlayingSeconds ObjectTypeSongObjValueMetadataMUSICBRAINZ_TRACKIDMUSICBRAINZ_ARTISTIDDisc PerformerComposerDateGenreNameTrackTitleAlbumArtistPath PlaylistNameToStringtoStringtoTexttoUtf8 defaultCount defaultDevicesgGetTagsgAddTag defaultSong defaultStats defaultStatusQueryanything=?<&>ResponseMPDPortHost withMPDExkill getResponse clearError currentSongidlenoidlestatsstatusconsume crossfaderandomrepeat setVolumesinglereplayGainModereplayGainStatusnextpauseplayplayIdpreviousseekseekIdstopaddIdaddadd_cleardeletedeleteIdmovemoveIdplaylist playlistFind playlistInfo playlistIdplaylistSearch plChangesplChangesPosIdshuffleswapswapId listPlaylistlistPlaylistInfo listPlaylistsload playlistAdd playlistAdd_ playlistClearplaylistDelete playlistMoverenamermsavecountfindfindAddlistlistAll listAllInfolsInfosearchupdaterescan stickerGet stickerSet stickerDelete stickerList stickerFindpasswordping disableOutput enableOutputoutputscommands notCommandstagTypes urlHandlersdecodersupdateIdtoggleaddMany listArtists listAlbums listAlbum getPlaylistvolumewithMPDwithMPD_$fErrorMPDError$fShowMPDError$fExceptionMPDErrorreadreads breakChar parseDate parseIso8601 formatIso8601 iso8601FormatparseNum parseFracshowBool parseBool parseTripletoAssoc toAssocList splitGroupsMPDArgArgs<++><$>Commandprep $fMPDArgBool$fMPDArgInteger $fMPDArgInt $fMPDArg(,) $fMPDArgMaybe$fMPDArgByteString $fMPDArg[] $fMPDArgArgsbaseGHC.BaseString text-0.11.2.3Data.Text.InternalTextbytestring-0.10.0.0Data.ByteString.Internal ByteString $fMPDArgId$fMPDArgReplayGainMode$fMPDArgSubsystem$fMPDArgObjectType$fIsStringValue$fToStringValue$fMPDArgMetadata$fIsStringPath$fToStringPath$fIsStringPlaylistName$fToStringPlaylistNameMatch $fMPDArgQuery $fMonoidQuery $fShowMatchMPDStatestHandle stPassword stVersionrunMPDmpdOpenmpdClosempdSendignore parseResponseparseAcksplitAck $fMonadMPDMPD$fApplicativeMPD parseCount parseOutputs parseStats parseSong parseStatus runParserparsepairparseMaybeSong getResponse_ getResponses failOnEmpty getResponse1 takeValues takeEntriesextractEntries takeSongslsInfo' decodePairgetConnectionSettings getEnvDefault maybeRead