<!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 Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data 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 "common.h"</span> <span class="preprocessor">#include "pathutils.h"</span> <span class="preprocessor">#include <stdlib.h></span> <span class="preprocessor">#include <limits.h></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">"getfile <fileid/trackid> <filename>\n"</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> > 0) { printf(<span class="stringliteral">"Getting %s to %s\n"</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">"\nError getting file from MTP device.\n"</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], &endptr, 10); <span class="keywordflow">if</span> ( *endptr != 0 ) { fprintf(stderr, <span class="stringliteral">"illegal value %s\n"</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">"bad file/track id %u\n"</span>, <span class="keywordtype">id</span>); <span class="keywordflow">return</span>; } <span class="comment">// Filename, e.g. "foo.mp3"</span> file = argv[2]; printf(<span class="stringliteral">"Getting file/track %d to local file %s\n"</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">"\nError getting file from MTP device.\n"</span>); } <span class="comment">// Terminate progress bar.</span> printf(<span class="stringliteral">"\n"</span>); <span class="keywordflow">return</span>; } </pre></div> </div> <hr size="1"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address> </body> </html>