Sophie

Sophie

distrib > Mandriva > 2011.0 > i586 > by-pkgid > 110b7614098f68585a9812e7161c059a > files > 85

libmpdclient-devel-2.3-1mdv2011.0.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>libmpdclient: mpd/parser.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>mpd/parser.h File Reference</h1>
<p><a href="parser_8h_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9">mpd_parser_result</a> { <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a41a87daa64031ef34d5bccb31f66e510">MPD_PARSER_MALFORMED</a>, 
<a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a96a9f1e2be5a8a79049df3d61f4bc501">MPD_PARSER_SUCCESS</a>, 
<a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a7075525fbc0394d66481c204297d8cfb">MPD_PARSER_ERROR</a>, 
<a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a361b267b3554f225c7752c9418ce884f">MPD_PARSER_PAIR</a>
 }</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mpd_malloc struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#afc518effaa84cc6490f706da3514170e">mpd_parser_new</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a911d99a4276a77f02402603a7d06c691">mpd_parser_free</a> (struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *parser)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9">mpd_parser_result</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a2529288ab5c28c9d019e7d45f8b534be">mpd_parser_feed</a> (struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *parser, char *line)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mpd_pure bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a5fc814638529b909b29e6bd4261355bd">mpd_parser_is_discrete</a> (const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *parser)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mpd_pure enum <a class="el" href="protocol_8h.html#ae6a8b8b538b04a5fc22a063f83634c84">mpd_server_error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a66d10db3966783d6cac00fa942f95d7d">mpd_parser_get_server_error</a> (const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *parser)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mpd_pure unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a912552fc69a45b6030300a038019a696">mpd_parser_get_at</a> (const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *parser)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mpd_pure const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ac0e548692b155bfa5e46f52887bf3afa">mpd_parser_get_message</a> (const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *parser)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mpd_pure const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a47ccb1f690bfe1024eaafa2d003cd887">mpd_parser_get_name</a> (const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *parser)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mpd_pure const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a7297b36922b6f4ed8dc943e96580e77c">mpd_parser_get_value</a> (const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *parser)</td></tr>
</table>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ac99f4b13c785863fb835e654f4d503a9"></a><!-- doxytag: member="parser.h::mpd_parser_result" ref="ac99f4b13c785863fb835e654f4d503a9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9">mpd_parser_result</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ac99f4b13c785863fb835e654f4d503a9a41a87daa64031ef34d5bccb31f66e510"></a><!-- doxytag: member="MPD_PARSER_MALFORMED" ref="ac99f4b13c785863fb835e654f4d503a9a41a87daa64031ef34d5bccb31f66e510" args="" -->MPD_PARSER_MALFORMED</em>&nbsp;</td><td>
<p>Response line was not understood. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac99f4b13c785863fb835e654f4d503a9a96a9f1e2be5a8a79049df3d61f4bc501"></a><!-- doxytag: member="MPD_PARSER_SUCCESS" ref="ac99f4b13c785863fb835e654f4d503a9a96a9f1e2be5a8a79049df3d61f4bc501" args="" -->MPD_PARSER_SUCCESS</em>&nbsp;</td><td>
<p>MPD has returned "OK" or "list_OK" (check with <a class="el" href="parser_8h.html#a5fc814638529b909b29e6bd4261355bd">mpd_parser_is_discrete()</a>). </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac99f4b13c785863fb835e654f4d503a9a7075525fbc0394d66481c204297d8cfb"></a><!-- doxytag: member="MPD_PARSER_ERROR" ref="ac99f4b13c785863fb835e654f4d503a9a7075525fbc0394d66481c204297d8cfb" args="" -->MPD_PARSER_ERROR</em>&nbsp;</td><td>
<p>MPD has returned "ACK" with an error code. Call <a class="el" href="parser_8h.html#a66d10db3966783d6cac00fa942f95d7d">mpd_parser_get_server_error()</a> to get the error code. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac99f4b13c785863fb835e654f4d503a9a361b267b3554f225c7752c9418ce884f"></a><!-- doxytag: member="MPD_PARSER_PAIR" ref="ac99f4b13c785863fb835e654f4d503a9a361b267b3554f225c7752c9418ce884f" args="" -->MPD_PARSER_PAIR</em>&nbsp;</td><td>
<p>MPD has returned a name-value pair. Call <a class="el" href="parser_8h.html#a47ccb1f690bfe1024eaafa2d003cd887">mpd_parser_get_name()</a> and <a class="el" href="parser_8h.html#a7297b36922b6f4ed8dc943e96580e77c">mpd_parser_get_value()</a>. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="parser_8h_source.html#l00037">37</a> of file <a class="el" href="parser_8h_source.html">parser.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a2529288ab5c28c9d019e7d45f8b534be"></a><!-- doxytag: member="parser.h::mpd_parser_feed" ref="a2529288ab5c28c9d019e7d45f8b534be" args="(struct mpd_parser *parser, char *line)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9">mpd_parser_result</a> mpd_parser_feed </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>line</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Feeds a line (without the trailing newline character) received from MPD / <a class="el" href="async_8h.html#ae2a7e0392645f566d424443eb2e43d4e">mpd_async_recv_line()</a> into the parser.</p>
<p>Note that the line parameter is writable, because the parser will modify it. The functions <a class="el" href="parser_8h.html#a47ccb1f690bfe1024eaafa2d003cd887">mpd_parser_get_name()</a> and <a class="el" href="parser_8h.html#a7297b36922b6f4ed8dc943e96580e77c">mpd_parser_get_value()</a> will return pointers inside this buffer. This means that after passing the line to this function, you must not modify or free it, until the name and value pointers are not used anymore.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>the <a class="el" href="structmpd__parser.html">mpd_parser</a> object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>line</em>&nbsp;</td><td>a line received from the MPD server </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a result code indicating the type of line, or error </dd></dl>

