Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > 12036146830596fff8a6e80859ec761e > files > 80

lib64njb-devel-2.2.6-9.x86_64.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>libnjb: The playlist manipulation API</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.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libnjb&#160;<span id="projectnumber">2.2.6</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>The playlist manipulation API</h1>  </div>
</div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5514c1432baafcc68a9d716d2641262a"></a><!-- doxytag: member="playlistapi::NJB_PL_END" ref="ga5514c1432baafcc68a9d716d2641262a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>NJB_PL_END</b>&#160;&#160;&#160;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddd2ba27cebd626258952c4c74cd12e9"></a><!-- doxytag: member="playlistapi::NJB_PL_START" ref="gaddd2ba27cebd626258952c4c74cd12e9" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>NJB_PL_START</b>&#160;&#160;&#160;1</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga3781a9a6f68d7ab3ac5970fc4f2c80d9">NJB_Reset_Get_Playlist</a> (<a class="el" href="structnjb__struct.html">njb_t</a> *njb)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga85a098c666b569588a4bb8244b4070da">NJB_Get_Playlist</a> (<a class="el" href="structnjb__struct.html">njb_t</a> *njb)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#gaef5c50b91f4fcefde57920aab70a6d7d">NJB_Delete_Playlist</a> (<a class="el" href="structnjb__struct.html">njb_t</a> *njb, u_int32_t plid)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#gae1873045c0cd0eb27465992c3479b975">NJB_Update_Playlist</a> (<a class="el" href="structnjb__struct.html">njb_t</a> *njb, <a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *pl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#gab651a59e601fbf7848f5f3cbe4d53527">NJB_Playlist_New</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#gae9486263351d9f819477ca3938b28216">NJB_Playlist_Destroy</a> (<a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *pl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga2126da1cb5f0cac00bdfd9aaa68c4d21">NJB_Playlist_Addtrack</a> (<a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *pl, <a class="el" href="structnjb__playlist__track__struct.html">njb_playlist_track_t</a> *track, unsigned int pos)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga73e493de30c483a0ea4dc7fe3435f494">NJB_Playlist_Reset_Gettrack</a> (<a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *pl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnjb__playlist__track__struct.html">njb_playlist_track_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga67bff0505f033f31e6be034d8e9be13f">NJB_Playlist_Gettrack</a> (<a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *pl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga7027ca2a82c4982ccc0f9a7e3c3a9a8c">NJB_Playlist_Set_Name</a> (<a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *pl, const char *name)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga115c39ac5a2db56f61158dad5bac5ee0">NJB_Playlist_Deltrack</a> (<a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *pl, unsigned int pos)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga28d21dfce2e1112d8a57f58618a369b6">NJB_Playlist_Deltrack_TrackID</a> (<a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *pl, u_int32_t trackid)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnjb__playlist__track__struct.html">njb_playlist_track_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#ga01e07b33f555cf5a4a9279739916ce01">NJB_Playlist_Track_New</a> (u_int32_t trackid)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__playlistapi.html#gab8b64302dcf025684f38fea291b69851">NJB_Playlist_Track_Destroy</a> (<a class="el" href="structnjb__playlist__track__struct.html">njb_playlist_track_t</a> *track)</td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaef5c50b91f4fcefde57920aab70a6d7d"></a><!-- doxytag: member="libnjb.h::NJB_Delete_Playlist" ref="gaef5c50b91f4fcefde57920aab70a6d7d" args="(njb_t *njb, u_int32_t plid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NJB_Delete_Playlist </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__struct.html">njb_t</a> *&#160;</td>
          <td class="paramname"><em>njb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>plid</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This deletes a playlist from the device.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">njb</td><td>a pointer to the <code>njb_t</code> object to delete the playlist from </td></tr>
    <tr><td class="paramname">plid</td><td>the playlist ID as reported from <code><a class="el" href="group__playlistapi.html#ga85a098c666b569588a4bb8244b4070da">NJB_Get_Playlist()</a></code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a26">pl.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__struct.html#a405f9cb824196553362aa8d4ad546c07">njb_struct::device_type</a>, and <a class="el" href="group__njbboxes.html#gad84011f40d11f1eae13f708cdc3c29fb">NJB_DEVICE_NJB1</a>.</p>

