Sophie

Sophie

distrib > Fedora > 13 > x86_64 > media > updates > by-pkgid > 02c18074d3336e49c76b205748ff9df8 > files > 50

ghc-libmpd-doc-0.4.2-1.fc13.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
<title>Network/MPD.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-comment'>-- | Module    : Network.MPD</span>
<a name="line-2"></a><span class='hs-comment'>-- Copyright   : (c) Ben Sinclair 2005-2009, Joachim Fasting 2010</span>
<a name="line-3"></a><span class='hs-comment'>-- License     : LGPL (see LICENSE)</span>
<a name="line-4"></a><span class='hs-comment'>-- Maintainer  : Joachim Fasting &lt;joachim.fasting@gmail.com&gt;</span>
<a name="line-5"></a><span class='hs-comment'>-- Stability   : alpha</span>
<a name="line-6"></a><span class='hs-comment'>--</span>
<a name="line-7"></a><span class='hs-comment'>-- An MPD client library. MPD is a daemon for playing music that is</span>
<a name="line-8"></a><span class='hs-comment'>-- controlled over a network socket. Its site is at &lt;<a href="http://www.musicpd.org/">http://www.musicpd.org/</a>&gt;.</span>
<a name="line-9"></a><span class='hs-comment'>--</span>
<a name="line-10"></a><span class='hs-comment'>-- To avoid name clashes with the standard Prelude functions, do:</span>
<a name="line-11"></a><span class='hs-comment'>--</span>
<a name="line-12"></a><span class='hs-comment'>-- &gt; import qualified Network.MPD as MPD</span>
<a name="line-13"></a>
<a name="line-14"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>MPD</span> <span class='hs-layout'>(</span>
<a name="line-15"></a>    <span class='hs-comment'>-- * Basic data types</span>
<a name="line-16"></a>    <span class='hs-conid'>MonadMPD</span><span class='hs-layout'>,</span> <span class='hs-conid'>MPD</span><span class='hs-layout'>,</span> <span class='hs-conid'>MPDError</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-conid'>ACKType</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-conid'>Response</span><span class='hs-layout'>,</span>
<a name="line-17"></a>    <span class='hs-conid'>Host</span><span class='hs-layout'>,</span> <span class='hs-conid'>Port</span><span class='hs-layout'>,</span> <span class='hs-conid'>Password</span><span class='hs-layout'>,</span>
<a name="line-18"></a>    <span class='hs-comment'>-- * Connections</span>
<a name="line-19"></a>    <span class='hs-varid'>withMPD</span><span class='hs-layout'>,</span> <span class='hs-varid'>withMPDEx</span><span class='hs-layout'>,</span>
<a name="line-20"></a>    <span class='hs-keyword'>module</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>MPD</span><span class='hs-varop'>.</span><span class='hs-conid'>Commands</span><span class='hs-layout'>,</span>
<a name="line-21"></a>    <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-22"></a>
<a name="line-23"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>MPD</span><span class='hs-varop'>.</span><span class='hs-conid'>Commands</span>
<a name="line-24"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>MPD</span><span class='hs-varop'>.</span><span class='hs-conid'>Core</span>
<a name="line-25"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Network</span><span class='hs-varop'>.</span><span class='hs-conid'>MPD</span><span class='hs-varop'>.</span><span class='hs-conid'>Utils</span>
<a name="line-26"></a>
<a name="line-27"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>liftM</span><span class='hs-layout'>)</span>
<a name="line-28"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Environment</span> <span class='hs-layout'>(</span><span class='hs-varid'>getEnv</span><span class='hs-layout'>)</span>
<a name="line-29"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-conid'>Error</span> <span class='hs-layout'>(</span><span class='hs-varid'>isDoesNotExistError</span><span class='hs-layout'>)</span>
<a name="line-30"></a>
<a name="line-31"></a><a name="withMPD"></a><span class='hs-comment'>-- | A wrapper for 'withMPDEx' that uses localhost:6600 as the default</span>
<a name="line-32"></a><span class='hs-comment'>-- host:port, or whatever is found in the environment variables MPD_HOST and</span>
<a name="line-33"></a><span class='hs-comment'>-- MPD_PORT. If MPD_HOST is of the form \"password\@host\" the password</span>
<a name="line-34"></a><span class='hs-comment'>-- will be supplied as well.</span>
<a name="line-35"></a><span class='hs-comment'>--</span>
<a name="line-36"></a><span class='hs-comment'>-- Examples:</span>
<a name="line-37"></a><span class='hs-comment'>--</span>
<a name="line-38"></a><span class='hs-comment'>-- &gt; withMPD $ play Nothing</span>
<a name="line-39"></a><span class='hs-comment'>-- &gt; withMPD $ add_ "tool" &gt;&gt; play Nothing &gt;&gt; currentSong</span>
<a name="line-40"></a><span class='hs-definition'>withMPD</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>MPD</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Response</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
<a name="line-41"></a><span class='hs-definition'>withMPD</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-42"></a>    <span class='hs-varid'>port</span>       <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>read</span> <span class='hs-varop'>`liftM`</span> <span class='hs-varid'>getEnvDefault</span> <span class='hs-str'>"MPD_PORT"</span> <span class='hs-str'>"6600"</span>
<a name="line-43"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>host</span><span class='hs-layout'>,</span> <span class='hs-varid'>pw</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>parseHost</span> <span class='hs-varop'>`liftM`</span> <span class='hs-varid'>getEnvDefault</span> <span class='hs-str'>"MPD_HOST"</span> <span class='hs-str'>"localhost"</span>
<a name="line-44"></a>    <span class='hs-varid'>withMPDEx</span> <span class='hs-varid'>host</span> <span class='hs-varid'>port</span> <span class='hs-varid'>pw</span> <span class='hs-varid'>m</span>
<a name="line-45"></a>    <span class='hs-keyword'>where</span>
<a name="line-46"></a>        <span class='hs-varid'>getEnvDefault</span> <span class='hs-varid'>x</span> <span class='hs-varid'>dflt</span> <span class='hs-keyglyph'>=</span>
<a name="line-47"></a>            <span class='hs-varid'>catch</span> <span class='hs-layout'>(</span><span class='hs-varid'>getEnv</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>e</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>isDoesNotExistError</span> <span class='hs-varid'>e</span>
<a name="line-48"></a>                                    <span class='hs-keyword'>then</span> <span class='hs-varid'>return</span> <span class='hs-varid'>dflt</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>ioError</span> <span class='hs-varid'>e</span><span class='hs-layout'>)</span>
<a name="line-49"></a>        <span class='hs-varid'>parseHost</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>breakChar</span> <span class='hs-chr'>'@'</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
<a name="line-50"></a>                          <span class='hs-layout'>(</span><span class='hs-varid'>host</span><span class='hs-layout'>,</span> <span class='hs-str'>""</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>host</span><span class='hs-layout'>,</span> <span class='hs-str'>""</span><span class='hs-layout'>)</span>
<a name="line-51"></a>                          <span class='hs-layout'>(</span><span class='hs-varid'>pw</span><span class='hs-layout'>,</span> <span class='hs-varid'>host</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>host</span><span class='hs-layout'>,</span> <span class='hs-varid'>pw</span><span class='hs-layout'>)</span>
</pre></body>
</html>