Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > 05c5a5f426c0391658db40ce204366fc > files > 23

lib64fishsound-devel-1.0.0-2mdv2011.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>libfishsound: comments.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.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</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>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>comments.h File Reference</h1>Encoding and decoding of comments.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="fishsound_8h-source.html">fishsound/fishsound.h</a>&gt;</code><br>

<p>
<a href="comments_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFishSoundComment.html">FishSoundComment</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A comment.  <a href="structFishSoundComment.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#ecaa4422dade26c02553ba48697503ad">fish_sound_comment_get_vendor</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the vendor string.  <a href="#ecaa4422dade26c02553ba48697503ad"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#1f0118f390450b28b19bd61ebb6cb7a3">fish_sound_comment_first</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the first comment.  <a href="#1f0118f390450b28b19bd61ebb6cb7a3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#b68a529900d2546075193fa37cba76c8">fish_sound_comment_next</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound, const <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *comment)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the next comment.  <a href="#b68a529900d2546075193fa37cba76c8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#8d4404ac25bc87a08bdd64cccb27f934">fish_sound_comment_first_byname</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound, char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the first comment with a given name.  <a href="#8d4404ac25bc87a08bdd64cccb27f934"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#7a57c6059a0c2c8b10cf655d78977940">fish_sound_comment_next_byname</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound, const <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *comment)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the next comment following and with the same name as a given comment.  <a href="#7a57c6059a0c2c8b10cf655d78977940"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#77493e66f0e4ce8870f6f5413b90317e">fish_sound_comment_add</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound, <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *comment)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment.  <a href="#77493e66f0e4ce8870f6f5413b90317e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#ef6ec7d8894aac5da78cb0f5711e7d67">fish_sound_comment_add_byname</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound, const char *name, const char *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a comment by name and value.  <a href="#ef6ec7d8894aac5da78cb0f5711e7d67"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#d6c456b3c1f943966d1bac04452b2e84">fish_sound_comment_remove</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound, <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *comment)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a comment.  <a href="#d6c456b3c1f943966d1bac04452b2e84"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="comments_8h.html#5a84f90f4f3d61acd7682675b874a359">fish_sound_comment_remove_byname</a> (<a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *fsound, char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove all comments with a given name.  <a href="#5a84f90f4f3d61acd7682675b874a359"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Encoding and decoding of comments. 
<p>
Vorbis and Speex bitstreams use a comment format called "Vorbiscomment", defined <a href="http://www.xiph.org/ogg/vorbis/doc/v-comment.html">here</a>. Many standard comment names (such as TITLE, COPYRIGHT and GENRE) are defined in that document.<p>
The following general features of Vorbiscomment are relevant to this API:<ul>
<li>Each stream has one comment packet, which occurs before any encoded audio data in the stream.</li><li>When encoding, FishSound will generate the comment block and pass it to the encoded() callback in sequence, just like any other packet. Hence, all comments must be set before any call to fish_sound_encode_*().</li><li>When decoding, FishSound will decode the comment block before calling the first decoded() callback. Hence, retrieving comment data is possible from as soon as the decoded() callback is first called.</li></ul>
<p>
Each comment block contains one Vendor string, which can be retrieved with <a class="el" href="comments_8h.html#ecaa4422dade26c02553ba48697503ad" title="Retrieve the vendor string.">fish_sound_comment_get_vendor()</a>. When encoding, this string is effectively fixed by the codec libraries; it cannot be set by the application.<p>
The rest of a comment block consists of <em>name</em> = <em>value</em> pairs, with the following restrictions:<ul>
<li>Both the <em>name</em> and <em>value</em> must be non-empty</li><li>The <em>name</em> is case-insensitive and must consist of ASCII within the range 0x20 to 0x7D inclusive, 0x3D ('=') excluded.</li><li>The <em>name</em> is not unique; multiple entries may exist with equivalent <em>name</em> within a Vorbiscomment block.</li><li>The <em>value</em> may be any UTF-8 string.</li></ul>
<h2><a class="anchor" name="comments_get">
Retrieving comments</a></h2>
FishSound contains API methods to iterate through all comments associated with a FishSound* handle (<a class="el" href="comments_8h.html#1f0118f390450b28b19bd61ebb6cb7a3" title="Retrieve the first comment.">fish_sound_comment_first()</a> and <a class="el" href="comments_8h.html#b68a529900d2546075193fa37cba76c8" title="Retrieve the next comment.">fish_sound_comment_next()</a>, and to iterate through comments matching a particular name (<a class="el" href="comments_8h.html#8d4404ac25bc87a08bdd64cccb27f934" title="Retrieve the first comment with a given name.">fish_sound_comment_first_byname()</a> and <a class="el" href="comments_8h.html#7a57c6059a0c2c8b10cf655d78977940" title="Retrieve the next comment following and with the same name as a given comment.">fish_sound_comment_next_byname()</a>). Given that multiple comments may exist with the same <em>name</em>, you should not use <a class="el" href="comments_8h.html#8d4404ac25bc87a08bdd64cccb27f934" title="Retrieve the first comment with a given name.">fish_sound_comment_first_byname()</a> as a simple "get" function.<h2><a class="anchor" name="comments_set">
Encoding comments</a></h2>
For encoding, FishSound contains API methods for adding comments (<a class="el" href="comments_8h.html#77493e66f0e4ce8870f6f5413b90317e" title="Add a comment.">fish_sound_comment_add()</a> and <a class="el" href="comments_8h.html#ef6ec7d8894aac5da78cb0f5711e7d67" title="Add a comment by name and value.">fish_sound_comment_add_byname()</a> and for removing comments (<a class="el" href="comments_8h.html#d6c456b3c1f943966d1bac04452b2e84" title="Remove a comment.">fish_sound_comment_remove()</a> and <a class="el" href="comments_8h.html#5a84f90f4f3d61acd7682675b874a359" title="Remove all comments with a given name.">fish_sound_comment_remove_byname()</a>). <hr><h2>Function Documentation</h2>
<a class="anchor" name="77493e66f0e4ce8870f6f5413b90317e"></a><!-- doxytag: member="comments.h::fish_sound_comment_add" ref="77493e66f0e4ce8870f6f5413b90317e" args="(FishSound *fsound, FishSoundComment *comment)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int fish_sound_comment_add           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structFishSoundComment.html">FishSoundComment</a> *&nbsp;</td>
          <td class="paramname"> <em>comment</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a comment. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle (created with mode FISH_SOUND_ENCODE) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>The comment to add </td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FISH_SOUND_ERR_BAD</em>&nbsp;</td><td><em>fsound</em> is not a valid FishSound* handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FISH_SOUND_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this FishSound </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ef6ec7d8894aac5da78cb0f5711e7d67"></a><!-- doxytag: member="comments.h::fish_sound_comment_add_byname" ref="ef6ec7d8894aac5da78cb0f5711e7d67" args="(FishSound *fsound, const char *name, const char *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int fish_sound_comment_add_byname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a comment by name and value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle (created with mode FISH_SOUND_ENCODE) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the comment to add </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The contents of the comment to add </td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FISH_SOUND_ERR_BAD</em>&nbsp;</td><td><em>fsound</em> is not a valid FishSound* handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FISH_SOUND_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this FishSound </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="1f0118f390450b28b19bd61ebb6cb7a3"></a><!-- doxytag: member="comments.h::fish_sound_comment_first" ref="1f0118f390450b28b19bd61ebb6cb7a3" args="(FishSound *fsound)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a>* fish_sound_comment_first           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve the first comment. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the first comment, or NULL if no comments exist for this FishSound* object. </dd></dl>

</div>
</div><p>
<a class="anchor" name="8d4404ac25bc87a08bdd64cccb27f934"></a><!-- doxytag: member="comments.h::fish_sound_comment_first_byname" ref="8d4404ac25bc87a08bdd64cccb27f934" args="(FishSound *fsound, char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a>* fish_sound_comment_first_byname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve the first comment with a given name. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>the name of the comment to retrieve. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the first comment matching the given <em>name</em>. </dd></dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>no match was found. </td></tr>
  </table>
</dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>If <em>name</em> is NULL, the behaviour is the same as for <a class="el" href="comments_8h.html#1f0118f390450b28b19bd61ebb6cb7a3" title="Retrieve the first comment.">fish_sound_comment_first()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="ecaa4422dade26c02553ba48697503ad"></a><!-- doxytag: member="comments.h::fish_sound_comment_get_vendor" ref="ecaa4422dade26c02553ba48697503ad" args="(FishSound *fsound)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* fish_sound_comment_get_vendor           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve the vendor string. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the vendor string </dd></dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>No vendor string is associated with <em>fsound</em>, or <em>fsound</em> is NULL. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="b68a529900d2546075193fa37cba76c8"></a><!-- doxytag: member="comments.h::fish_sound_comment_next" ref="b68a529900d2546075193fa37cba76c8" args="(FishSound *fsound, const FishSoundComment *comment)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a>* fish_sound_comment_next           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *&nbsp;</td>
          <td class="paramname"> <em>comment</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve the next comment. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>The previous comment. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the comment immediately following the given comment. </dd></dl>

</div>
</div><p>
<a class="anchor" name="7a57c6059a0c2c8b10cf655d78977940"></a><!-- doxytag: member="comments.h::fish_sound_comment_next_byname" ref="7a57c6059a0c2c8b10cf655d78977940" args="(FishSound *fsound, const FishSoundComment *comment)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a>* fish_sound_comment_next_byname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structFishSoundComment.html">FishSoundComment</a> *&nbsp;</td>
          <td class="paramname"> <em>comment</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve the next comment following and with the same name as a given comment. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>A comment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A read-only copy of the next comment with the same name as <em>comment</em>. </dd></dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>NULL</em>&nbsp;</td><td>no further comments with the same name exist for this FishSound* object. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d6c456b3c1f943966d1bac04452b2e84"></a><!-- doxytag: member="comments.h::fish_sound_comment_remove" ref="d6c456b3c1f943966d1bac04452b2e84" args="(FishSound *fsound, FishSoundComment *comment)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int fish_sound_comment_remove           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structFishSoundComment.html">FishSoundComment</a> *&nbsp;</td>
          <td class="paramname"> <em>comment</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a comment. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle (created with FISH_SOUND_ENCODE) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>comment</em>&nbsp;</td><td>The comment to remove. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>1</em>&nbsp;</td><td>Success: comment removed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>No-op: comment not found, nothing to remove </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FISH_SOUND_ERR_BAD</em>&nbsp;</td><td><em>fsound</em> is not a valid FishSound* handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FISH_SOUND_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this FishSound </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="5a84f90f4f3d61acd7682675b874a359"></a><!-- doxytag: member="comments.h::fish_sound_comment_remove_byname" ref="5a84f90f4f3d61acd7682675b874a359" args="(FishSound *fsound, char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int fish_sound_comment_remove_byname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fishsound_8h.html#8cfb7dfb102ad1af9ff35046aed3ccd9">FishSound</a> *&nbsp;</td>
          <td class="paramname"> <em>fsound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove all comments with a given name. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fsound</em>&nbsp;</td><td>A FishSound* handle (created with FISH_SOUND_ENCODE) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the comments to remove </td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The number of comments removed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FISH_SOUND_ERR_BAD</em>&nbsp;</td><td><em>fsound</em> is not a valid FishSound* handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>FISH_SOUND_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this FishSound </td></tr>
  </table>
</dl>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Feb 3 22:16:44 2010 for libfishsound by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>