Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 23fdeec2afeeb035357795bcffb419c6 > files > 20

libmtp-doc-1.0.2-1mdv2010.1.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>libmtp: getfile.c</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.2 -->
<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><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="contents">
<h1>getfile.c</h1><div class="fragment"><pre class="fragment">
<span class="preprocessor">#include &quot;common.h&quot;</span>
<span class="preprocessor">#include &quot;pathutils.h&quot;</span>
<span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<span class="preprocessor">#include &lt;limits.h&gt;</span>

<span class="keywordtype">void</span> getfile_function(<span class="keywordtype">char</span> *,<span class="keywordtype">char</span> *);
<span class="keywordtype">void</span> getfile_command(<span class="keywordtype">int</span>, <span class="keywordtype">char</span> **);
<span class="keywordtype">void</span> getfile_usage(<span class="keywordtype">void</span>);

<span class="keyword">extern</span> <a name="_a0"></a><a class="code" href="structLIBMTP__folder__struct.html">LIBMTP_folder_t</a> *folders;
<span class="keyword">extern</span> <a name="_a1"></a><a class="code" href="structLIBMTP__file__struct.html">LIBMTP_file_t</a> *files;
<span class="keyword">extern</span> <a name="_a2"></a><a class="code" href="structLIBMTP__mtpdevice__struct.html">LIBMTP_mtpdevice_t</a> *device;

<span class="keywordtype">void</span> getfile_usage (<span class="keywordtype">void</span>)
{
  fprintf(stderr, <span class="stringliteral">&quot;getfile &lt;fileid/trackid&gt; &lt;filename&gt;\n&quot;</span>);
}

<span class="keywordtype">void</span>
getfile_function(<span class="keywordtype">char</span> * from_path,<span class="keywordtype">char</span> * to_path)
{
  <span class="keywordtype">int</span> <span class="keywordtype">id</span> = parse_path (from_path,files,folders);
  <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt; 0) {
    printf(<span class="stringliteral">&quot;Getting %s to %s\n&quot;</span>,from_path,to_path);
    <span class="keywordflow">if</span> (<a name="a3"></a><a class="code" href="group__files.html#ga7c7d210d89a8ce35220914346db56e1b">LIBMTP_Get_File_To_File</a>(device, <span class="keywordtype">id</span>, to_path, progress, NULL) != 0 ) {
      printf(<span class="stringliteral">&quot;\nError getting file from MTP device.\n&quot;</span>);
      <a name="a4"></a><a class="code" href="group__basic.html#ga682c81a83fa04b2caf5c962db1eaff82">LIBMTP_Dump_Errorstack</a>(device);
      <a name="a5"></a><a class="code" href="group__basic.html#ga6c05b927310ac830c149ae3eeae94047">LIBMTP_Clear_Errorstack</a>(device);
    }
  }
}


<span class="keywordtype">void</span> getfile_command(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)
{
  uint32_t id;
  <span class="keywordtype">char</span> *endptr;
  <span class="keywordtype">char</span> *file;

  <span class="comment">// We need file ID and filename</span>
  <span class="keywordflow">if</span> ( argc != 3 ) {
    getfile_usage();
    <span class="keywordflow">return</span>;
  }

  <span class="comment">// Sanity check song ID</span>
  <span class="keywordtype">id</span> = strtoul(argv[1], &amp;endptr, 10);
  <span class="keywordflow">if</span> ( *endptr != 0 ) {
    fprintf(stderr, <span class="stringliteral">&quot;illegal value %s\n&quot;</span>, argv[1]);
    <span class="keywordflow">return</span>;
  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( ! <span class="keywordtype">id</span> ) {
    fprintf(stderr, <span class="stringliteral">&quot;bad file/track id %u\n&quot;</span>, <span class="keywordtype">id</span>);
    <span class="keywordflow">return</span>;
 }

  <span class="comment">// Filename, e.g. &quot;foo.mp3&quot;</span>
  file = argv[2];
  printf(<span class="stringliteral">&quot;Getting file/track %d to local file %s\n&quot;</span>, <span class="keywordtype">id</span>, file);

  <span class="comment">// This function will also work just as well for tracks.</span>
  <span class="keywordflow">if</span> (<a class="code" href="group__files.html#ga7c7d210d89a8ce35220914346db56e1b">LIBMTP_Get_File_To_File</a>(device, <span class="keywordtype">id</span>, file, progress, NULL) != 0 ) {
    printf(<span class="stringliteral">&quot;\nError getting file from MTP device.\n&quot;</span>);
  }
  <span class="comment">// Terminate progress bar.</span>
  printf(<span class="stringliteral">&quot;\n&quot;</span>);
  
  <span class="keywordflow">return</span>;
}

</pre></div> </div>
<hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
</body>
</html>