|
Network.MPD.Core | Stability | alpha | Maintainer | Joachim Fasting <joachim.fasting@gmail.com> |
|
|
|
|
|
Description |
The core datatypes and operations are defined here, including the
primary instance of the MonadMPD class, MPD.
|
|
Synopsis |
|
|
|
|
Classes
|
|
class (Monad m, MonadError MPDError m) => MonadMPD m where |
A typeclass to allow for multiple implementations of a connection
to an MPD server.
| | Methods | open :: m () | Open (or re-open) a connection to the MPD server.
| | close :: m () | Close the connection.
| | send :: String -> m () | Send a string to the server.
| | receive :: m [String] | Get response from the server.
| | getHandle :: m (Maybe Handle) | Get underlying Handle (or Nothing, if no connection is estabilished)
| | getPassword :: m Password | Produce a password to send to the server should it ask for
one.
| | setPassword :: String -> m () | Alters password to be sent to the server.
| | getVersion :: m (Int, Int, Int) | Get MPD protocol version
|
| | Instances | |
|
|
Data types
|
|
data MPD a |
The main implementation of an MPD client. It actually connects
to a server and interacts with it.
To use the error throwing/catching capabilities:
import Control.Monad.Error (throwError, catchError)
To run IO actions within the MPD monad:
import Control.Monad.Trans (liftIO)
| Instances | |
|
|
data MPDError |
The MPDError type is used to signal errors, both from the MPD and
otherwise.
| Constructors | NoMPD | MPD not responding
| TimedOut | The connection timed out
| Unexpected String | MPD returned an unexpected response.
This is a bug, either in the library or
in MPD itself.
| Custom String | Used for misc. errors
| ACK ACKType String | ACK type and a message from the
server
|
| Instances | |
|
|
data ACKType |
Represents various MPD errors (aka. ACKs).
| Constructors | InvalidArgument | Invalid argument passed (ACK 2)
| InvalidPassword | Invalid password supplied (ACK 3)
| Auth | Authentication required (ACK 4)
| UnknownCommand | Unknown command (ACK 5)
| FileNotFound | File or directory not found ACK 50)
| PlaylistMax | Playlist at maximum size (ACK 51)
| System | A system error (ACK 52)
| PlaylistLoad | Playlist loading failed (ACK 53)
| Busy | Update already running (ACK 54)
| NotPlaying | An operation requiring playback
got interrupted (ACK 55)
| FileExists | File already exists (ACK 56)
| UnknownACK | An unknown ACK (aka. bug)
|
| Instances | |
|
|
type Response = Either MPDError |
A response is either an MPDError or some result.
|
|
type Host = String |
|
type Port = Integer |
|
type Password = String |
|
Running
|
|
withMPDEx :: Host -> Port -> Password -> MPD a -> IO (Response a) |
The most configurable API for running an MPD action.
|
|
Interacting
|
|
getResponse :: MonadMPD m => String -> m [String] |
Send a command to the MPD server and return the result.
|
|
kill :: MonadMPD m => m () |
Kill the server. Obviously, the connection is then invalid.
|
|
Produced by Haddock version 2.7.2 |