</div>
</div>
<a class="anchor" id="a911d99a4276a77f02402603a7d06c691"></a><!-- doxytag: member="parser.h::mpd_parser_free" ref="a911d99a4276a77f02402603a7d06c691" args="(struct mpd_parser *parser)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpd_parser_free </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Frees a <a class="el" href="structmpd__parser.html">mpd_parser</a> object. </p>

</div>
</div>
<a class="anchor" id="a912552fc69a45b6030300a038019a696"></a><!-- doxytag: member="parser.h::mpd_parser_get_at" ref="a912552fc69a45b6030300a038019a696" args="(const struct mpd_parser *parser)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpd_pure unsigned mpd_parser_get_at </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>On <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a7075525fbc0394d66481c204297d8cfb">MPD_PARSER_ERROR</a>, this returns the number of the list command which failed. Don't call this outside of a command list.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>the <a class="el" href="structmpd__parser.html">mpd_parser</a> object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac0e548692b155bfa5e46f52887bf3afa"></a><!-- doxytag: member="parser.h::mpd_parser_get_message" ref="ac0e548692b155bfa5e46f52887bf3afa" args="(const struct mpd_parser *parser)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpd_pure const char* mpd_parser_get_message </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>On <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a7075525fbc0394d66481c204297d8cfb">MPD_PARSER_ERROR</a>, this returns the human readable error message returned by MPD (UTF-8).</p>
<p>This returns a pointer into the line buffer passed to <a class="el" href="parser_8h.html#a2529288ab5c28c9d019e7d45f8b534be">mpd_parser_feed()</a>. It is valid as long as the buffer is not freed/modified.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>the <a class="el" href="structmpd__parser.html">mpd_parser</a> object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a47ccb1f690bfe1024eaafa2d003cd887"></a><!-- doxytag: member="parser.h::mpd_parser_get_name" ref="a47ccb1f690bfe1024eaafa2d003cd887" args="(const struct mpd_parser *parser)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpd_pure const char* mpd_parser_get_name </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>On <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a361b267b3554f225c7752c9418ce884f">MPD_PARSER_PAIR</a>, this returns the name.</p>
<p>This returns a pointer into the line buffer passed to <a class="el" href="parser_8h.html#a2529288ab5c28c9d019e7d45f8b534be">mpd_parser_feed()</a>. It is valid as long as the buffer is not freed/modified.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>the <a class="el" href="structmpd__parser.html">mpd_parser</a> object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a66d10db3966783d6cac00fa942f95d7d"></a><!-- doxytag: member="parser.h::mpd_parser_get_server_error" ref="a66d10db3966783d6cac00fa942f95d7d" args="(const struct mpd_parser *parser)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpd_pure enum <a class="el" href="protocol_8h.html#ae6a8b8b538b04a5fc22a063f83634c84">mpd_server_error</a> mpd_parser_get_server_error </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Call this when <a class="el" href="parser_8h.html#a2529288ab5c28c9d019e7d45f8b534be">mpd_parser_feed()</a> has returned <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a7075525fbc0394d66481c204297d8cfb">MPD_PARSER_ERROR</a> to obtain the reason for the error.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>the <a class="el" href="structmpd__parser.html">mpd_parser</a> object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7297b36922b6f4ed8dc943e96580e77c"></a><!-- doxytag: member="parser.h::mpd_parser_get_value" ref="a7297b36922b6f4ed8dc943e96580e77c" args="(const struct mpd_parser *parser)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpd_pure const char* mpd_parser_get_value </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>On <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a361b267b3554f225c7752c9418ce884f">MPD_PARSER_PAIR</a>, this returns the value.</p>
<p>This returns a pointer into the line buffer passed to <a class="el" href="parser_8h.html#a2529288ab5c28c9d019e7d45f8b534be">mpd_parser_feed()</a>. It is valid as long as the buffer is not freed/modified.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>the <a class="el" href="structmpd__parser.html">mpd_parser</a> object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5fc814638529b909b29e6bd4261355bd"></a><!-- doxytag: member="parser.h::mpd_parser_is_discrete" ref="a5fc814638529b909b29e6bd4261355bd" args="(const struct mpd_parser *parser)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpd_pure bool mpd_parser_is_discrete </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structmpd__parser.html">mpd_parser</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Call this when <a class="el" href="parser_8h.html#a2529288ab5c28c9d019e7d45f8b534be">mpd_parser_feed()</a> has returned <a class="el" href="parser_8h.html#ac99f4b13c785863fb835e654f4d503a9a96a9f1e2be5a8a79049df3d61f4bc501">MPD_PARSER_SUCCESS</a> to find out whether this is an "OK" (false) or a "list_OK" (true) response.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>the <a class="el" href="structmpd__parser.html">mpd_parser</a> object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afc518effaa84cc6490f706da3514170e"></a><!-- doxytag: member="parser.h::mpd_parser_new" ref="afc518effaa84cc6490f706da3514170e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpd_malloc struct <a class="el" href="structmpd__parser.html">mpd_parser</a>* mpd_parser_new </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Allocates a new <a class="el" href="structmpd__parser.html">mpd_parser</a> object. Returns NULL on error (out of memory). </p>

</div>
</div>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Aug 8 15:52:35 2010 for libmpdclient by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>