17929e9aec8c84b7561124bc8a30d00f28623b82
[lms] / www / api / lightmediascanner__process_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_process.c File Reference</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <!-- Generated by Doxygen 1.5.6 -->
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="classes.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>
18 <div class="contents">
19 <h1>src/lib/lightmediascanner_process.c File Reference</h1><code>#include &lt;sys/wait.h&gt;</code><br>
20 <code>#include &lt;sys/stat.h&gt;</code><br>
21 <code>#include &lt;unistd.h&gt;</code><br>
22 <code>#include &lt;dirent.h&gt;</code><br>
23 <code>#include &lt;signal.h&gt;</code><br>
24 <code>#include &lt;stdio.h&gt;</code><br>
25 <code>#include &lt;stdlib.h&gt;</code><br>
26 <code>#include &lt;string.h&gt;</code><br>
27 <code>#include &quot;<a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>&quot;</code><br>
28 <code>#include &quot;<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>&quot;</code><br>
29 <code>#include &quot;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&quot;</code><br>
30
31 <p>
32 <div class="dynheader">
33 Include dependency graph for lightmediascanner_process.c:</div>
34 <div class="dynsection">
35 <p><center><img src="lightmediascanner__process_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_process.c_map" alt=""></center>
36 <map name="src/lib/lightmediascanner_process.c_map">
37 <area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="781,239,936,265"><area shape="rect" href="lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="916,84,1127,111"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="1225,84,1460,111"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="1173,161,1373,188"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="960,239,1213,265"></map>
38 </div>
39
40 <p>
41 <a href="lightmediascanner__process_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
42 <tr><td></td></tr>
43 <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
44 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#369266c24eacffb87046522897a570d5">_GNU_SOURCE</a></td></tr>
45
46 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
47 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#c321bebfc5c24cbbac30031202c460e9">lms_parsers_setup</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, sqlite3 *db)</td></tr>
48
49 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#6e02f78f026b2ad282184476dca13e45">lms_parsers_start</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, sqlite3 *db)</td></tr>
50
51 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#d002464442b08826a1da920bdf4957b7">lms_parsers_finish</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, sqlite3 *db)</td></tr>
52
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#f2e95cea50ce24774d2f5ed7d8c8f41c">lms_parsers_check_using</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, void **parser_match, struct <a class="el" href="structlms__file__info.html">lms_file_info</a> *finfo)</td></tr>
54
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#4ab78dfbf29822d91472d18dd7424e77">lms_parsers_run</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, sqlite3 *db, void **parser_match, struct <a class="el" href="structlms__file__info.html">lms_file_info</a> *finfo)</td></tr>
56
57 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#6b68b00b80a98a178c7d69b962267a11">lms_close_pipes</a> (struct <a class="el" href="structpinfo.html">pinfo</a> *<a class="el" href="structpinfo.html">pinfo</a>)</td></tr>
58
59 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#c2e1320b9770e0f522451b13f82efc2b">lms_create_pipes</a> (struct <a class="el" href="structpinfo.html">pinfo</a> *<a class="el" href="structpinfo.html">pinfo</a>)</td></tr>
60
61 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#e92fe8fe90d93d5ad9a42387a4b2fc6e">lms_create_slave</a> (struct <a class="el" href="structpinfo.html">pinfo</a> *<a class="el" href="structpinfo.html">pinfo</a>, int(*work)(<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, struct <a class="el" href="structfds.html">fds</a> *<a class="el" href="structfds.html">fds</a>))</td></tr>
62
63 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#9f980636d608c6af99477ba37e196050">lms_finish_slave</a> (struct <a class="el" href="structpinfo.html">pinfo</a> *<a class="el" href="structpinfo.html">pinfo</a>, int(*finish)(const struct <a class="el" href="structfds.html">fds</a> *<a class="el" href="structfds.html">fds</a>))</td></tr>
64
65 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#9bf510645947b478dab39f633bbd35f3">lms_restart_slave</a> (struct <a class="el" href="structpinfo.html">pinfo</a> *<a class="el" href="structpinfo.html">pinfo</a>, int(*work)(<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, struct <a class="el" href="structfds.html">fds</a> *<a class="el" href="structfds.html">fds</a>))</td></tr>
66
67 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#c2f07fb73717514237862c98dbf023b2">lms_process</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *top_path)</td></tr>
68
69 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#5db83cefb7a50bbecea9de26a6ef1c2c">lms_process_single_process</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *top_path)</td></tr>
70
71 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__process_8c.html#36d624baae0531c20e716c88a82e0aaf">lms_stop_processing</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>)</td></tr>
72
73 </table>
74 <hr><h2>Define Documentation</h2>
75 <a class="anchor" name="369266c24eacffb87046522897a570d5"></a><!-- doxytag: member="lightmediascanner_process.c::_GNU_SOURCE" ref="369266c24eacffb87046522897a570d5" args="" -->
76 <div class="memitem">
77 <div class="memproto">
78       <table class="memname">
79         <tr>
80           <td class="memname">#define _GNU_SOURCE          </td>
81         </tr>
82       </table>
83 </div>
84 <div class="memdoc">
85
86 <p>
87 Copyright (C) 2007 by INdT<p>
88 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>
89 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>
90 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>
91 <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>
92
93 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00025">25</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
94
95 </div>
96 </div><p>
97 <hr><h2>Function Documentation</h2>
98 <a class="anchor" name="6b68b00b80a98a178c7d69b962267a11"></a><!-- doxytag: member="lightmediascanner_process.c::lms_close_pipes" ref="6b68b00b80a98a178c7d69b962267a11" args="(struct pinfo *pinfo)" -->
99 <div class="memitem">
100 <div class="memproto">
101       <table class="memname">
102         <tr>
103           <td class="memname">int lms_close_pipes           </td>
104           <td>(</td>
105           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
106           <td class="paramname"> <em>pinfo</em>          </td>
107           <td>&nbsp;)&nbsp;</td>
108           <td></td>
109         </tr>
110       </table>
111 </div>
112 <div class="memdoc">
113
114 <p>
115
116 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00596">596</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
117
118 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00057">pinfo::master</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00058">pinfo::slave</a>.</p>
119
120 <p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00900">lms_check()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l01002">lms_process()</a>.</p>
121
122 </div>
123 </div><p>
124 <a class="anchor" name="c2e1320b9770e0f522451b13f82efc2b"></a><!-- doxytag: member="lightmediascanner_process.c::lms_create_pipes" ref="c2e1320b9770e0f522451b13f82efc2b" args="(struct pinfo *pinfo)" -->
125 <div class="memitem">
126 <div class="memproto">
127       <table class="memname">
128         <tr>
129           <td class="memname">int lms_create_pipes           </td>
130           <td>(</td>
131           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
132           <td class="paramname"> <em>pinfo</em>          </td>
133           <td>&nbsp;)&nbsp;</td>
134           <td></td>
135         </tr>
136       </table>
137 </div>
138 <div class="memdoc">
139
140 <p>
141
142 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00607">607</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
143
144 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00057">pinfo::master</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00059">pinfo::poll</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00045">fds::r</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00058">pinfo::slave</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00046">fds::w</a>.</p>
145
146 <p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00900">lms_check()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l01002">lms_process()</a>.</p>
147
148 </div>
149 </div><p>
150 <a class="anchor" name="e92fe8fe90d93d5ad9a42387a4b2fc6e"></a><!-- doxytag: member="lightmediascanner_process.c::lms_create_slave" ref="e92fe8fe90d93d5ad9a42387a4b2fc6e" args="(struct pinfo *pinfo, int(*work)(lms_t *lms, struct fds *fds))" -->
151 <div class="memitem">
152 <div class="memproto">
153       <table class="memname">
154         <tr>
155           <td class="memname">int lms_create_slave           </td>
156           <td>(</td>
157           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
158           <td class="paramname"> <em>pinfo</em>, </td>
159         </tr>
160         <tr>
161           <td class="paramkey"></td>
162           <td></td>
163           <td class="paramtype">int(*)(<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, struct <a class="el" href="structfds.html">fds</a> *<a class="el" href="structfds.html">fds</a>)&nbsp;</td>
164           <td class="paramname"> <em>work</em></td><td>&nbsp;</td>
165         </tr>
166         <tr>
167           <td></td>
168           <td>)</td>
169           <td></td><td></td><td></td>
170         </tr>
171       </table>
172 </div>
173 <div class="memdoc">
174
175 <p>
176
177 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00634">634</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
178
179 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00056">pinfo::child</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00055">pinfo::common</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00050">cinfo::lms</a>, <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00057">pinfo::master</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00058">pinfo::slave</a>.</p>
180
181 <p>
182 <div class="dynheader">
183 Here is the call graph for this function:</div>
184 <div class="dynsection">
185 <p><center><img src="lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph_map" alt=""></center>
186 <map name="lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph_map">
187 <area shape="rect" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687" title="lms_free" alt="" coords="195,5,275,32"><area shape="rect" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="324,5,500,32"></map>
188 </div>
189
190 </div>
191 </div><p>
192 <a class="anchor" name="9f980636d608c6af99477ba37e196050"></a><!-- doxytag: member="lightmediascanner_process.c::lms_finish_slave" ref="9f980636d608c6af99477ba37e196050" args="(struct pinfo *pinfo, int(*finish)(const struct fds *fds))" -->
193 <div class="memitem">
194 <div class="memproto">
195       <table class="memname">
196         <tr>
197           <td class="memname">int lms_finish_slave           </td>
198           <td>(</td>
199           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
200           <td class="paramname"> <em>pinfo</em>, </td>
201         </tr>
202         <tr>
203           <td class="paramkey"></td>
204           <td></td>
205           <td class="paramtype">int(*)(const struct <a class="el" href="structfds.html">fds</a> *<a class="el" href="structfds.html">fds</a>)&nbsp;</td>
206           <td class="paramname"> <em>finish</em></td><td>&nbsp;</td>
207         </tr>
208         <tr>
209           <td></td>
210           <td>)</td>
211           <td></td><td></td><td></td>
212         </tr>
213       </table>
214 </div>
215 <div class="memdoc">
216
217 <p>
218
219 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00671">671</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
220
221 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00056">pinfo::child</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00057">pinfo::master</a>.</p>
222
223 </div>
224 </div><p>
225 <a class="anchor" name="f2e95cea50ce24774d2f5ed7d8c8f41c"></a><!-- doxytag: member="lightmediascanner_process.c::lms_parsers_check_using" ref="f2e95cea50ce24774d2f5ed7d8c8f41c" args="(lms_t *lms, void **parser_match, struct lms_file_info *finfo)" -->
226 <div class="memitem">
227 <div class="memproto">
228       <table class="memname">
229         <tr>
230           <td class="memname">int lms_parsers_check_using           </td>
231           <td>(</td>
232           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
233           <td class="paramname"> <em>lms</em>, </td>
234         </tr>
235         <tr>
236           <td class="paramkey"></td>
237           <td></td>
238           <td class="paramtype">void **&nbsp;</td>
239           <td class="paramname"> <em>parser_match</em>, </td>
240         </tr>
241         <tr>
242           <td class="paramkey"></td>
243           <td></td>
244           <td class="paramtype">struct <a class="el" href="structlms__file__info.html">lms_file_info</a> *&nbsp;</td>
245           <td class="paramname"> <em>finfo</em></td><td>&nbsp;</td>
246         </tr>
247         <tr>
248           <td></td>
249           <td>)</td>
250           <td></td><td></td><td></td>
251         </tr>
252       </table>
253 </div>
254 <div class="memdoc">
255
256 <p>
257
258 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00367">367</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
259
260 <p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00136">lms_file_info::base</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00157">lms_plugin::match</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00078">lms::n_parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00077">lms::parsers</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00134">lms_file_info::path</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00135">lms_file_info::path_len</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00071">parser::plugin</a>.</p>
261
262 </div>
263 </div><p>
264 <a class="anchor" name="d002464442b08826a1da920bdf4957b7"></a><!-- doxytag: member="lightmediascanner_process.c::lms_parsers_finish" ref="d002464442b08826a1da920bdf4957b7" args="(lms_t *lms, sqlite3 *db)" -->
265 <div class="memitem">
266 <div class="memproto">
267       <table class="memname">
268         <tr>
269           <td class="memname">int lms_parsers_finish           </td>
270           <td>(</td>
271           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
272           <td class="paramname"> <em>lms</em>, </td>
273         </tr>
274         <tr>
275           <td class="paramkey"></td>
276           <td></td>
277           <td class="paramtype">sqlite3 *&nbsp;</td>
278           <td class="paramname"> <em>db</em></td><td>&nbsp;</td>
279         </tr>
280         <tr>
281           <td></td>
282           <td>)</td>
283           <td></td><td></td><td></td>
284         </tr>
285       </table>
286 </div>
287 <div class="memdoc">
288
289 <p>
290
291 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00345">345</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
292
293 <p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00162">lms_plugin::finish</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00078">lms::n_parsers</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00156">lms_plugin::name</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00077">lms::parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00071">parser::plugin</a>.</p>
294
295 </div>
296 </div><p>
297 <a class="anchor" name="4ab78dfbf29822d91472d18dd7424e77"></a><!-- doxytag: member="lightmediascanner_process.c::lms_parsers_run" ref="4ab78dfbf29822d91472d18dd7424e77" args="(lms_t *lms, sqlite3 *db, void **parser_match, struct lms_file_info *finfo)" -->
298 <div class="memitem">
299 <div class="memproto">
300       <table class="memname">
301         <tr>
302           <td class="memname">int lms_parsers_run           </td>
303           <td>(</td>
304           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
305           <td class="paramname"> <em>lms</em>, </td>
306         </tr>
307         <tr>
308           <td class="paramkey"></td>
309           <td></td>
310           <td class="paramtype">sqlite3 *&nbsp;</td>
311           <td class="paramname"> <em>db</em>, </td>
312         </tr>
313         <tr>
314           <td class="paramkey"></td>
315           <td></td>
316           <td class="paramtype">void **&nbsp;</td>
317           <td class="paramname"> <em>parser_match</em>, </td>
318         </tr>
319         <tr>
320           <td class="paramkey"></td>
321           <td></td>
322           <td class="paramtype">struct <a class="el" href="structlms__file__info.html">lms_file_info</a> *&nbsp;</td>
323           <td class="paramname"> <em>finfo</em></td><td>&nbsp;</td>
324         </tr>
325         <tr>
326           <td></td>
327           <td>)</td>
328           <td></td><td></td><td></td>
329         </tr>
330       </table>
331 </div>
332 <div class="memdoc">
333
334 <p>
335
336 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00387">387</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
337
338 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00078">lms::n_parsers</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00158">lms_plugin::parse</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00077">lms::parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00071">parser::plugin</a>.</p>
339
340 </div>
341 </div><p>
342 <a class="anchor" name="c321bebfc5c24cbbac30031202c460e9"></a><!-- doxytag: member="lightmediascanner_process.c::lms_parsers_setup" ref="c321bebfc5c24cbbac30031202c460e9" args="(lms_t *lms, sqlite3 *db)" -->
343 <div class="memitem">
344 <div class="memproto">
345       <table class="memname">
346         <tr>
347           <td class="memname">int lms_parsers_setup           </td>
348           <td>(</td>
349           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
350           <td class="paramname"> <em>lms</em>, </td>
351         </tr>
352         <tr>
353           <td class="paramkey"></td>
354           <td></td>
355           <td class="paramtype">sqlite3 *&nbsp;</td>
356           <td class="paramname"> <em>db</em></td><td>&nbsp;</td>
357         </tr>
358         <tr>
359           <td></td>
360           <td>)</td>
361           <td></td><td></td><td></td>
362         </tr>
363       </table>
364 </div>
365 <div class="memdoc">
366
367 <p>
368
369 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00293">293</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
370
371 <p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00162">lms_plugin::finish</a>, <a class="el" href="lightmediascanner_8c-source.html#l00278">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00078">lms::n_parsers</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00156">lms_plugin::name</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00077">lms::parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00071">parser::plugin</a>, and <a class="el" href="lightmediascanner__plugin_8h-source.html#l00160">lms_plugin::setup</a>.</p>
372
373 <p>
374 <div class="dynheader">
375 Here is the call graph for this function:</div>
376 <div class="dynsection">
377 <p><center><img src="lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph_map" alt=""></center>
378 <map name="lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph_map">
379 <area shape="rect" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="201,5,345,32"></map>
380 </div>
381
382 </div>
383 </div><p>
384 <a class="anchor" name="6e02f78f026b2ad282184476dca13e45"></a><!-- doxytag: member="lightmediascanner_process.c::lms_parsers_start" ref="6e02f78f026b2ad282184476dca13e45" args="(lms_t *lms, sqlite3 *db)" -->
385 <div class="memitem">
386 <div class="memproto">
387       <table class="memname">
388         <tr>
389           <td class="memname">int lms_parsers_start           </td>
390           <td>(</td>
391           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
392           <td class="paramname"> <em>lms</em>, </td>
393         </tr>
394         <tr>
395           <td class="paramkey"></td>
396           <td></td>
397           <td class="paramtype">sqlite3 *&nbsp;</td>
398           <td class="paramname"> <em>db</em></td><td>&nbsp;</td>
399         </tr>
400         <tr>
401           <td></td>
402           <td>)</td>
403           <td></td><td></td><td></td>
404         </tr>
405       </table>
406 </div>
407 <div class="memdoc">
408
409 <p>
410
411 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00319">319</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
412
413 <p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00162">lms_plugin::finish</a>, <a class="el" href="lightmediascanner_8c-source.html#l00278">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00078">lms::n_parsers</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00156">lms_plugin::name</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00077">lms::parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00071">parser::plugin</a>, and <a class="el" href="lightmediascanner__plugin_8h-source.html#l00161">lms_plugin::start</a>.</p>
414
415 <p>
416 <div class="dynheader">
417 Here is the call graph for this function:</div>
418 <div class="dynsection">
419 <p><center><img src="lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph_map" alt=""></center>
420 <map name="lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph_map">
421 <area shape="rect" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="196,5,340,32"></map>
422 </div>
423
424 </div>
425 </div><p>
426 <a class="anchor" name="c2f07fb73717514237862c98dbf023b2"></a><!-- doxytag: member="lightmediascanner_process.c::lms_process" ref="c2f07fb73717514237862c98dbf023b2" args="(lms_t *lms, const char *top_path)" -->
427 <div class="memitem">
428 <div class="memproto">
429       <table class="memname">
430         <tr>
431           <td class="memname">int lms_process           </td>
432           <td>(</td>
433           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
434           <td class="paramname"> <em>lms</em>, </td>
435         </tr>
436         <tr>
437           <td class="paramkey"></td>
438           <td></td>
439           <td class="paramtype">const char *&nbsp;</td>
440           <td class="paramname"> <em>top_path</em></td><td>&nbsp;</td>
441         </tr>
442         <tr>
443           <td></td>
444           <td>)</td>
445           <td></td><td></td><td></td>
446         </tr>
447       </table>
448 </div>
449 <div class="memdoc">
450
451 <p>
452 Process the given directory.<p>
453 This will add or update media found in the given directory or its children.<p>
454 <dl compact><dt><b>Parameters:</b></dt><dd>
455   <table border="0" cellspacing="2" cellpadding="0">
456     <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>
457     <tr><td valign="top"></td><td valign="top"><em>top_path</em>&nbsp;</td><td>top directory to scan.</td></tr>
458   </table>
459 </dl>
460 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
461
462 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l01002">1002</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
463
464 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00055">pinfo::common</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00050">cinfo::lms</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00596">lms_close_pipes()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00607">lms_create_pipes()</a>, <a class="el" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave()</a>, and <a class="el" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave()</a>.</p>
465
466 <p>
467 <div class="dynheader">
468 Here is the call graph for this function:</div>
469 <div class="dynsection">
470 <p><center><img src="lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph_map" alt=""></center>
471 <map name="lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph_map">
472 <area shape="rect" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed" title="lms_close_pipes" alt="" coords="164,5,292,32"><area shape="rect" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4" title="lms_create_pipes" alt="" coords="159,56,297,82"><area shape="rect" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6" title="lms_create_slave" alt="" coords="159,106,297,133"><area shape="rect" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5" title="lms_finish_slave" alt="" coords="164,157,292,184"></map>
473 </div>
474
475 </div>
476 </div><p>
477 <a class="anchor" name="5db83cefb7a50bbecea9de26a6ef1c2c"></a><!-- doxytag: member="lightmediascanner_process.c::lms_process_single_process" ref="5db83cefb7a50bbecea9de26a6ef1c2c" args="(lms_t *lms, const char *top_path)" -->
478 <div class="memitem">
479 <div class="memproto">
480       <table class="memname">
481         <tr>
482           <td class="memname">int lms_process_single_process           </td>
483           <td>(</td>
484           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
485           <td class="paramname"> <em>lms</em>, </td>
486         </tr>
487         <tr>
488           <td class="paramkey"></td>
489           <td></td>
490           <td class="paramtype">const char *&nbsp;</td>
491           <td class="paramname"> <em>top_path</em></td><td>&nbsp;</td>
492         </tr>
493         <tr>
494           <td></td>
495           <td>)</td>
496           <td></td><td></td><td></td>
497         </tr>
498       </table>
499 </div>
500 <div class="memdoc">
501
502 <p>
503 Process the given directory *without fork()-ing* into child process.<p>
504 This will add or update media found in the given directory or its children. Note that if a <a class="el" href="structparser.html">parser</a> hangs during the process, this call will also hang.<p>
505 <dl compact><dt><b>Parameters:</b></dt><dd>
506   <table border="0" cellspacing="2" cellpadding="0">
507     <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>
508     <tr><td valign="top"></td><td valign="top"><em>top_path</em>&nbsp;</td><td>top directory to scan.</td></tr>
509   </table>
510 </dl>
511 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
512
513 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l01044">1044</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
514
515 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00067">sinfo::commit_counter</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00064">sinfo::common</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00065">sinfo::db</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00050">cinfo::lms</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00532">lms_db_begin_transaction()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00559">lms_db_end_transaction()</a>, <a class="el" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish()</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00066">sinfo::parser_match</a>.</p>
516
517 <p>
518 <div class="dynheader">
519 Here is the call graph for this function:</div>
520 <div class="dynsection">
521 <p><center><img src="lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph_map" alt=""></center>
522 <map name="lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph_map">
523 <area shape="rect" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc" title="lms_db_begin_transaction" alt="" coords="261,6,456,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c" title="lms_db_end_transaction" alt="" coords="267,56,451,83"><area shape="rect" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f" title="lms_parsers_finish" alt="" coords="288,107,429,134"></map>
524 </div>
525
526 </div>
527 </div><p>
528 <a class="anchor" name="9bf510645947b478dab39f633bbd35f3"></a><!-- doxytag: member="lightmediascanner_process.c::lms_restart_slave" ref="9bf510645947b478dab39f633bbd35f3" args="(struct pinfo *pinfo, int(*work)(lms_t *lms, struct fds *fds))" -->
529 <div class="memitem">
530 <div class="memproto">
531       <table class="memname">
532         <tr>
533           <td class="memname">int lms_restart_slave           </td>
534           <td>(</td>
535           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
536           <td class="paramname"> <em>pinfo</em>, </td>
537         </tr>
538         <tr>
539           <td class="paramkey"></td>
540           <td></td>
541           <td class="paramtype">int(*)(<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, struct <a class="el" href="structfds.html">fds</a> *<a class="el" href="structfds.html">fds</a>)&nbsp;</td>
542           <td class="paramname"> <em>work</em></td><td>&nbsp;</td>
543         </tr>
544         <tr>
545           <td></td>
546           <td>)</td>
547           <td></td><td></td><td></td>
548         </tr>
549       </table>
550 </div>
551 <div class="memdoc">
552
553 <p>
554
555 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00694">694</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
556
557 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00056">pinfo::child</a>, <a class="el" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave()</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00059">pinfo::poll</a>.</p>
558
559 <p>
560 <div class="dynheader">
561 Here is the call graph for this function:</div>
562 <div class="dynsection">
563 <p><center><img src="lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph_map" alt=""></center>
564 <map name="lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph_map">
565 <area shape="rect" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6" title="lms_create_slave" alt="" coords="196,5,335,32"></map>
566 </div>
567
568 </div>
569 </div><p>
570 <a class="anchor" name="36d624baae0531c20e716c88a82e0aaf"></a><!-- doxytag: member="lightmediascanner_process.c::lms_stop_processing" ref="36d624baae0531c20e716c88a82e0aaf" args="(lms_t *lms)" -->
571 <div class="memitem">
572 <div class="memproto">
573       <table class="memname">
574         <tr>
575           <td class="memname">void lms_stop_processing           </td>
576           <td>(</td>
577           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
578           <td class="paramname"> <em>lms</em>          </td>
579           <td>&nbsp;)&nbsp;</td>
580           <td></td>
581         </tr>
582       </table>
583 </div>
584 <div class="memdoc">
585
586 <p>
587
588 <p>Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l01079">1079</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.</p>
589
590 <p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00088">lms::is_processing</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00089">lms::stop_processing</a>.</p>
591
592 </div>
593 </div><p>
594 </div>
595 <hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:57 2008 for Light Media Scanner by&nbsp;
596 <a href="http://www.doxygen.org/index.html">
597 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
598 </body>
599 </html>