Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > d8739096b8ff2c6105741c14b741d581 > files > 536

audacious-devel-3.3.4-2.fc18.i686.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>Audacious: vfs.c File Reference</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 style="padding-left: 0.5em;">
   <div id="projectname">Audacious
   &#160;<span id="projectnumber">$Id:Doxyfile42802007-03-2104:39:00Znenolod$</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_539eecd099282e37732f96b8529d94e5.html">libaudcore</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">vfs.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;glib.h&gt;</code><br/>
<code>#include &lt;inttypes.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="vfs_8h_source.html">vfs.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="audstrings_8h_source.html">audstrings.h</a>&quot;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;unistd.h&gt;</code><br/>
<code>#include &lt;sys/stat.h&gt;</code><br/>
<code>#include &lt;sys/types.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &quot;config.h&quot;</code><br/>
</div>
<p><a href="vfs_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VFSFile.html">VFSFile</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structVFSFile.html">VFSFile</a> objects describe an opened VFS stream, basically being similar in purpose as stdio FILE  <a href="struct__VFSFile.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a5f049bb6ed6dfb71b009d8dedf62b4e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a5f049bb6ed6dfb71b009d8dedf62b4e5">VFS_SIG</a>&#160;&#160;&#160;('V' | ('F' &lt;&lt; 8) | ('S' &lt;&lt; 16))</td></tr>
<tr class="separator:a5f049bb6ed6dfb71b009d8dedf62b4e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab2ff6e86f05a302cf85e7c46c400d0ae"><td class="memItemLeft" align="right" valign="top">EXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#ab2ff6e86f05a302cf85e7c46c400d0ae">vfs_set_lookup_func</a> (<a class="el" href="structVFSConstructor.html">VFSConstructor</a> *(*<a class="el" href="plugins-api_8h.html#a140f43dbe38431fed1594811b2ae7544">func</a>)(const char *scheme))</td></tr>
<tr class="separator:ab2ff6e86f05a302cf85e7c46c400d0ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73e4573d02720d63fd9f7cd933b6d433"><td class="memItemLeft" align="right" valign="top">EXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a73e4573d02720d63fd9f7cd933b6d433">vfs_set_verbose</a> (<a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a> set)</td></tr>
<tr class="separator:a73e4573d02720d63fd9f7cd933b6d433"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b23d1c12d867f2cfe8fd52ece591d2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a16b23d1c12d867f2cfe8fd52ece591d2">logger</a> (const char *<a class="el" href="audio_8c.html#a317afff57d87a89158c2b038d37b2b08">format</a>,...)</td></tr>
<tr class="separator:a16b23d1c12d867f2cfe8fd52ece591d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f853b5a0519a14e6bf9ef20ce43ace6"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a2f853b5a0519a14e6bf9ef20ce43ace6">vfs_new</a> (const char *path, <a class="el" href="structVFSConstructor.html">VFSConstructor</a> *vtable, void *handle)</td></tr>
<tr class="separator:a2f853b5a0519a14e6bf9ef20ce43ace6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ffcd349677515e95e32e5a876e3e94f"><td class="memItemLeft" align="right" valign="top">EXPORT const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a8ffcd349677515e95e32e5a876e3e94f">vfs_get_filename</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="separator:a8ffcd349677515e95e32e5a876e3e94f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf72afdd4e033435f4b9c7a2317a3ad6"><td class="memItemLeft" align="right" valign="top">EXPORT void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#aaf72afdd4e033435f4b9c7a2317a3ad6">vfs_get_handle</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="separator:aaf72afdd4e033435f4b9c7a2317a3ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa95856e41acce9289b88f5de41947f1e"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#aa95856e41acce9289b88f5de41947f1e">vfs_fopen</a> (const char *path, const char *mode)</td></tr>
<tr class="memdesc:aa95856e41acce9289b88f5de41947f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a stream from a VFS transport using one of the registered <a class="el" href="structVFSConstructor.html">VFSConstructor</a> handlers.  <a href="#aa95856e41acce9289b88f5de41947f1e"></a><br/></td></tr>
<tr class="separator:aa95856e41acce9289b88f5de41947f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49abb50e36b4a454d0dfa1b79aa4c9e1"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a49abb50e36b4a454d0dfa1b79aa4c9e1">vfs_fclose</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:a49abb50e36b4a454d0dfa1b79aa4c9e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a VFS stream and destroys a <a class="el" href="structVFSFile.html">VFSFile</a> object.  <a href="#a49abb50e36b4a454d0dfa1b79aa4c9e1"></a><br/></td></tr>
<tr class="separator:a49abb50e36b4a454d0dfa1b79aa4c9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eded483a7f0b886a0320e232cc4f309"><td class="memItemLeft" align="right" valign="top">EXPORT int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a2eded483a7f0b886a0320e232cc4f309">vfs_fread</a> (void *ptr, int64_t size, int64_t nmemb, <a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:a2eded483a7f0b886a0320e232cc4f309"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads from a VFS stream.  <a href="#a2eded483a7f0b886a0320e232cc4f309"></a><br/></td></tr>
<tr class="separator:a2eded483a7f0b886a0320e232cc4f309"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd1303b72d488f6dd8462e2dcdfcd235"><td class="memItemLeft" align="right" valign="top">EXPORT int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#afd1303b72d488f6dd8462e2dcdfcd235">vfs_fwrite</a> (const void *ptr, int64_t size, int64_t nmemb, <a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:afd1303b72d488f6dd8462e2dcdfcd235"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to a VFS stream.  <a href="#afd1303b72d488f6dd8462e2dcdfcd235"></a><br/></td></tr>
<tr class="separator:afd1303b72d488f6dd8462e2dcdfcd235"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af58b6576fe81049586eeacc55a47f062"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#af58b6576fe81049586eeacc55a47f062">vfs_getc</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:af58b6576fe81049586eeacc55a47f062"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a character from a VFS stream.  <a href="#af58b6576fe81049586eeacc55a47f062"></a><br/></td></tr>
<tr class="separator:af58b6576fe81049586eeacc55a47f062"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c41a2b18d773e77af1f2105560c94b6"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a2c41a2b18d773e77af1f2105560c94b6">vfs_ungetc</a> (<a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a> c, <a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:a2c41a2b18d773e77af1f2105560c94b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pushes a character back to the VFS stream.  <a href="#a2c41a2b18d773e77af1f2105560c94b6"></a><br/></td></tr>
<tr class="separator:a2c41a2b18d773e77af1f2105560c94b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6a9f03d49156edcc485b315f7b7431c"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#ad6a9f03d49156edcc485b315f7b7431c">vfs_fseek</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file, int64_t offset, <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a> whence)</td></tr>
<tr class="memdesc:ad6a9f03d49156edcc485b315f7b7431c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a seek in given VFS stream.  <a href="#ad6a9f03d49156edcc485b315f7b7431c"></a><br/></td></tr>
<tr class="separator:ad6a9f03d49156edcc485b315f7b7431c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8558657e9a705e0ece2a37624b77ef7c"><td class="memItemLeft" align="right" valign="top">EXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a8558657e9a705e0ece2a37624b77ef7c">vfs_rewind</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:a8558657e9a705e0ece2a37624b77ef7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewinds a VFS stream.  <a href="#a8558657e9a705e0ece2a37624b77ef7c"></a><br/></td></tr>
<tr class="separator:a8558657e9a705e0ece2a37624b77ef7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc1fc1a462d3234dd815e78a8e911e49"><td class="memItemLeft" align="right" valign="top">EXPORT int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#adc1fc1a462d3234dd815e78a8e911e49">vfs_ftell</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:adc1fc1a462d3234dd815e78a8e911e49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current position in the VFS stream's buffer.  <a href="#adc1fc1a462d3234dd815e78a8e911e49"></a><br/></td></tr>
<tr class="separator:adc1fc1a462d3234dd815e78a8e911e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab683e6be72412a51e2c2d5543b97c3c5"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#ab683e6be72412a51e2c2d5543b97c3c5">vfs_feof</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:ab683e6be72412a51e2c2d5543b97c3c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether or not the VFS stream has reached EOF.  <a href="#ab683e6be72412a51e2c2d5543b97c3c5"></a><br/></td></tr>
<tr class="separator:ab683e6be72412a51e2c2d5543b97c3c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a357f8c62779eefccf3a54e99fdd682eb"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a357f8c62779eefccf3a54e99fdd682eb">vfs_ftruncate</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file, int64_t length)</td></tr>
<tr class="memdesc:a357f8c62779eefccf3a54e99fdd682eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Truncates a VFS stream to a certain size.  <a href="#a357f8c62779eefccf3a54e99fdd682eb"></a><br/></td></tr>
<tr class="separator:a357f8c62779eefccf3a54e99fdd682eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af78bee9e37ad7bf4ba60645bd7baceed"><td class="memItemLeft" align="right" valign="top">EXPORT int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#af78bee9e37ad7bf4ba60645bd7baceed">vfs_fsize</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:af78bee9e37ad7bf4ba60645bd7baceed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns size of the file.  <a href="#af78bee9e37ad7bf4ba60645bd7baceed"></a><br/></td></tr>
<tr class="separator:af78bee9e37ad7bf4ba60645bd7baceed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acafd37804cf0e6294f18ac616f94e0ae"><td class="memItemLeft" align="right" valign="top">EXPORT char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#acafd37804cf0e6294f18ac616f94e0ae">vfs_get_metadata</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file, const char *field)</td></tr>
<tr class="memdesc:acafd37804cf0e6294f18ac616f94e0ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns metadata about the stream.  <a href="#acafd37804cf0e6294f18ac616f94e0ae"></a><br/></td></tr>
<tr class="separator:acafd37804cf0e6294f18ac616f94e0ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2438a243129e691931cdd3ccb297f905"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a2438a243129e691931cdd3ccb297f905">vfs_file_test</a> (const char *path, <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a> test)</td></tr>
<tr class="memdesc:a2438a243129e691931cdd3ccb297f905"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper for g_file_test().  <a href="#a2438a243129e691931cdd3ccb297f905"></a><br/></td></tr>
<tr class="separator:a2438a243129e691931cdd3ccb297f905"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ca897cce333fa0243ec2e082ef512d2"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#a2ca897cce333fa0243ec2e082ef512d2">vfs_is_writeable</a> (const char *path)</td></tr>
<tr class="memdesc:a2ca897cce333fa0243ec2e082ef512d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if a file is writeable.  <a href="#a2ca897cce333fa0243ec2e082ef512d2"></a><br/></td></tr>
<tr class="separator:a2ca897cce333fa0243ec2e082ef512d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2871f6f8e8a26eee41dc5e1808dad0c"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#aa2871f6f8e8a26eee41dc5e1808dad0c">vfs_is_remote</a> (const char *path)</td></tr>
<tr class="memdesc:aa2871f6f8e8a26eee41dc5e1808dad0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if a path is remote uri.  <a href="#aa2871f6f8e8a26eee41dc5e1808dad0c"></a><br/></td></tr>
<tr class="separator:aa2871f6f8e8a26eee41dc5e1808dad0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae29f69c36f2e207be5e79828e73934e4"><td class="memItemLeft" align="right" valign="top">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#ae29f69c36f2e207be5e79828e73934e4">vfs_is_streaming</a> (<a class="el" href="structVFSFile.html">VFSFile</a> *file)</td></tr>
<tr class="memdesc:ae29f69c36f2e207be5e79828e73934e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if a file is associated to streaming.  <a href="#ae29f69c36f2e207be5e79828e73934e4"></a><br/></td></tr>
<tr class="separator:ae29f69c36f2e207be5e79828e73934e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ab3f8c01131f576836da3970b6a365d2a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structVFSConstructor.html">VFSConstructor</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#ab3f8c01131f576836da3970b6a365d2a">lookup_func</a> )(const char *scheme) = <a class="el" href="core_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a></td></tr>
<tr class="separator:ab3f8c01131f576836da3970b6a365d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b57db7b122010ddbea1e69f481a368"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vfs_8c.html#ac3b57db7b122010ddbea1e69f481a368">verbose</a> = <a class="el" href="core_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a></td></tr>
<tr class="separator:ac3b57db7b122010ddbea1e69f481a368"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a5f049bb6ed6dfb71b009d8dedf62b4e5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VFS_SIG&#160;&#160;&#160;('V' | ('F' &lt;&lt; 8) | ('S' &lt;&lt; 16))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00034">34</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="vfs_8c_source.html#l00166">vfs_fclose()</a>, <a class="el" href="vfs_8c_source.html#l00335">vfs_feof()</a>, <a class="el" href="vfs_8c_source.html#l00195">vfs_fread()</a>, <a class="el" href="vfs_8c_source.html#l00279">vfs_fseek()</a>, <a class="el" href="vfs_8c_source.html#l00370">vfs_fsize()</a>, <a class="el" href="vfs_8c_source.html#l00316">vfs_ftell()</a>, <a class="el" href="vfs_8c_source.html#l00354">vfs_ftruncate()</a>, <a class="el" href="vfs_8c_source.html#l00217">vfs_fwrite()</a>, <a class="el" href="vfs_8c_source.html#l00237">vfs_getc()</a>, <a class="el" href="vfs_8c_source.html#l00095">vfs_new()</a>, <a class="el" href="vfs_8c_source.html#l00299">vfs_rewind()</a>, and <a class="el" href="vfs_8c_source.html#l00255">vfs_ungetc()</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a16b23d1c12d867f2cfe8fd52ece591d2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void logger </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00068">68</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="vfs_8c_source.html#l00166">vfs_fclose()</a>, <a class="el" href="vfs_8c_source.html#l00335">vfs_feof()</a>, <a class="el" href="vfs_8c_source.html#l00124">vfs_fopen()</a>, <a class="el" href="vfs_8c_source.html#l00279">vfs_fseek()</a>, <a class="el" href="vfs_8c_source.html#l00370">vfs_fsize()</a>, <a class="el" href="vfs_8c_source.html#l00316">vfs_ftell()</a>, <a class="el" href="vfs_8c_source.html#l00354">vfs_ftruncate()</a>, <a class="el" href="vfs_8c_source.html#l00217">vfs_fwrite()</a>, <a class="el" href="vfs_8c_source.html#l00237">vfs_getc()</a>, <a class="el" href="vfs_8c_source.html#l00299">vfs_rewind()</a>, and <a class="el" href="vfs_8c_source.html#l00255">vfs_ungetc()</a>.</p>

</div>
</div>
<a class="anchor" id="a49abb50e36b4a454d0dfa1b79aa4c9e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a> vfs_fclose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Closes a VFS stream and destroys a <a class="el" href="structVFSFile.html">VFSFile</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>A <a class="el" href="structVFSFile.html">VFSFile</a> object to destroy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on failure, 0 on success. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00166">166</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="probe_8c_source.html#l00163">file_find_decoder()</a>, <a class="el" href="probe_8c_source.html#l00212">file_read_image()</a>, <a class="el" href="probe_8c_source.html#l00197">file_read_tuple()</a>, <a class="el" href="probe_8c_source.html#l00242">file_write_tuple()</a>, <a class="el" href="playback_8c_source.html#l00298">playback_thread()</a>, <a class="el" href="playlist-files_8c_source.html#l00061">playlist_load()</a>, <a class="el" href="playlist-files_8c_source.html#l00122">playlist_save()</a>, <a class="el" href="probe-buffer_8c_source.html#l00035">probe_buffer_fclose()</a>, <a class="el" href="equalizer__preset_8c_source.html#l00188">save_preset_file()</a>, and <a class="el" href="vfs__common_8c_source.html#l00150">vfs_file_get_contents()</a>.</p>

</div>
</div>
<a class="anchor" id="ab683e6be72412a51e2c2d5543b97c3c5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a> vfs_feof </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns whether or not the VFS stream has reached EOF. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, whether or not the VFS stream is at EOF. Otherwise, FALSE. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00335">335</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="probe-buffer_8c_source.html#l00117">probe_buffer_feof()</a>.</p>

</div>
</div>
<a class="anchor" id="a2438a243129e691931cdd3ccb297f905"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a> vfs_file_test </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a>&#160;</td>
          <td class="paramname"><em>test</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wrapper for g_file_test(). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>A path to test. </td></tr>
    <tr><td class="paramname">test</td><td>A GFileTest to run. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of g_file_test(). </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00408">408</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="adder_8c_source.html#l00371">add_generic()</a>, and <a class="el" href="playlist-utils_8c_source.html#l00211">playlist_remove_failed()</a>.</p>

</div>
</div>
<a class="anchor" id="aa95856e41acce9289b88f5de41947f1e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="structVFSFile.html">VFSFile</a>* vfs_fopen </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Opens a stream from a VFS transport using one of the registered <a class="el" href="structVFSConstructor.html">VFSConstructor</a> handlers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>The path or URI to open. </td></tr>
    <tr><td class="paramname">mode</td><td>The preferred access privileges (not guaranteed). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, a <a class="el" href="structVFSFile.html">VFSFile</a> object representing the stream. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00124">124</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="probe_8c_source.html#l00042">check_opened()</a>, <a class="el" href="probe_8c_source.html#l00212">file_read_image()</a>, <a class="el" href="probe_8c_source.html#l00197">file_read_tuple()</a>, <a class="el" href="probe_8c_source.html#l00242">file_write_tuple()</a>, <a class="el" href="playback_8c_source.html#l00298">playback_thread()</a>, <a class="el" href="playlist-files_8c_source.html#l00061">playlist_load()</a>, <a class="el" href="playlist-files_8c_source.html#l00122">playlist_save()</a>, <a class="el" href="probe-buffer_8c_source.html#l00156">probe_buffer_new()</a>, <a class="el" href="equalizer__preset_8c_source.html#l00188">save_preset_file()</a>, and <a class="el" href="vfs__common_8c_source.html#l00150">vfs_file_get_contents()</a>.</p>

</div>
</div>
<a class="anchor" id="a2eded483a7f0b886a0320e232cc4f309"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT int64_t vfs_fread </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>nmemb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads from a VFS stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptr</td><td>A pointer to the destination buffer. </td></tr>
    <tr><td class="paramname">size</td><td>The size of each element to read. </td></tr>
    <tr><td class="paramname">nmemb</td><td>The number of elements to read. </td></tr>
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of elements succesfully read. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00195">195</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="equalizer__preset_8c_source.html#l00142">import_winamp_eqf()</a>, <a class="el" href="probe-buffer_8c_source.html#l00044">increase_buffer()</a>, <a class="el" href="vfs__common_8c_source.html#l00256">vfs_fget_be16()</a>, <a class="el" href="vfs__common_8c_source.html#l00272">vfs_fget_be32()</a>, <a class="el" href="vfs__common_8c_source.html#l00288">vfs_fget_be64()</a>, <a class="el" href="vfs__common_8c_source.html#l00207">vfs_fget_le16()</a>, <a class="el" href="vfs__common_8c_source.html#l00223">vfs_fget_le32()</a>, <a class="el" href="vfs__common_8c_source.html#l00239">vfs_fget_le64()</a>, and <a class="el" href="vfs__common_8c_source.html#l00150">vfs_file_get_contents()</a>.</p>

</div>
</div>
<a class="anchor" id="ad6a9f03d49156edcc485b315f7b7431c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a> vfs_fseek </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a>&#160;</td>
          <td class="paramname"><em>whence</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs a seek in given VFS stream. </p>
<p>Standard C-style values of whence can be used to indicate desired action.</p>
<ul>
<li>SEEK_CUR seeks relative to current stream position.</li>
<li>SEEK_SET seeks to given absolute position (relative to stream beginning).</li>
<li>SEEK_END sets stream position to current file end.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
    <tr><td class="paramname">offset</td><td>The offset to seek to. </td></tr>
    <tr><td class="paramname">whence</td><td>Type of the seek: SEEK_CUR, SEEK_SET or SEEK_END. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, 0. Otherwise, -1. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00279">279</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="equalizer__preset_8c_source.html#l00142">import_winamp_eqf()</a>, and <a class="el" href="probe_8c_source.html#l00063">probe_func()</a>.</p>

</div>
</div>
<a class="anchor" id="af78bee9e37ad7bf4ba60645bd7baceed"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT int64_t vfs_fsize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns size of the file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, the size of the file in bytes. Otherwise, -1. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00370">370</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="probe-buffer_8c_source.html#l00129">probe_buffer_fsize()</a>, <a class="el" href="vfs__common_8c_source.html#l00150">vfs_file_get_contents()</a>, and <a class="el" href="vfs_8c_source.html#l00487">vfs_is_streaming()</a>.</p>

</div>
</div>
<a class="anchor" id="adc1fc1a462d3234dd815e78a8e911e49"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT int64_t vfs_ftell </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current position in the VFS stream's buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, the current position. Otherwise, -1. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00316">316</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

</div>
</div>
<a class="anchor" id="a357f8c62779eefccf3a54e99fdd682eb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a> vfs_ftruncate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Truncates a VFS stream to a certain size. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
    <tr><td class="paramname">length</td><td>The length to truncate at. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, 0. Otherwise, -1. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00354">354</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

</div>
</div>
<a class="anchor" id="afd1303b72d488f6dd8462e2dcdfcd235"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT int64_t vfs_fwrite </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>nmemb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes to a VFS stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptr</td><td>A const pointer to the source buffer. </td></tr>
    <tr><td class="paramname">size</td><td>The size of each element to write. </td></tr>
    <tr><td class="paramname">nmemb</td><td>The number of elements to write. </td></tr>
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of elements succesfully written. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00217">217</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="equalizer__preset_8c_source.html#l00188">save_preset_file()</a>, <a class="el" href="vfs__common_8c_source.html#l00347">vfs_fput_be16()</a>, <a class="el" href="vfs__common_8c_source.html#l00361">vfs_fput_be32()</a>, <a class="el" href="vfs__common_8c_source.html#l00375">vfs_fput_be64()</a>, <a class="el" href="vfs__common_8c_source.html#l00305">vfs_fput_le16()</a>, <a class="el" href="vfs__common_8c_source.html#l00319">vfs_fput_le32()</a>, <a class="el" href="vfs__common_8c_source.html#l00333">vfs_fput_le64()</a>, <a class="el" href="vfs__common_8c_source.html#l00045">vfs_fputc()</a>, and <a class="el" href="vfs__common_8c_source.html#l00096">vfs_fputs()</a>.</p>

</div>
</div>
<a class="anchor" id="a8ffcd349677515e95e32e5a876e3e94f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT const char* vfs_get_filename </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00105">105</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="equalizer__preset_8c_source.html#l00142">import_winamp_eqf()</a>.</p>

</div>
</div>
<a class="anchor" id="aaf72afdd4e033435f4b9c7a2317a3ad6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT void* vfs_get_handle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00110">110</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="probe-buffer_8c_source.html#l00035">probe_buffer_fclose()</a>, <a class="el" href="probe-buffer_8c_source.html#l00117">probe_buffer_feof()</a>, <a class="el" href="probe-buffer_8c_source.html#l00056">probe_buffer_fread()</a>, <a class="el" href="probe-buffer_8c_source.html#l00082">probe_buffer_fseek()</a>, <a class="el" href="probe-buffer_8c_source.html#l00129">probe_buffer_fsize()</a>, <a class="el" href="probe-buffer_8c_source.html#l00112">probe_buffer_ftell()</a>, and <a class="el" href="probe-buffer_8c_source.html#l00134">probe_buffer_get_metadata()</a>.</p>

</div>
</div>
<a class="anchor" id="acafd37804cf0e6294f18ac616f94e0ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT char* vfs_get_metadata </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>field</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns metadata about the stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
    <tr><td class="paramname">field</td><td>The string constant field name to get. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, a copy of the value of the field. Otherwise, NULL. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00390">390</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="probe-buffer_8c_source.html#l00134">probe_buffer_get_metadata()</a>, and <a class="el" href="probe_8c_source.html#l00141">probe_by_mime()</a>.</p>

</div>
</div>
<a class="anchor" id="af58b6576fe81049586eeacc55a47f062"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a> vfs_getc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads a character from a VFS stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, a character. Otherwise, EOF. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00237">237</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="vfs__common_8c_source.html#l00064">vfs_fgets()</a>.</p>

</div>
</div>
<a class="anchor" id="aa2871f6f8e8a26eee41dc5e1808dad0c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a> vfs_is_remote </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tests if a path is remote uri. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>A path to test. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if the file is remote, otherwise FALSE. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00476">476</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="probe_8c_source.html#l00042">check_opened()</a>.</p>

</div>
</div>
<a class="anchor" id="ae29f69c36f2e207be5e79828e73934e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a> vfs_is_streaming </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tests if a file is associated to streaming. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>A <a class="el" href="structVFSFile.html">VFSFile</a> object to test. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if the file is streaming, otherwise FALSE. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00487">487</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

</div>
</div>
<a class="anchor" id="a2ca897cce333fa0243ec2e082ef512d2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a> vfs_is_writeable </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tests if a file is writeable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>A path to test. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if the file is writeable, otherwise FALSE. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00457">457</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

</div>
</div>
<a class="anchor" id="a2f853b5a0519a14e6bf9ef20ce43ace6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="structVFSFile.html">VFSFile</a>* vfs_new </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structVFSConstructor.html">VFSConstructor</a> *&#160;</td>
          <td class="paramname"><em>vtable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00095">95</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="probe-buffer_8c_source.html#l00156">probe_buffer_new()</a>, and <a class="el" href="vfs_8c_source.html#l00124">vfs_fopen()</a>.</p>

</div>
</div>
<a class="anchor" id="a8558657e9a705e0ece2a37624b77ef7c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT void vfs_rewind </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rewinds a VFS stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00299">299</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab2ff6e86f05a302cf85e7c46c400d0ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT void vfs_set_lookup_func </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVFSConstructor.html">VFSConstructor</a> *(*)(const char *scheme)&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00056">56</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="plugin-init_8c_source.html#l00156">start_plugins_one()</a>, and <a class="el" href="plugin-init_8c_source.html#l00207">stop_plugins_one()</a>.</p>

</div>
</div>
<a class="anchor" id="a73e4573d02720d63fd9f7cd933b6d433"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT void vfs_set_verbose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a>&#160;</td>
          <td class="paramname"><em>set</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00063">63</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="main_8c_source.html#l00451">init_two()</a>.</p>

</div>
</div>
<a class="anchor" id="a2c41a2b18d773e77af1f2105560c94b6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT <a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a> vfs_ungetc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="plugins-api_8h.html#a61569f2965b7a369eb10b6d75d410d11">int</a>&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structVFSFile.html">VFSFile</a> *&#160;</td>
          <td class="paramname"><em>file</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Pushes a character back to the VFS stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>The character to push back. </td></tr>
    <tr><td class="paramname">file</td><td><a class="el" href="structVFSFile.html">VFSFile</a> object that represents the VFS stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, 0. Otherwise, EOF. </dd></dl>

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00255">255</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ab3f8c01131f576836da3970b6a365d2a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structVFSConstructor.html">VFSConstructor</a>*(*  lookup_func)(const char *scheme) = <a class="el" href="core_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00054">54</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="vfs_8c_source.html#l00124">vfs_fopen()</a>, and <a class="el" href="vfs_8c_source.html#l00056">vfs_set_lookup_func()</a>.</p>

</div>
</div>
<a class="anchor" id="ac3b57db7b122010ddbea1e69f481a368"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="playlist-api_8h.html#a9c0371229a271517ff8b2eb9901063eb">bool_t</a> verbose = <a class="el" href="core_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="vfs_8c_source.html#l00061">61</a> of file <a class="el" href="vfs_8c_source.html">vfs.c</a>.</p>

<p>Referenced by <a class="el" href="main_8c_source.html#l00451">init_two()</a>, and <a class="el" href="main_8c_source.html#l00250">parse_options()</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3
</small></address>
</body>
</html>