</div>
</div>
<a class="anchor" id="ga85a098c666b569588a4bb8244b4070da"></a><!-- doxytag: member="libnjb.h::NJB_Get_Playlist" ref="ga85a098c666b569588a4bb8244b4070da" args="(njb_t *njb)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a>* NJB_Get_Playlist </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__struct.html">njb_t</a> *&#160;</td>
          <td class="paramname"><em>njb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This gets a playlist from the device. The device should first be rewound using the <code><a class="el" href="group__playlistapi.html#ga3781a9a6f68d7ab3ac5970fc4f2c80d9">NJB_Reset_Get_Playlist()</a></code> function. The playlists are newly allocated and should be destroyed with <code><a class="el" href="group__playlistapi.html#gae9486263351d9f819477ca3938b28216">NJB_Playlist_Destroy()</a></code> after use.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">njb</td><td>a pointer to the <code>njb_t</code> object to get playlists from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a playlist or NULL if the last playlist has already been returned </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__playlistapi.html#ga3781a9a6f68d7ab3ac5970fc4f2c80d9">NJB_Reset_Get_Playlist()</a> </dd>
<dd>
<a class="el" href="group__playlistapi.html#gae9486263351d9f819477ca3938b28216">NJB_Playlist_Destroy()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a24">pl.c</a>, and <a class="el" href="playlists_8c-example.html#a19">playlists.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__struct.html#a405f9cb824196553362aa8d4ad546c07">njb_struct::device_type</a>, <a class="el" href="group__njbboxes.html#gad84011f40d11f1eae13f708cdc3c29fb">NJB_DEVICE_NJB1</a>, and <a class="el" href="structnjb__struct.html#a9c34c2b8e18cdf2c494f2cfe2e1e4f5f">njb_struct::protocol_state</a>.</p>

