announce project is moving outside of garage.maemo.org
[lms] / www / api / lightmediascanner_8c.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>Light Media Scanner: src/lib/lightmediascanner.c File Reference</title>
4 <link href="tabs.css" rel="stylesheet" type="text/css">
5 <link href="doxygen.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <!-- Generated by Doxygen 1.5.8 -->
8 <div class="navigation" id="top">
9   <div class="tabs">
10     <ul>
11       <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12       <li><a href="modules.html"><span>Modules</span></a></li>
13       <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
14       <li class="current"><a href="files.html"><span>Files</span></a></li>
15     </ul>
16   </div>
17   <div class="tabs">
18     <ul>
19       <li><a href="files.html"><span>File&nbsp;List</span></a></li>
20       <li><a href="globals.html"><span>Globals</span></a></li>
21     </ul>
22   </div>
23 </div>
24 <div class="contents">
25 <h1>src/lib/lightmediascanner.c File Reference</h1><code>#include &lt;dlfcn.h&gt;</code><br>
26 <code>#include &lt;stdio.h&gt;</code><br>
27 <code>#include &lt;stdlib.h&gt;</code><br>
28 <code>#include &lt;string.h&gt;</code><br>
29 <code>#include &lt;dirent.h&gt;</code><br>
30 <code>#include &lt;errno.h&gt;</code><br>
31 <code>#include &quot;<a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>&quot;</code><br>
32 <code>#include &quot;<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>&quot;</code><br>
33 <code>#include &quot;<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>&quot;</code><br>
34
35 <p>
36 <div class="dynheader">
37 Include dependency graph for lightmediascanner.c:</div>
38 <div class="dynsection">
39 </div>
40
41 <p>
42 <a href="lightmediascanner_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
43 <tr><td></td></tr>
44 <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
45 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#c2843894cca63ec0089c381e69d1d81a">DEFAULT_SLAVE_TIMEOUT</a>&nbsp;&nbsp;&nbsp;1000</td></tr>
46
47 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#6d0480dc76aba4a2291d79ac2466fc59">DEFAULT_COMMIT_INTERVAL</a>&nbsp;&nbsp;&nbsp;100</td></tr>
48
49 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
50 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g982939bdd2aeb664b5cf7a50b67c1030">lms_new</a> (const char *db_path)</td></tr>
51
52 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lms_free</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>)</td></tr>
53
54 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#668e706f6d5eae3ba5e36ff4db2ae514">lms_set_progress_callback</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, <a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> cb, const void *data, <a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a> free_data)</td></tr>
55
56 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__plugin.html">lms_plugin_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">lms_parser_add</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *so_path)</td></tr>
57
58 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__plugin.html">lms_plugin_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lms_parser_find_and_add</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *name)</td></tr>
59
60 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, int i)</td></tr>
61
62 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">lms_parser_del</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *handle)</td></tr>
63
64 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">lms_is_processing</a> (const <a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>)</td></tr>
65
66 <tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lms_get_db_path</a> (const <a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>)</td></tr>
67
68 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lms_get_slave_timeout</a> (const <a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>)</td></tr>
69
70 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lms_set_slave_timeout</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, int ms)</td></tr>
71
72 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lms_get_commit_interval</a> (const <a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>)</td></tr>
73
74 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lms_set_commit_interval</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, unsigned int transactions)</td></tr>
75
76 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">lms_charset_add</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *charset)</td></tr>
77
78 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">lms_charset_del</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *charset)</td></tr>
79
80 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#7e27ccbd0abfd5d112586a00fd424db9">lms_parsers_list</a> (int(*cb)(void *data, const char *path), const void *data)</td></tr>
81
82 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#24f4c44982b286dc3ca451ca1acb6123">lms_parsers_list_by_category</a> (const char *category, int(*cb)(void *data, const char *path, const struct <a class="el" href="structlms__parser__info.html">lms_parser_info</a> *info), const void *data)</td></tr>
83
84 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__parser__info.html">lms_parser_info</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#0b95c1ed1a71c241bb887ee672f740d8">lms_parser_info</a> (const char *so_path)</td></tr>
85
86 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__parser__info.html">lms_parser_info</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#66457cf4ec2ef4a50bd899f99e914650">lms_parser_info_find</a> (const char *name)</td></tr>
87
88 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8c.html#508ef3c49f7f4729b9e5a5711b66bda1">lms_parser_info_free</a> (struct <a class="el" href="structlms__parser__info.html">lms_parser_info</a> *info)</td></tr>
89
90 </table>
91 <hr><h2>Define Documentation</h2>
92 <a class="anchor" name="6d0480dc76aba4a2291d79ac2466fc59"></a><!-- doxytag: member="lightmediascanner.c::DEFAULT_COMMIT_INTERVAL" ref="6d0480dc76aba4a2291d79ac2466fc59" args="" -->
93 <div class="memitem">
94 <div class="memproto">
95       <table class="memname">
96         <tr>
97           <td class="memname">#define DEFAULT_COMMIT_INTERVAL&nbsp;&nbsp;&nbsp;100          </td>
98         </tr>
99       </table>
100 </div>
101 <div class="memdoc">
102
103 <p>
104
105 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00037">37</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
106
107 <p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00121">lms_new()</a>.</p>
108
109 </div>
110 </div><p>
111 <a class="anchor" name="c2843894cca63ec0089c381e69d1d81a"></a><!-- doxytag: member="lightmediascanner.c::DEFAULT_SLAVE_TIMEOUT" ref="c2843894cca63ec0089c381e69d1d81a" args="" -->
112 <div class="memitem">
113 <div class="memproto">
114       <table class="memname">
115         <tr>
116           <td class="memname">#define DEFAULT_SLAVE_TIMEOUT&nbsp;&nbsp;&nbsp;1000          </td>
117         </tr>
118       </table>
119 </div>
120 <div class="memdoc">
121
122 <p>
123 Copyright (C) 2007 by INdT<p>
124 This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.<p>
125 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.<p>
126 You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.<p>
127 <dl class="author" compact><dt><b>Author:</b></dt><dd>Gustavo Sverzut Barbieri &lt;<a href="mailto:gustavo.barbieri@openbossa.org">gustavo.barbieri@openbossa.org</a>&gt; </dd></dl>
128
129 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00036">36</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
130
131 <p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00121">lms_new()</a>.</p>
132
133 </div>
134 </div><p>
135 <hr><h2>Function Documentation</h2>
136 <a class="anchor" name="e6ccb942742cf65cc1cf866aceb4bddf"></a><!-- doxytag: member="lightmediascanner.c::lms_parser_del_int" ref="e6ccb942742cf65cc1cf866aceb4bddf" args="(lms_t *lms, int i)" -->
137 <div class="memitem">
138 <div class="memproto">
139       <table class="memname">
140         <tr>
141           <td class="memname">int lms_parser_del_int           </td>
142           <td>(</td>
143           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
144           <td class="paramname"> <em>lms</em>, </td>
145         </tr>
146         <tr>
147           <td class="paramkey"></td>
148           <td></td>
149           <td class="paramtype">int&nbsp;</td>
150           <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
151         </tr>
152         <tr>
153           <td></td>
154           <td>)</td>
155           <td></td><td></td><td></td>
156         </tr>
157       </table>
158 </div>
159 <div class="memdoc">
160
161 <p>
162
163 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00294">294</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
164
165 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00078">lms::n_parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00077">lms::parsers</a>.</p>
166
167 <p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00334">lms_parser_del()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00293">lms_parsers_setup()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00319">lms_parsers_start()</a>.</p>
168
169 </div>
170 </div><p>
171 <a class="anchor" name="0b95c1ed1a71c241bb887ee672f740d8"></a><!-- doxytag: member="lightmediascanner.c::lms_parser_info" ref="0b95c1ed1a71c241bb887ee672f740d8" args="(const char *so_path)" -->
172 <div class="memitem">
173 <div class="memproto">
174       <table class="memname">
175         <tr>
176           <td class="memname">struct <a class="el" href="structlms__parser__info.html">lms_parser_info</a>* <a class="el" href="structlms__parser__info.html">lms_parser_info</a>           </td>
177           <td>(</td>
178           <td class="paramtype">const char *&nbsp;</td>
179           <td class="paramname"> <em>so_path</em>          </td>
180           <td>&nbsp;)&nbsp;</td>
181           <td><code> [read]</code></td>
182         </tr>
183       </table>
184 </div>
185 <div class="memdoc">
186
187 <p>
188 Get <a class="el" href="structparser.html">parser</a> information.<p>
189 Information can be used to let user choose parsers on Graphical User Interfaces.<p>
190 <dl compact><dt><b>Parameters:</b></dt><dd>
191   <table border="0" cellspacing="2" cellpadding="0">
192     <tr><td valign="top"></td><td valign="top"><em>so_path</em>&nbsp;</td><td>full path to module. </td></tr>
193   </table>
194 </dl>
195 <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="lightmediascanner_8c.html#66457cf4ec2ef4a50bd899f99e914650">lms_parser_info_find()</a> </dd></dl>
196
197 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00699">699</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
198
199 <p>References <a class="el" href="lightmediascanner_8h-source.html#l00204">lms_parser_info::authors</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00182">lms_plugin_info::authors</a>, <a class="el" href="lightmediascanner_8h-source.html#l00201">lms_parser_info::categories</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00179">lms_plugin_info::categories</a>, <a class="el" href="lightmediascanner_8h-source.html#l00202">lms_parser_info::description</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00180">lms_plugin_info::description</a>, <a class="el" href="lightmediascanner_8h-source.html#l00200">lms_parser_info::name</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00178">lms_plugin_info::name</a>, <a class="el" href="lightmediascanner_8h-source.html#l00199">lms_parser_info::path</a>, <a class="el" href="lightmediascanner_8h-source.html#l00205">lms_parser_info::uri</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00183">lms_plugin_info::uri</a>, <a class="el" href="lightmediascanner_8h-source.html#l00203">lms_parser_info::version</a>, and <a class="el" href="lightmediascanner__plugin_8h-source.html#l00181">lms_plugin_info::version</a>.</p>
200
201 <p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00824">lms_parser_info_find()</a>.</p>
202
203 </div>
204 </div><p>
205 <a class="anchor" name="66457cf4ec2ef4a50bd899f99e914650"></a><!-- doxytag: member="lightmediascanner.c::lms_parser_info_find" ref="66457cf4ec2ef4a50bd899f99e914650" args="(const char *name)" -->
206 <div class="memitem">
207 <div class="memproto">
208       <table class="memname">
209         <tr>
210           <td class="memname">struct <a class="el" href="structlms__parser__info.html">lms_parser_info</a>* lms_parser_info_find           </td>
211           <td>(</td>
212           <td class="paramtype">const char *&nbsp;</td>
213           <td class="paramname"> <em>name</em>          </td>
214           <td>&nbsp;)&nbsp;</td>
215           <td><code> [read]</code></td>
216         </tr>
217       </table>
218 </div>
219 <div class="memdoc">
220
221 <p>
222 Find <a class="el" href="structparser.html">parser</a> by name and get its information.<p>
223 Information can be used to let user choose parsers on Graphical User Interfaces.<p>
224 <dl compact><dt><b>Parameters:</b></dt><dd>
225   <table border="0" cellspacing="2" cellpadding="0">
226     <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of .so to find the whole so_path and retrieve information. </td></tr>
227   </table>
228 </dl>
229 <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="lightmediascanner_8c.html#0b95c1ed1a71c241bb887ee672f740d8">lms_parser_info()</a> </dd></dl>
230
231 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00824">824</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
232
233 <p>References <a class="el" href="lightmediascanner_8c-source.html#l00699">lms_parser_info()</a>.</p>
234
235 <p>
236 <div class="dynheader">
237 Here is the call graph for this function:</div>
238 <div class="dynsection">
239 </div>
240
241 </div>
242 </div><p>
243 <a class="anchor" name="508ef3c49f7f4729b9e5a5711b66bda1"></a><!-- doxytag: member="lightmediascanner.c::lms_parser_info_free" ref="508ef3c49f7f4729b9e5a5711b66bda1" args="(struct lms_parser_info *info)" -->
244 <div class="memitem">
245 <div class="memproto">
246       <table class="memname">
247         <tr>
248           <td class="memname">void lms_parser_info_free           </td>
249           <td>(</td>
250           <td class="paramtype">struct <a class="el" href="structlms__parser__info.html">lms_parser_info</a> *&nbsp;</td>
251           <td class="paramname"> <em>info</em>          </td>
252           <td>&nbsp;)&nbsp;</td>
253           <td></td>
254         </tr>
255       </table>
256 </div>
257 <div class="memdoc">
258
259 <p>
260 Free previously returned information.<p>
261 <dl class="note" compact><dt><b>Note:</b></dt><dd>it is safe to call with NULL. </dd></dl>
262
263 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00843">843</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
264
265 </div>
266 </div><p>
267 <a class="anchor" name="7e27ccbd0abfd5d112586a00fd424db9"></a><!-- doxytag: member="lightmediascanner.c::lms_parsers_list" ref="7e27ccbd0abfd5d112586a00fd424db9" args="(int(*cb)(void *data, const char *path), const void *data)" -->
268 <div class="memitem">
269 <div class="memproto">
270       <table class="memname">
271         <tr>
272           <td class="memname">void lms_parsers_list           </td>
273           <td>(</td>
274           <td class="paramtype">int(*)(void *data, const char *path)&nbsp;</td>
275           <td class="paramname"> <em>cb</em>, </td>
276         </tr>
277         <tr>
278           <td class="paramkey"></td>
279           <td></td>
280           <td class="paramtype">const void *&nbsp;</td>
281           <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
282         </tr>
283         <tr>
284           <td></td>
285           <td>)</td>
286           <td></td><td></td><td></td>
287         </tr>
288       </table>
289 </div>
290 <div class="memdoc">
291
292 <p>
293 List all known parsers on the system.<p>
294 No information is retrieved, you might like to call <a class="el" href="lightmediascanner_8c.html#0b95c1ed1a71c241bb887ee672f740d8">lms_parser_info()</a> on the callback path.<p>
295 <dl compact><dt><b>Parameters:</b></dt><dd>
296   <table border="0" cellspacing="2" cellpadding="0">
297     <tr><td valign="top"></td><td valign="top"><em>cb</em>&nbsp;</td><td>function to call for each path found. If it returns 0, it stops iteraction. </td></tr>
298     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>extra data to pass to <em>cb</em> on every call. </td></tr>
299   </table>
300 </dl>
301
302 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00540">540</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
303
304 <p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00629">lms_parsers_list_by_category()</a>.</p>
305
306 </div>
307 </div><p>
308 <a class="anchor" name="24f4c44982b286dc3ca451ca1acb6123"></a><!-- doxytag: member="lightmediascanner.c::lms_parsers_list_by_category" ref="24f4c44982b286dc3ca451ca1acb6123" args="(const char *category, int(*cb)(void *data, const char *path, const struct lms_parser_info *info), const void *data)" -->
309 <div class="memitem">
310 <div class="memproto">
311       <table class="memname">
312         <tr>
313           <td class="memname">void lms_parsers_list_by_category           </td>
314           <td>(</td>
315           <td class="paramtype">const char *&nbsp;</td>
316           <td class="paramname"> <em>category</em>, </td>
317         </tr>
318         <tr>
319           <td class="paramkey"></td>
320           <td></td>
321           <td class="paramtype">int(*)(void *data, const char *path, const struct <a class="el" href="structlms__parser__info.html">lms_parser_info</a> *info)&nbsp;</td>
322           <td class="paramname"> <em>cb</em>, </td>
323         </tr>
324         <tr>
325           <td class="paramkey"></td>
326           <td></td>
327           <td class="paramtype">const void *&nbsp;</td>
328           <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
329         </tr>
330         <tr>
331           <td></td>
332           <td>)</td>
333           <td></td><td></td><td></td>
334         </tr>
335       </table>
336 </div>
337 <div class="memdoc">
338
339 <p>
340 List all known parsers of a given category.<p>
341 Since we need information to figure out <a class="el" href="structparser.html">parser</a> category, these are passed as argument to callback, but you should NOT modify or reference it after callback function returns since it will be released after that.<p>
342 <dl compact><dt><b>Parameters:</b></dt><dd>
343   <table border="0" cellspacing="2" cellpadding="0">
344     <tr><td valign="top"></td><td valign="top"><em>category</em>&nbsp;</td><td>which category to match. </td></tr>
345     <tr><td valign="top"></td><td valign="top"><em>cb</em>&nbsp;</td><td>function to call for each path found. If it returns 0, it stops iteraction. </td></tr>
346     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>extra data to pass to <em>cb</em> on every call. </td></tr>
347   </table>
348 </dl>
349
350 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00629">629</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
351
352 <p>References <a class="el" href="lightmediascanner_8c-source.html#l00540">lms_parsers_list()</a>.</p>
353
354 <p>
355 <div class="dynheader">
356 Here is the call graph for this function:</div>
357 <div class="dynsection">
358 </div>
359
360 </div>
361 </div><p>
362 <a class="anchor" name="668e706f6d5eae3ba5e36ff4db2ae514"></a><!-- doxytag: member="lightmediascanner.c::lms_set_progress_callback" ref="668e706f6d5eae3ba5e36ff4db2ae514" args="(lms_t *lms, lms_progress_callback_t cb, const void *data, lms_free_callback_t free_data)" -->
363 <div class="memitem">
364 <div class="memproto">
365       <table class="memname">
366         <tr>
367           <td class="memname">void lms_set_progress_callback           </td>
368           <td>(</td>
369           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
370           <td class="paramname"> <em>lms</em>, </td>
371         </tr>
372         <tr>
373           <td class="paramkey"></td>
374           <td></td>
375           <td class="paramtype"><a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a>&nbsp;</td>
376           <td class="paramname"> <em>cb</em>, </td>
377         </tr>
378         <tr>
379           <td class="paramkey"></td>
380           <td></td>
381           <td class="paramtype">const void *&nbsp;</td>
382           <td class="paramname"> <em>data</em>, </td>
383         </tr>
384         <tr>
385           <td class="paramkey"></td>
386           <td></td>
387           <td class="paramtype"><a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a>&nbsp;</td>
388           <td class="paramname"> <em>free_data</em></td><td>&nbsp;</td>
389         </tr>
390         <tr>
391           <td></td>
392           <td>)</td>
393           <td></td><td></td><td></td>
394         </tr>
395       </table>
396 </div>
397 <div class="memdoc">
398
399 <p>
400 Set callback to be used to report progress (check and process).<p>
401 <dl compact><dt><b>Parameters:</b></dt><dd>
402   <table border="0" cellspacing="2" cellpadding="0">
403     <tr><td valign="top"></td><td valign="top"><em><a class="el" href="structlms.html">lms</a></em>&nbsp;</td><td>previously allocated Light Media Scanner instance. </td></tr>
404     <tr><td valign="top"></td><td valign="top"><em>cb</em>&nbsp;</td><td>function to call when files are processed or NULL to unset. </td></tr>
405     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>data to give to cb when it's called, may be NULL. </td></tr>
406     <tr><td valign="top"></td><td valign="top"><em>free_data</em>&nbsp;</td><td>function to call to free <em>data</em> when <a class="el" href="structlms.html">lms</a> is freed or new progress data is set. </td></tr>
407   </table>
408 </dl>
409
410 <p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00195">195</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
411
412 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00083">lms::cb</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00084">lms::data</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00085">lms::free_data</a>, and <a class="el" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">lms::progress</a>.</p>
413
414 </div>
415 </div><p>
416 </div>
417 <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 22 23:56:01 2009 for Light Media Scanner by&nbsp;
418 <a href="http://www.doxygen.org/index.html">
419 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
420 </body>
421 </html>