<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libmtp: getplaylist.c</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libmtp  <span id="projectnumber">1.1.16</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',false,false,'search.php','Search'); }); </script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">getplaylist.c</div> </div> </div><!--header--> <div class="contents"> <div class="fragment"><div class="line"></div><div class="line"><span class="preprocessor">#include "common.h"</span></div><div class="line"><span class="preprocessor">#include <stdlib.h></span></div><div class="line"><span class="preprocessor">#include <limits.h></span></div><div class="line"></div><div class="line"><span class="keyword">static</span> uint32_t dump_playlist(<a name="_a0"></a><a class="code" href="structLIBMTP__mtpdevice__struct.html">LIBMTP_mtpdevice_t</a> *device, <a name="_a1"></a><a class="code" href="structLIBMTP__playlist__struct.html">LIBMTP_playlist_t</a> *pl)</div><div class="line">{</div><div class="line"> uint32_t i;</div><div class="line"></div><div class="line"> printf(<span class="stringliteral">"Number of items: %u\n"</span>, pl-><a name="a2"></a><a class="code" href="structLIBMTP__playlist__struct.html#a868f74d17f319549b7e14d9f95826c6f">no_tracks</a>);</div><div class="line"> <span class="keywordflow">if</span>(pl-><a class="code" href="structLIBMTP__playlist__struct.html#a868f74d17f319549b7e14d9f95826c6f">no_tracks</a> > 0) {</div><div class="line"> <span class="keywordflow">for</span>(i=0;i<pl-><a class="code" href="structLIBMTP__playlist__struct.html#a868f74d17f319549b7e14d9f95826c6f">no_tracks</a>;i++) {</div><div class="line"> <a name="_a3"></a><a class="code" href="structLIBMTP__track__struct.html">LIBMTP_track_t</a> *track;</div><div class="line"> </div><div class="line"> track = <a name="a4"></a><a class="code" href="group__tracks.html#ga93aaa8ce0db15dff891a4e0c8e5fd094">LIBMTP_Get_Trackmetadata</a>(device, pl-><a name="a5"></a><a class="code" href="structLIBMTP__playlist__struct.html#aaa520f5654349df19e4be8cf6f96a6f7">tracks</a>[i]);</div><div class="line"> <span class="keywordflow">if</span> (track != NULL) {</div><div class="line"> printf(<span class="stringliteral">" %u: %s - %s\n"</span>, pl-><a class="code" href="structLIBMTP__playlist__struct.html#aaa520f5654349df19e4be8cf6f96a6f7">tracks</a>[i], track-><a name="a6"></a><a class="code" href="structLIBMTP__track__struct.html#ae0706099f555fa7a36d55f7d7afce45b">artist</a>, track-><a name="a7"></a><a class="code" href="structLIBMTP__track__struct.html#a08f9a52cac093232f14543bbd87d586d">title</a>);</div><div class="line"> <a name="a8"></a><a class="code" href="group__tracks.html#gafeb0d51f0d25ef2389b786f8d319e88f">LIBMTP_destroy_track_t</a>(track);</div><div class="line"> } <span class="keywordflow">else</span> {</div><div class="line"> printf(<span class="stringliteral">" %u: INVALID TRACK REFERENCE!\n"</span>, pl-><a class="code" href="structLIBMTP__playlist__struct.html#aaa520f5654349df19e4be8cf6f96a6f7">tracks</a>[i]);</div><div class="line"> <a name="a9"></a><a class="code" href="group__basic.html#ga682c81a83fa04b2caf5c962db1eaff82">LIBMTP_Dump_Errorstack</a>(device);</div><div class="line"> <a name="a10"></a><a class="code" href="group__basic.html#ga6c05b927310ac830c149ae3eeae94047">LIBMTP_Clear_Errorstack</a>(device);</div><div class="line"> }</div><div class="line"> }</div><div class="line"> }</div><div class="line"> <span class="keywordflow">return</span> 0;</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div><div class="line">{</div><div class="line"> <a class="code" href="structLIBMTP__mtpdevice__struct.html">LIBMTP_mtpdevice_t</a> *device;</div><div class="line"> <a class="code" href="structLIBMTP__playlist__struct.html">LIBMTP_playlist_t</a> *playlist;</div><div class="line"> uint32_t id;</div><div class="line"> <span class="keywordtype">char</span> *endptr;</div><div class="line"></div><div class="line"> fprintf(stdout, <span class="stringliteral">"libmtp version: "</span> LIBMTP_VERSION_STRING <span class="stringliteral">"\n\n"</span>);</div><div class="line"></div><div class="line"> <span class="comment">// We need file ID</span></div><div class="line"> <span class="keywordflow">if</span> ( argc != 2 ) {</div><div class="line"> fprintf(stderr, <span class="stringliteral">"Just a playlist ID is required\n"</span>);</div><div class="line"> <span class="keywordflow">return</span> 1;</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="comment">// Sanity check playlist ID</span></div><div class="line"> <span class="keywordtype">id</span> = strtoul(argv[1], &endptr, 10);</div><div class="line"> <span class="keywordflow">if</span> ( *endptr != 0 ) {</div><div class="line"> fprintf(stderr, <span class="stringliteral">"illegal value %s\n"</span>, argv[1]);</div><div class="line"> <span class="keywordflow">return</span> 1;</div><div class="line"> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( ! <span class="keywordtype">id</span> ) {</div><div class="line"> fprintf(stderr, <span class="stringliteral">"bad playlist id %u\n"</span>, <span class="keywordtype">id</span>);</div><div class="line"> <span class="keywordflow">return</span> 1;</div><div class="line"> }</div><div class="line"></div><div class="line"> <a name="a11"></a><a class="code" href="group__internals.html#gaaca880ea9ab434e8cf1a1051128318ef">LIBMTP_Init</a>();</div><div class="line"> device = <a name="a12"></a><a class="code" href="group__basic.html#gacd19150fce8688a56746c5b4e57be3ff">LIBMTP_Get_First_Device</a>();</div><div class="line"> <span class="keywordflow">if</span> (device == NULL) {</div><div class="line"> printf(<span class="stringliteral">"No devices. Connect/replug device and try again.\n"</span>);</div><div class="line"> exit (0);</div><div class="line"> }</div><div class="line"></div><div class="line"> playlist = <a name="a13"></a><a class="code" href="group__playlists.html#ga463909ddaa9e0e26055aa21f4d895598">LIBMTP_Get_Playlist</a>(device,<span class="keywordtype">id</span>); </div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (playlist != NULL) {</div><div class="line"> dump_playlist(device,playlist);</div><div class="line"> }</div><div class="line"></div><div class="line"> <a name="a14"></a><a class="code" href="group__playlists.html#ga8d6ce37c43c3cbbac49de849d8aafe77">LIBMTP_destroy_playlist_t</a>(playlist);</div><div class="line"> </div><div class="line"> <a name="a15"></a><a class="code" href="group__basic.html#ga55377eb5a8ff6ce2b1a557356fe12039">LIBMTP_Release_Device</a>(device);</div><div class="line"> printf(<span class="stringliteral">"OK.\n"</span>);</div><div class="line"> exit (0);</div><div class="line">}</div><div class="line"></div></div><!-- fragment --> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>