</div>
</div>
<a class="anchor" id="ga2126da1cb5f0cac00bdfd9aaa68c4d21"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Addtrack" ref="ga2126da1cb5f0cac00bdfd9aaa68c4d21" args="(njb_playlist_t *pl, njb_playlist_track_t *track, unsigned int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NJB_Playlist_Addtrack </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td>
          <td class="paramname"><em>pl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__track__struct.html">njb_playlist_track_t</a> *&#160;</td>
          <td class="paramname"><em>track</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function adds a playlist track (a data structure representing a track that is part of a playlist) to a playlist data structure.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pl</td><td>the playlist that the track shall be added to </td></tr>
    <tr><td class="paramname">track</td><td>the track to add </td></tr>
    <tr><td class="paramname">pos</td><td>the position in the playlist where this track should be added </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__playlistapi.html#ga115c39ac5a2db56f61158dad5bac5ee0">NJB_Playlist_Deltrack()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a17">pl.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__playlist__struct.html#a5a008f055a72c6734236b3a61655278d">njb_playlist_struct::_state</a>, <a class="el" href="structnjb__playlist__struct.html#a2186d6ba1c4aab3c554600bb637ec531">njb_playlist_struct::cur</a>, <a class="el" href="structnjb__playlist__struct.html#a4813344859c57e96a112434f70862587">njb_playlist_struct::first</a>, <a class="el" href="structnjb__playlist__struct.html#a85233ef2111da0eb99ce4f3940577d26">njb_playlist_struct::last</a>, <a class="el" href="structnjb__playlist__track__struct.html#a3247574c9aa652e55d24900379346cdc">njb_playlist_track_struct::next</a>, <a class="el" href="libnjb_8h.html#a6360b76a52a85eef1fb60b7d09b968b7">NJB_PL_CHTRACKS</a>, <a class="el" href="libnjb_8h.html#a62f7abb752f8563cee09cf77251b0077">NJB_PL_NEW</a>, <a class="el" href="group__playlistapi.html#ga67bff0505f033f31e6be034d8e9be13f">NJB_Playlist_Gettrack()</a>, <a class="el" href="group__playlistapi.html#ga73e493de30c483a0ea4dc7fe3435f494">NJB_Playlist_Reset_Gettrack()</a>, <a class="el" href="structnjb__playlist__struct.html#a20cc10b697f65aaa195709be7e866420">njb_playlist_struct::ntracks</a>, and <a class="el" href="structnjb__playlist__track__struct.html#afa39d3b946da9427cf51e8f61a12faf1">njb_playlist_track_struct::prev</a>.</p>

<p>Referenced by <a class="el" href="playlist_8c.html#a696ec1b911d19920b16b51d865a933f8">playlist_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="ga115c39ac5a2db56f61158dad5bac5ee0"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Deltrack" ref="ga115c39ac5a2db56f61158dad5bac5ee0" args="(njb_playlist_t *pl, unsigned int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NJB_Playlist_Deltrack </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td>
          <td class="paramname"><em>pl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function deletes a track from a playlist.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pl</td><td>the playlist that the track shall be removed from </td></tr>
    <tr><td class="paramname">pos</td><td>the position in the playlist to be deleted </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__playlistapi.html#ga2126da1cb5f0cac00bdfd9aaa68c4d21">NJB_Playlist_Addtrack()</a> </dd>
<dd>
<a class="el" href="group__playlistapi.html#ga28d21dfce2e1112d8a57f58618a369b6">NJB_Playlist_Deltrack_TrackID()</a> </dd></dl>

<p>References <a class="el" href="structnjb__playlist__struct.html#a5a008f055a72c6734236b3a61655278d">njb_playlist_struct::_state</a>, <a class="el" href="structnjb__playlist__struct.html#a4813344859c57e96a112434f70862587">njb_playlist_struct::first</a>, <a class="el" href="structnjb__playlist__struct.html#a85233ef2111da0eb99ce4f3940577d26">njb_playlist_struct::last</a>, <a class="el" href="structnjb__playlist__track__struct.html#a3247574c9aa652e55d24900379346cdc">njb_playlist_track_struct::next</a>, <a class="el" href="libnjb_8h.html#a6360b76a52a85eef1fb60b7d09b968b7">NJB_PL_CHTRACKS</a>, <a class="el" href="group__playlistapi.html#ga67bff0505f033f31e6be034d8e9be13f">NJB_Playlist_Gettrack()</a>, <a class="el" href="group__playlistapi.html#ga73e493de30c483a0ea4dc7fe3435f494">NJB_Playlist_Reset_Gettrack()</a>, <a class="el" href="group__playlistapi.html#gab8b64302dcf025684f38fea291b69851">NJB_Playlist_Track_Destroy()</a>, <a class="el" href="structnjb__playlist__struct.html#a20cc10b697f65aaa195709be7e866420">njb_playlist_struct::ntracks</a>, and <a class="el" href="structnjb__playlist__track__struct.html#afa39d3b946da9427cf51e8f61a12faf1">njb_playlist_track_struct::prev</a>.</p>

</div>
</div>
<a class="anchor" id="ga28d21dfce2e1112d8a57f58618a369b6"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Deltrack_TrackID" ref="ga28d21dfce2e1112d8a57f58618a369b6" args="(njb_playlist_t *pl, u_int32_t trackid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NJB_Playlist_Deltrack_TrackID </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td>
          <td class="paramname"><em>pl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>trackid</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function removes a track from a playlist by way of the track ID (as opposed to the position in the playlist). This function can be called even on playlists that don't have this track in them - this is useful for e.g. looping through all playlists and removing a certain track before deleting the track itself from the device.</p>
<p>You need to call the <code><a class="el" href="group__playlistapi.html#gae1873045c0cd0eb27465992c3479b975">NJB_Update_Playlist()</a></code> function for each playlist that has been manipulated by this function, to assure that any changes are written back to the playlist on the device.</p>
<p>Typical use to remove a track with ID <code>id</code> from all playlists on a device:</p>
<pre>
 njb_playlist_t *playlist;</pre><pre> NJB_Reset_Get_Playlist(njb);
 while (playlist = NJB_Get_Playlist(njb)) {
    NJB_Playlist_Deltrack_TrackID(playlist, id);
    // If the playlist changed, update it
    if (NJB_Update_Playlist(njb, playlist) == -1)
        NJB_Error_Dump(njb, stderr);
    }
    NJB_Playlist_Destroy(playlist);
 }
 if (NJB_Error_Pending(njb)) {
    NJB_Error_Dump(njb, stderr);
 }
 </pre><dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pl</td><td>the playlist that the track shall be removed from, if present. </td></tr>
    <tr><td class="paramname">trackid</td><td>the track ID to remove from this playlist </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__playlistapi.html#ga115c39ac5a2db56f61158dad5bac5ee0">NJB_Playlist_Deltrack()</a> </dd>
<dd>
<a class="el" href="group__playlistapi.html#gae1873045c0cd0eb27465992c3479b975">NJB_Update_Playlist()</a> </dd></dl>

<p>References <a class="el" href="structnjb__playlist__struct.html#a5a008f055a72c6734236b3a61655278d">njb_playlist_struct::_state</a>, <a class="el" href="structnjb__playlist__struct.html#a4813344859c57e96a112434f70862587">njb_playlist_struct::first</a>, <a class="el" href="structnjb__playlist__track__struct.html#a3247574c9aa652e55d24900379346cdc">njb_playlist_track_struct::next</a>, <a class="el" href="libnjb_8h.html#a6360b76a52a85eef1fb60b7d09b968b7">NJB_PL_CHTRACKS</a>, <a class="el" href="group__playlistapi.html#ga67bff0505f033f31e6be034d8e9be13f">NJB_Playlist_Gettrack()</a>, <a class="el" href="group__playlistapi.html#ga73e493de30c483a0ea4dc7fe3435f494">NJB_Playlist_Reset_Gettrack()</a>, <a class="el" href="group__playlistapi.html#gab8b64302dcf025684f38fea291b69851">NJB_Playlist_Track_Destroy()</a>, <a class="el" href="structnjb__playlist__struct.html#a20cc10b697f65aaa195709be7e866420">njb_playlist_struct::ntracks</a>, <a class="el" href="structnjb__playlist__track__struct.html#afa39d3b946da9427cf51e8f61a12faf1">njb_playlist_track_struct::prev</a>, and <a class="el" href="structnjb__playlist__track__struct.html#a0c0d66923d6acb571453427b5a540d61">njb_playlist_track_struct::trackid</a>.</p>

</div>
</div>
<a class="anchor" id="gae9486263351d9f819477ca3938b28216"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Destroy" ref="gae9486263351d9f819477ca3938b28216" args="(njb_playlist_t *pl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NJB_Playlist_Destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td>
          <td class="paramname"><em>pl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function destroys a playlist and frees up the memory used by it. All tracks that are part of the playlist will also be destroyed.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pl</td><td>the playlist to destroy </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a25">pl.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__playlist__struct.html#a2186d6ba1c4aab3c554600bb637ec531">njb_playlist_struct::cur</a>, <a class="el" href="structnjb__playlist__struct.html#a4813344859c57e96a112434f70862587">njb_playlist_struct::first</a>, <a class="el" href="structnjb__playlist__struct.html#a39e73f00d43c351fbbe95441fd3c00ed">njb_playlist_struct::name</a>, <a class="el" href="structnjb__playlist__track__struct.html#a3247574c9aa652e55d24900379346cdc">njb_playlist_track_struct::next</a>, and <a class="el" href="group__playlistapi.html#gab8b64302dcf025684f38fea291b69851">NJB_Playlist_Track_Destroy()</a>.</p>

<p>Referenced by <a class="el" href="playlist_8c.html#a696ec1b911d19920b16b51d865a933f8">playlist_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="ga67bff0505f033f31e6be034d8e9be13f"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Gettrack" ref="ga67bff0505f033f31e6be034d8e9be13f" args="(njb_playlist_t *pl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structnjb__playlist__track__struct.html">njb_playlist_track_t</a>* NJB_Playlist_Gettrack </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td>
          <td class="paramname"><em>pl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a track from a playlist. The playlist has an internal structure to keep track of the constituent tracks, so the tracks will be retrieved in order. This function should typically be called repeatedly after an initial <code><a class="el" href="group__playlistapi.html#ga73e493de30c483a0ea4dc7fe3435f494">NJB_Playlist_Reset_Gettrack()</a></code> call.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pl</td><td>the playlist to get tracks from. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a track or NULL of the last track from a playlist has already been returned </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__playlistapi.html#ga73e493de30c483a0ea4dc7fe3435f494">NJB_Playlist_Reset_Gettrack()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a7">pl.c</a>, and <a class="el" href="playlists_8c-example.html#a7">playlists.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__playlist__struct.html#a2186d6ba1c4aab3c554600bb637ec531">njb_playlist_struct::cur</a>, and <a class="el" href="structnjb__playlist__track__struct.html#a3247574c9aa652e55d24900379346cdc">njb_playlist_track_struct::next</a>.</p>

<p>Referenced by <a class="el" href="group__playlistapi.html#ga2126da1cb5f0cac00bdfd9aaa68c4d21">NJB_Playlist_Addtrack()</a>, <a class="el" href="group__playlistapi.html#ga115c39ac5a2db56f61158dad5bac5ee0">NJB_Playlist_Deltrack()</a>, <a class="el" href="group__playlistapi.html#ga28d21dfce2e1112d8a57f58618a369b6">NJB_Playlist_Deltrack_TrackID()</a>, and <a class="el" href="group__playlistapi.html#gae1873045c0cd0eb27465992c3479b975">NJB_Update_Playlist()</a>.</p>

</div>
</div>
<a class="anchor" id="gab651a59e601fbf7848f5f3cbe4d53527"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_New" ref="gab651a59e601fbf7848f5f3cbe4d53527" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a>* NJB_Playlist_New </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function creates a new playlist data structure to hold a name and a number of tracks.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new playlist structure </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a14">pl.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__playlist__struct.html#a5a008f055a72c6734236b3a61655278d">njb_playlist_struct::_state</a>, and <a class="el" href="libnjb_8h.html#a62f7abb752f8563cee09cf77251b0077">NJB_PL_NEW</a>.</p>

<p>Referenced by <a class="el" href="playlist_8c.html#a696ec1b911d19920b16b51d865a933f8">playlist_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="ga73e493de30c483a0ea4dc7fe3435f494"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Reset_Gettrack" ref="ga73e493de30c483a0ea4dc7fe3435f494" args="(njb_playlist_t *pl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NJB_Playlist_Reset_Gettrack </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td>
          <td class="paramname"><em>pl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Resets the internal counter used when retrieveing tracks from a playlist. Should typically be called first, before any subsequent calls to <a class="el" href="group__playlistapi.html#ga67bff0505f033f31e6be034d8e9be13f">NJB_Playlist_Gettrack()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pl</td><td>the playlist to be reset </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__playlistapi.html#ga67bff0505f033f31e6be034d8e9be13f">NJB_Playlist_Gettrack()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a6">pl.c</a>, and <a class="el" href="playlists_8c-example.html#a6">playlists.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__playlist__struct.html#a2186d6ba1c4aab3c554600bb637ec531">njb_playlist_struct::cur</a>, and <a class="el" href="structnjb__playlist__struct.html#a4813344859c57e96a112434f70862587">njb_playlist_struct::first</a>.</p>

<p>Referenced by <a class="el" href="group__playlistapi.html#ga2126da1cb5f0cac00bdfd9aaa68c4d21">NJB_Playlist_Addtrack()</a>, <a class="el" href="group__playlistapi.html#ga115c39ac5a2db56f61158dad5bac5ee0">NJB_Playlist_Deltrack()</a>, <a class="el" href="group__playlistapi.html#ga28d21dfce2e1112d8a57f58618a369b6">NJB_Playlist_Deltrack_TrackID()</a>, and <a class="el" href="group__playlistapi.html#gae1873045c0cd0eb27465992c3479b975">NJB_Update_Playlist()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7027ca2a82c4982ccc0f9a7e3c3a9a8c"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Set_Name" ref="ga7027ca2a82c4982ccc0f9a7e3c3a9a8c" args="(njb_playlist_t *pl, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NJB_Playlist_Set_Name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td>
          <td class="paramname"><em>pl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function sets the name of the playlist. The name will be duplicated and stored internally, so the string is only needed during the function call.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pl</td><td>the playlist to set the name for </td></tr>
    <tr><td class="paramname">name</td><td>the name to set for the playlist </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a15">pl.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__playlist__struct.html#a5a008f055a72c6734236b3a61655278d">njb_playlist_struct::_state</a>, <a class="el" href="structnjb__playlist__struct.html#a39e73f00d43c351fbbe95441fd3c00ed">njb_playlist_struct::name</a>, <a class="el" href="libnjb_8h.html#a85cf6558d75668bca546d2934330e56c">NJB_PL_CHNAME</a>, and <a class="el" href="libnjb_8h.html#ad0d8333c6992b5033bb7af1b7615fb7c">NJB_PL_UNCHANGED</a>.</p>

</div>
</div>
<a class="anchor" id="gab8b64302dcf025684f38fea291b69851"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Track_Destroy" ref="gab8b64302dcf025684f38fea291b69851" args="(njb_playlist_track_t *track)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NJB_Playlist_Track_Destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__track__struct.html">njb_playlist_track_t</a> *&#160;</td>
          <td class="paramname"><em>track</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This destroys a playlist track entry and frees any memory used by it.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">track</td><td>the track entry to destroy. </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="group__playlistapi.html#ga115c39ac5a2db56f61158dad5bac5ee0">NJB_Playlist_Deltrack()</a>, <a class="el" href="group__playlistapi.html#ga28d21dfce2e1112d8a57f58618a369b6">NJB_Playlist_Deltrack_TrackID()</a>, and <a class="el" href="group__playlistapi.html#gae9486263351d9f819477ca3938b28216">NJB_Playlist_Destroy()</a>.</p>

</div>
</div>
<a class="anchor" id="ga01e07b33f555cf5a4a9279739916ce01"></a><!-- doxytag: member="libnjb.h::NJB_Playlist_Track_New" ref="ga01e07b33f555cf5a4a9279739916ce01" args="(u_int32_t trackid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structnjb__playlist__track__struct.html">njb_playlist_track_t</a>* NJB_Playlist_Track_New </td>
          <td>(</td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>trackid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This creates a new track entry for playlists. The <code>trackid</code> used should be the same as retrieved from libnjb track reading functions.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">trackid</td><td>the ID of the new track </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the new playlist track entry </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a16">pl.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__playlist__track__struct.html#a0c0d66923d6acb571453427b5a540d61">njb_playlist_track_struct::trackid</a>.</p>

<p>Referenced by <a class="el" href="playlist_8c.html#a696ec1b911d19920b16b51d865a933f8">playlist_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3781a9a6f68d7ab3ac5970fc4f2c80d9"></a><!-- doxytag: member="libnjb.h::NJB_Reset_Get_Playlist" ref="ga3781a9a6f68d7ab3ac5970fc4f2c80d9" args="(njb_t *njb)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NJB_Reset_Get_Playlist </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__struct.html">njb_t</a> *&#160;</td>
          <td class="paramname"><em>njb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This resets the playlist retrieveal function. The playlists can then be retrieved one by one using the <code><a class="el" href="group__playlistapi.html#ga85a098c666b569588a4bb8244b4070da">NJB_Get_Playlist()</a></code> function.</p>
<p>Typical usage:</p>
<pre>
 njb_t *njb;
 njb_playlist_t *pl;</pre><pre> NJB_Reset_Get_Playlist(njb);
 while ( (pl = NJB_Get_Playlist(njb)) != NULL ) {
    // Do something with all the playlists...
    NJB_Playlist_Destroy(pl);
 }
 </pre><dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">njb</td><td>a pointer to the <code>njb_t</code> object to reset the playlist retrieveal pointer for </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__playlistapi.html#ga85a098c666b569588a4bb8244b4070da">NJB_Get_Playlist()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a23">pl.c</a>, and <a class="el" href="playlists_8c-example.html#a18">playlists.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__struct.html#a405f9cb824196553362aa8d4ad546c07">njb_struct::device_type</a>, <a class="el" href="protocol3_8c.html#a7d8dffadc9e0e8238ffc840075cc2293">njb3_reset_get_playlist_tag()</a>, <a class="el" href="group__njbboxes.html#gad84011f40d11f1eae13f708cdc3c29fb">NJB_DEVICE_NJB1</a>, and <a class="el" href="structnjb__struct.html#a9c34c2b8e18cdf2c494f2cfe2e1e4f5f">njb_struct::protocol_state</a>.</p>

</div>
</div>
<a class="anchor" id="gae1873045c0cd0eb27465992c3479b975"></a><!-- doxytag: member="libnjb.h::NJB_Update_Playlist" ref="gae1873045c0cd0eb27465992c3479b975" args="(njb_t *njb, njb_playlist_t *pl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NJB_Update_Playlist </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnjb__struct.html">njb_t</a> *&#160;</td>
          <td class="paramname"><em>njb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structnjb__playlist__struct.html">njb_playlist_t</a> *&#160;</td>
          <td class="paramname"><em>pl</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This writes back an updated (modified) or new playlist to the device.</p>
<p>This function <em>may</em> modify the playlist ID, i.e. the <code>plid</code> member of the <code>njb_playlist_t</code> struct, which means that if your program has cached this number anywhere, you need to update it using the value from <code>pl-&gt;plid</code> afterwards. This stems from the fact that playlists are sometimes updated by deleting the old playlist and creating a new one.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">njb</td><td>a pointer to the <code>njb_t</code> object to update the playlist on </td></tr>
    <tr><td class="paramname">pl</td><td>the playlist to update. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="pl_8c-example.html#a22">pl.c</a>.</dd>
</dl>
<p>References <a class="el" href="structnjb__playlist__struct.html#a5a008f055a72c6734236b3a61655278d">njb_playlist_struct::_state</a>, <a class="el" href="structnjb__struct.html#a405f9cb824196553362aa8d4ad546c07">njb_struct::device_type</a>, <a class="el" href="group__errors.html#ga2ab3784c31667eb7bd6dbc4296818720">EO_NOMEM</a>, <a class="el" href="structnjb__playlist__struct.html#a39e73f00d43c351fbbe95441fd3c00ed">njb_playlist_struct::name</a>, <a class="el" href="protocol3_8c.html#a120bb9ef7afb94102b2e1f29515de0dd">njb3_add_multiple_tracks_to_playlist()</a>, <a class="el" href="protocol3_8c.html#a91831b3fc1d2c5ccafd2f62629733074">njb3_create_playlist()</a>, <a class="el" href="protocol3_8c.html#af4c77c8c12bea8f1a8c125e70019d5c1">njb3_update_string_frame()</a>, <a class="el" href="group__njbboxes.html#gad84011f40d11f1eae13f708cdc3c29fb">NJB_DEVICE_NJB1</a>, <a class="el" href="libnjb_8h.html#a85cf6558d75668bca546d2934330e56c">NJB_PL_CHNAME</a>, <a class="el" href="libnjb_8h.html#a6360b76a52a85eef1fb60b7d09b968b7">NJB_PL_CHTRACKS</a>, <a class="el" href="libnjb_8h.html#a62f7abb752f8563cee09cf77251b0077">NJB_PL_NEW</a>, <a class="el" href="libnjb_8h.html#ad0d8333c6992b5033bb7af1b7615fb7c">NJB_PL_UNCHANGED</a>, <a class="el" href="group__playlistapi.html#ga67bff0505f033f31e6be034d8e9be13f">NJB_Playlist_Gettrack()</a>, <a class="el" href="group__playlistapi.html#ga73e493de30c483a0ea4dc7fe3435f494">NJB_Playlist_Reset_Gettrack()</a>, <a class="el" href="group__unicodeflags.html#ga388e9c70b7a684c777f6b25e2e9d801b">NJB_UC_UTF8</a>, <a class="el" href="protocol_8c.html#ae5ea9fbb3859ec50540bcd9cf4a3f328">njb_verify_last_command()</a>, <a class="el" href="structnjb__playlist__struct.html#a20cc10b697f65aaa195709be7e866420">njb_playlist_struct::ntracks</a>, <a class="el" href="structnjb__playlist__struct.html#ac581be97d7858c7e304faecf6a36aef0">njb_playlist_struct::plid</a>, <a class="el" href="unicode_8c.html#a7a77d04f2f0563c9c74d28fca28effdd">strtoucs2()</a>, <a class="el" href="structnjb__playlist__track__struct.html#a0c0d66923d6acb571453427b5a540d61">njb_playlist_track_struct::trackid</a>, and <a class="el" href="unicode_8c.html#a767008fdd0e78d87acbc7f1ad3bf4830">utf8tostr()</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Mon May 2 2011 06:05:24 for libnjb by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>