Release and update docs.
authorbarbieri <barbieri@gmail.com>
Sun, 5 Oct 2008 16:03:00 +0000 (16:03 +0000)
committerbarbieri <barbieri@gmail.com>
Sun, 5 Oct 2008 16:03:00 +0000 (16:03 +0000)
411 files changed:
www/api/annotated.html
www/api/classes.html
www/api/doxygen.css
www/api/files.html
www/api/functions.html
www/api/functions_vars.html
www/api/globals.html
www/api/globals_0x61.html
www/api/globals_0x63.html
www/api/globals_0x64.html
www/api/globals_0x66.html
www/api/globals_0x67.html
www/api/globals_0x69.html
www/api/globals_0x6c.html
www/api/globals_0x6e.html
www/api/globals_0x70.html
www/api/globals_0x72.html
www/api/globals_0x73.html
www/api/globals_0x74.html
www/api/globals_0x77.html
www/api/globals_defs.html
www/api/globals_enum.html [new file with mode: 0644]
www/api/globals_eval.html [new file with mode: 0644]
www/api/globals_func.html
www/api/globals_type.html
www/api/globals_vars.html
www/api/graph_legend.dot
www/api/graph_legend.html
www/api/graph_legend.png
www/api/group__LMS__API.html
www/api/group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph.map
www/api/group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph.md5
www/api/group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph.png
www/api/group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph.map
www/api/group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph.md5
www/api/group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph.png
www/api/group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph.map
www/api/group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph.md5
www/api/group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph.png
www/api/group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph.map
www/api/group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph.md5
www/api/group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph.png
www/api/group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph.map
www/api/group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph.md5
www/api/group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph.png
www/api/group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph.map
www/api/group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph.md5
www/api/group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph.png
www/api/group__LMS__CHARSET.html
www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.map [new file with mode: 0644]
www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.md5 [new file with mode: 0644]
www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.png [new file with mode: 0644]
www/api/group__LMS__DB.html
www/api/group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph.map
www/api/group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph.md5
www/api/group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph.png
www/api/group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph.map
www/api/group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph.md5
www/api/group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph.png
www/api/group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph.map
www/api/group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph.md5
www/api/group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph.png
www/api/group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph.map
www/api/group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph.md5
www/api/group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph.png
www/api/group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph.map
www/api/group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph.md5
www/api/group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph.png
www/api/group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph.map
www/api/group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph.md5
www/api/group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph.png
www/api/group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph.map
www/api/group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph.md5
www/api/group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph.png
www/api/group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph.map
www/api/group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph.md5
www/api/group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph.png
www/api/group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph.map
www/api/group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph.md5
www/api/group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph.png
www/api/group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph.map
www/api/group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph.md5
www/api/group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph.png
www/api/group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph.map
www/api/group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph.md5
www/api/group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph.png
www/api/group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph.map
www/api/group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph.md5
www/api/group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph.png
www/api/group__LMS__Plugin.html
www/api/index.html
www/api/lightmediascanner_8c-source.html
www/api/lightmediascanner_8c.html
www/api/lightmediascanner_8c__incl.map
www/api/lightmediascanner_8c__incl.md5
www/api/lightmediascanner_8c__incl.png
www/api/lightmediascanner_8h-source.html
www/api/lightmediascanner_8h.html
www/api/lightmediascanner_8h__dep__incl.map
www/api/lightmediascanner_8h__dep__incl.md5
www/api/lightmediascanner_8h__dep__incl.png
www/api/lightmediascanner__charset__conv_8c-source.html
www/api/lightmediascanner__charset__conv_8c.html
www/api/lightmediascanner__charset__conv_8c__incl.map
www/api/lightmediascanner__charset__conv_8c__incl.md5
www/api/lightmediascanner__charset__conv_8c__incl.png
www/api/lightmediascanner__charset__conv_8h-source.html
www/api/lightmediascanner__charset__conv_8h.html
www/api/lightmediascanner__charset__conv_8h__dep__incl.map
www/api/lightmediascanner__charset__conv_8h__dep__incl.md5
www/api/lightmediascanner__charset__conv_8h__dep__incl.png
www/api/lightmediascanner__check_8c-source.html
www/api/lightmediascanner__check_8c.html
www/api/lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph.map
www/api/lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph.md5
www/api/lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph.png
www/api/lightmediascanner__check_8c__incl.map
www/api/lightmediascanner__check_8c__incl.md5
www/api/lightmediascanner__check_8c__incl.png
www/api/lightmediascanner__db_8h-source.html
www/api/lightmediascanner__db_8h.html
www/api/lightmediascanner__db_8h__dep__incl.map
www/api/lightmediascanner__db_8h__dep__incl.md5
www/api/lightmediascanner__db_8h__dep__incl.png
www/api/lightmediascanner__db_8h__incl.map
www/api/lightmediascanner__db_8h__incl.md5
www/api/lightmediascanner__db_8h__incl.png
www/api/lightmediascanner__db__audio_8c-source.html
www/api/lightmediascanner__db__audio_8c.html
www/api/lightmediascanner__db__audio_8c__incl.map
www/api/lightmediascanner__db__audio_8c__incl.md5
www/api/lightmediascanner__db__audio_8c__incl.png
www/api/lightmediascanner__db__common_8c-source.html
www/api/lightmediascanner__db__common_8c.html
www/api/lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph.map
www/api/lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph.md5
www/api/lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph.png
www/api/lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph.map
www/api/lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph.md5
www/api/lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph.png
www/api/lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph.map
www/api/lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph.md5
www/api/lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph.png
www/api/lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph.map
www/api/lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph.md5
www/api/lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph.png
www/api/lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph.map
www/api/lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph.md5
www/api/lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph.png
www/api/lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph.map
www/api/lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph.md5
www/api/lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph.png
www/api/lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph.map
www/api/lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph.md5
www/api/lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph.png
www/api/lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph.map
www/api/lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph.md5
www/api/lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph.png
www/api/lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph.map
www/api/lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph.md5
www/api/lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph.png
www/api/lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph.map
www/api/lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph.md5
www/api/lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph.png
www/api/lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph.map
www/api/lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph.md5
www/api/lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph.png
www/api/lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph.map
www/api/lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph.md5
www/api/lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph.png
www/api/lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph.map
www/api/lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph.md5
www/api/lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph.png
www/api/lightmediascanner__db__common_8c__incl.map
www/api/lightmediascanner__db__common_8c__incl.md5
www/api/lightmediascanner__db__common_8c__incl.png
www/api/lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph.map
www/api/lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph.md5
www/api/lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph.png
www/api/lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph.map
www/api/lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph.md5
www/api/lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph.png
www/api/lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph.map
www/api/lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph.md5
www/api/lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph.png
www/api/lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph.map
www/api/lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph.md5
www/api/lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph.png
www/api/lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph.map
www/api/lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph.md5
www/api/lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph.png
www/api/lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph.map
www/api/lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph.md5
www/api/lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph.png
www/api/lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph.map
www/api/lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph.md5
www/api/lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph.png
www/api/lightmediascanner__db__image_8c-source.html
www/api/lightmediascanner__db__image_8c.html
www/api/lightmediascanner__db__image_8c__incl.map
www/api/lightmediascanner__db__image_8c__incl.md5
www/api/lightmediascanner__db__image_8c__incl.png
www/api/lightmediascanner__db__playlist_8c-source.html
www/api/lightmediascanner__db__playlist_8c.html
www/api/lightmediascanner__db__playlist_8c__incl.map
www/api/lightmediascanner__db__playlist_8c__incl.md5
www/api/lightmediascanner__db__playlist_8c__incl.png
www/api/lightmediascanner__db__private_8h-source.html
www/api/lightmediascanner__db__private_8h.html
www/api/lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph.map
www/api/lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph.md5
www/api/lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph.png
www/api/lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph.map
www/api/lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph.md5
www/api/lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph.png
www/api/lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph.map
www/api/lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph.md5
www/api/lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph.png
www/api/lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph.map
www/api/lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph.md5
www/api/lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph.png
www/api/lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph.map
www/api/lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph.md5
www/api/lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph.png
www/api/lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph.map
www/api/lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph.md5
www/api/lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph.png
www/api/lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph.map
www/api/lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph.md5
www/api/lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph.png
www/api/lightmediascanner__db__private_8h__dep__incl.map
www/api/lightmediascanner__db__private_8h__dep__incl.md5
www/api/lightmediascanner__db__private_8h__dep__incl.png
www/api/lightmediascanner__db__private_8h__incl.map
www/api/lightmediascanner__db__private_8h__incl.md5
www/api/lightmediascanner__db__private_8h__incl.png
www/api/lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph.map
www/api/lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph.md5
www/api/lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph.png
www/api/lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph.map
www/api/lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph.md5
www/api/lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph.png
www/api/lightmediascanner__db__video_8c-source.html
www/api/lightmediascanner__db__video_8c.html
www/api/lightmediascanner__db__video_8c__incl.map
www/api/lightmediascanner__db__video_8c__incl.md5
www/api/lightmediascanner__db__video_8c__incl.png
www/api/lightmediascanner__plugin_8h-source.html
www/api/lightmediascanner__plugin_8h.html
www/api/lightmediascanner__plugin_8h__dep__incl.map
www/api/lightmediascanner__plugin_8h__dep__incl.md5
www/api/lightmediascanner__plugin_8h__dep__incl.png
www/api/lightmediascanner__plugin_8h__incl.map
www/api/lightmediascanner__plugin_8h__incl.md5
www/api/lightmediascanner__plugin_8h__incl.png
www/api/lightmediascanner__private_8h-source.html
www/api/lightmediascanner__private_8h.html
www/api/lightmediascanner__private_8h__dep__incl.map
www/api/lightmediascanner__private_8h__dep__incl.md5
www/api/lightmediascanner__private_8h__dep__incl.png
www/api/lightmediascanner__private_8h__incl.map
www/api/lightmediascanner__private_8h__incl.md5
www/api/lightmediascanner__private_8h__incl.png
www/api/lightmediascanner__process_8c-source.html
www/api/lightmediascanner__process_8c.html
www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.map [new file with mode: 0644]
www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.md5 [new file with mode: 0644]
www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.png [new file with mode: 0644]
www/api/lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph.map
www/api/lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph.md5
www/api/lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph.png
www/api/lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph.map
www/api/lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph.md5
www/api/lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph.png
www/api/lightmediascanner__process_8c__incl.map
www/api/lightmediascanner__process_8c__incl.md5
www/api/lightmediascanner__process_8c__incl.png
www/api/lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph.map
www/api/lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph.md5
www/api/lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph.png
www/api/lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph.map
www/api/lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph.md5
www/api/lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph.png
www/api/lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph.map
www/api/lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph.md5
www/api/lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph.png
www/api/lightmediascanner__utils_8c-source.html
www/api/lightmediascanner__utils_8c.html
www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.map [new file with mode: 0644]
www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.md5 [new file with mode: 0644]
www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.png [new file with mode: 0644]
www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.map [new file with mode: 0644]
www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.md5 [new file with mode: 0644]
www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.png [new file with mode: 0644]
www/api/lightmediascanner__utils_8c__incl.map
www/api/lightmediascanner__utils_8c__incl.md5
www/api/lightmediascanner__utils_8c__incl.png
www/api/lightmediascanner__utils_8h-source.html
www/api/lightmediascanner__utils_8h.html
www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.map [new file with mode: 0644]
www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.md5 [new file with mode: 0644]
www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.png [new file with mode: 0644]
www/api/lightmediascanner__utils_8h__dep__incl.map
www/api/lightmediascanner__utils_8h__dep__incl.md5
www/api/lightmediascanner__utils_8h__dep__incl.png
www/api/modules.html
www/api/structcinfo.html [new file with mode: 0644]
www/api/structcinfo__coll__graph.map [new file with mode: 0644]
www/api/structcinfo__coll__graph.md5 [new file with mode: 0644]
www/api/structcinfo__coll__graph.png [new file with mode: 0644]
www/api/structfds.html
www/api/structlms.html
www/api/structlms__audio__info.html
www/api/structlms__audio__info__coll__graph.map
www/api/structlms__audio__info__coll__graph.md5
www/api/structlms__audio__info__coll__graph.png
www/api/structlms__coll__graph.map
www/api/structlms__coll__graph.md5
www/api/structlms__coll__graph.png
www/api/structlms__context.html
www/api/structlms__context__coll__graph.map [new file with mode: 0644]
www/api/structlms__context__coll__graph.md5 [new file with mode: 0644]
www/api/structlms__context__coll__graph.png [new file with mode: 0644]
www/api/structlms__db__cache.html
www/api/structlms__db__cache__coll__graph.map
www/api/structlms__db__cache__coll__graph.md5
www/api/structlms__db__cache__coll__graph.png
www/api/structlms__db__cache__entry.html
www/api/structlms__file__info.html
www/api/structlms__gps__info.html
www/api/structlms__image__info.html
www/api/structlms__image__info__coll__graph.map
www/api/structlms__image__info__coll__graph.md5
www/api/structlms__image__info__coll__graph.png
www/api/structlms__playlist__info.html
www/api/structlms__playlist__info__coll__graph.map
www/api/structlms__playlist__info__coll__graph.md5
www/api/structlms__playlist__info__coll__graph.png
www/api/structlms__plugin.html
www/api/structlms__string__size.html
www/api/structlms__video__info.html
www/api/structlms__video__info__coll__graph.map
www/api/structlms__video__info__coll__graph.md5
www/api/structlms__video__info__coll__graph.png
www/api/structparser.html
www/api/structparser__coll__graph.map
www/api/structparser__coll__graph.md5
www/api/structparser__coll__graph.png
www/api/structpinfo.html
www/api/structpinfo__coll__graph.map
www/api/structpinfo__coll__graph.md5
www/api/structpinfo__coll__graph.png
www/api/structsinfo.html [new file with mode: 0644]
www/api/structsinfo__coll__graph.map [new file with mode: 0644]
www/api/structsinfo__coll__graph.md5 [new file with mode: 0644]
www/api/structsinfo__coll__graph.png [new file with mode: 0644]
www/api/tabs.css
www/index.html
www/python-api/api-objects.txt [new file with mode: 0644]
www/python-api/class-tree.html [new file with mode: 0644]
www/python-api/crarr.png [new file with mode: 0644]
www/python-api/epydoc.css
www/python-api/epydoc.js [new file with mode: 0644]
www/python-api/frames.html [new file with mode: 0644]
www/python-api/help.html [new file with mode: 0644]
www/python-api/identifier-index.html [new file with mode: 0644]
www/python-api/index.html
www/python-api/lightmediascanner-module.html [new file with mode: 0644]
www/python-api/lightmediascanner-pysrc.html [new file with mode: 0644]
www/python-api/lightmediascanner.c_lightmediascanner-module.html [new file with mode: 0644]
www/python-api/lightmediascanner.c_lightmediascanner-pysrc.html [new file with mode: 0644]
www/python-api/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html [new file with mode: 0644]
www/python-api/lightmediascanner.c_lightmediascanner.Parser-class.html [new file with mode: 0644]
www/python-api/module-tree.html [new file with mode: 0644]
www/python-api/private/__builtin__.object-class.html [deleted file]
www/python-api/private/__builtin__.type-class.html [deleted file]
www/python-api/private/epydoc.css [deleted file]
www/python-api/private/frames.html [deleted file]
www/python-api/private/help.html [deleted file]
www/python-api/private/index.html [deleted file]
www/python-api/private/indices.html [deleted file]
www/python-api/private/lightmediascanner-module.html [deleted file]
www/python-api/private/lightmediascanner.c_lightmediascanner-module.html [deleted file]
www/python-api/private/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html [deleted file]
www/python-api/private/lightmediascanner.c_lightmediascanner.Parser-class.html [deleted file]
www/python-api/private/toc-everything.html [deleted file]
www/python-api/private/toc-lightmediascanner-module.html [deleted file]
www/python-api/private/toc-lightmediascanner.c_lightmediascanner-module.html [deleted file]
www/python-api/private/toc.html [deleted file]
www/python-api/private/trees.html [deleted file]
www/python-api/public/__builtin__.object-class.html [deleted file]
www/python-api/public/__builtin__.type-class.html [deleted file]
www/python-api/public/epydoc.css [deleted file]
www/python-api/public/frames.html [deleted file]
www/python-api/public/help.html [deleted file]
www/python-api/public/index.html [deleted file]
www/python-api/public/indices.html [deleted file]
www/python-api/public/lightmediascanner-module.html [deleted file]
www/python-api/public/lightmediascanner.c_lightmediascanner-module.html [deleted file]
www/python-api/public/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html [deleted file]
www/python-api/public/lightmediascanner.c_lightmediascanner.Parser-class.html [deleted file]
www/python-api/public/toc-everything.html [deleted file]
www/python-api/public/toc-lightmediascanner-module.html [deleted file]
www/python-api/public/toc-lightmediascanner.c_lightmediascanner-module.html [deleted file]
www/python-api/public/toc.html [deleted file]
www/python-api/public/trees.html [deleted file]
www/python-api/redirect.html [new file with mode: 0644]
www/python-api/toc-everything.html [new file with mode: 0644]
www/python-api/toc-lightmediascanner-module.html [new file with mode: 0644]
www/python-api/toc-lightmediascanner.c_lightmediascanner-module.html [new file with mode: 0644]
www/python-api/toc.html [new file with mode: 0644]

index 4647f6a..499e477 100644 (file)
@@ -4,23 +4,27 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
-</div>
-<h1>Light Media Scanner Data Structures</h1>Here are the data structures with brief descriptions:<table>
+<div class="contents">
+<h1>Data Structures</h1>Here are the data structures with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="structcinfo.html">cinfo</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structfds.html">fds</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structlms.html">lms</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structlms__audio__info.html">lms_audio_info</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structlms__video__info.html">lms_video_info</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structparser.html">parser</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structpinfo.html">pinfo</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="structsinfo.html">sinfo</a></td><td class="indexvalue"></td></tr>
 </table>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 2ae9588..1d76891 100644 (file)
@@ -4,37 +4,41 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
-</div>
-<h1>Light Media Scanner Data Structure Index</h1><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_L">L</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_P">P</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_V">V</a></div><p>
+<div class="contents">
+<h1>Data Structure Index</h1><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_L">L</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_P">P</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_V">V</a></div><p>
 <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
 <tr><td><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;A&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structlms__file__info.html">lms_file_info</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structparser.html">parser</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structlms__audio__info.html">lms_audio_info</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;G&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structpinfo.html">pinfo</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structlms__gps__info.html">lms_gps_info</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structlms__playlist__info.html">lms_playlist_info</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structlms__context.html">lms_context</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structlms__plugin.html">lms_plugin</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structlms__image__info.html">lms_image_info</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="structlms__db__cache.html">lms_db_cache</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;L&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structfds.html">fds</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structparser.html">parser</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structlms__audio__info.html">lms_audio_info</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structlms__file__info.html">lms_file_info</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structpinfo.html">pinfo</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;G&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structlms__playlist__info.html">lms_playlist_info</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structcinfo.html">cinfo</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structlms__gps__info.html">lms_gps_info</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structlms__plugin.html">lms_plugin</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structlms__context.html">lms_context</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structlms__image__info.html">lms_image_info</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structsinfo.html">sinfo</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structlms__db__cache.html">lms_db_cache</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;L&nbsp;&nbsp;</div></td></tr></table>
 </td><td><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structlms__db__cache__entry.html">lms_db_cache_entry</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structlms.html">lms</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_V"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;V&nbsp;&nbsp;</div></td></tr></table>
 </td></tr><tr><td><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</div></td></tr></table>
 </td><td><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;P&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structlms__video__info.html">lms_video_info</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structfds.html">fds</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_L">L</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_P">P</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_V">V</a></div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</td><td><a class="el" href="structlms__video__info.html">lms_video_info</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_L">L</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_P">P</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_V">V</a></div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index c7db1a8..22c4843 100644 (file)
@@ -2,19 +2,21 @@ BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
        font-family: Geneva, Arial, Helvetica, sans-serif;
 }
 BODY,TD {
-       font-size: 90%;
+       font-size: 90%;
 }
 H1 {
        text-align: center;
-       font-size: 160%;
+       font-size: 160%;
 }
 H2 {
-       font-size: 120%;
+       font-size: 120%;
 }
 H3 {
-       font-size: 100%;
+       font-size: 100%;
+}
+CAPTION { 
+       font-weight: bold 
 }
-CAPTION { font-weight: bold }
 DIV.qindex {
        width: 100%;
        background-color: #e8eef2;
@@ -24,7 +26,7 @@ DIV.qindex {
        padding: 2px;
        line-height: 140%;
 }
-DIV.nav {
+DIV.navpath {
        width: 100%;
        background-color: #e8eef2;
        border: 1px solid #84b0c7;
@@ -70,15 +72,43 @@ A.qindexHL:hover {
        background-color: #6666cc;
        color: #ffffff;
 }
-A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { font-weight: bold }
-A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
-A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
-A.codeRef:link { font-weight: normal; color: #0000FF}
-A.codeRef:visited { font-weight: normal; color: #0000FF}
-A:hover { text-decoration: none; background-color: #f2f2ff }
-DL.el { margin-left: -1cm }
+A.qindexHL:visited { 
+       text-decoration: none; 
+       background-color: #6666cc; 
+       color: #ffffff 
+}
+A.el { 
+       text-decoration: none; 
+       font-weight: bold 
+}
+A.elRef { 
+       font-weight: bold 
+}
+A.code:link { 
+       text-decoration: none; 
+       font-weight: normal; 
+       color: #0000FF
+}
+A.code:visited { 
+       text-decoration: none; 
+       font-weight: normal; 
+       color: #0000FF
+}
+A.codeRef:link { 
+       font-weight: normal; 
+       color: #0000FF
+}
+A.codeRef:visited { 
+       font-weight: normal; 
+       color: #0000FF
+}
+A:hover { 
+       text-decoration: none;  
+       background-color: #f2f2ff 
+}
+DL.el { 
+       margin-left: -1cm 
+}
 .fragment {
        font-family: monospace, fixed;
        font-size: 95%;
@@ -95,7 +125,13 @@ PRE.fragment {
        padding-top: 4px;
        padding-bottom: 4px;
 }
-DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+DIV.ah { 
+       background-color: black; 
+       font-weight: bold; 
+       color: #ffffff; 
+       margin-bottom: 3px; 
+       margin-top: 3px 
+}
 
 DIV.groupHeader {
        margin-left: 16px;
@@ -103,7 +139,11 @@ DIV.groupHeader {
        margin-bottom: 6px;
        font-weight: bold;
 }
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
+DIV.groupText { 
+       margin-left: 16px; 
+       font-style: italic; 
+       font-size: 90% 
+}
 BODY {
        background: white;
        color: black;
@@ -137,11 +177,16 @@ TD.indexvalue {
        border: 1px solid #CCCCCC;
 }
 TR.memlist {
-   background-color: #f0f0f0; 
+       background-color: #f0f0f0; 
+}
+P.formulaDsp { 
+       text-align: center; 
+}
+IMG.formulaDsp {
+}
+IMG.formulaInl { 
+       vertical-align: middle; 
 }
-P.formulaDsp { text-align: center; }
-IMG.formulaDsp { }
-IMG.formulaInl { vertical-align: middle; }
 SPAN.keyword       { color: #008000 }
 SPAN.keywordtype   { color: #604020 }
 SPAN.keywordflow   { color: #e08000 }
@@ -149,8 +194,13 @@ SPAN.comment       { color: #800000 }
 SPAN.preprocessor  { color: #806020 }
 SPAN.stringliteral { color: #002080 }
 SPAN.charliteral   { color: #008080 }
+SPAN.vhdldigit     { color: #ff00ff }
+SPAN.vhdlchar      { color: #000000 }
+SPAN.vhdlkeyword   { color: #700070 }
+SPAN.vhdllogic     { color: #ff0000 }
+
 .mdescLeft {
-       padding: 0px 8px 4px 8px;
+       padding: 0px 8px 4px 8px;
        font-size: 80%;
        font-style: italic;
        background-color: #FAFAFA;
@@ -161,7 +211,7 @@ SPAN.charliteral   { color: #008080 }
        margin: 0px;
 }
 .mdescRight {
-       padding: 0px 8px 4px 8px;
+        padding: 0px 8px 4px 8px;
        font-size: 80%;
        font-style: italic;
        background-color: #FAFAFA;
@@ -258,23 +308,26 @@ SPAN.charliteral   { color: #008080 }
        border-right-style: none;
        border-bottom-style: none;
        border-left-style: none;
-       color: #606060;
+       color: #606060;
        background-color: #FAFAFA;
        font-size: 80%;
 }
-.search     { color: #003399;
-              font-weight: bold;
+.search { 
+       color: #003399;
+       font-weight: bold;
 }
 FORM.search {
-              margin-bottom: 0px;
-              margin-top: 0px;
+       margin-bottom: 0px;
+       margin-top: 0px;
 }
-INPUT.search { font-size: 75%;
-               color: #000080;
-               font-weight: normal;
-               background-color: #e8eef2;
+INPUT.search { 
+       font-size: 75%;
+       color: #000080;
+       font-weight: normal;
+       background-color: #e8eef2;
 }
-TD.tiny      { font-size: 75%;
+TD.tiny { 
+       font-size: 75%;
 }
 a {
        color: #1A41A8;
@@ -282,66 +335,70 @@ a {
 a:visited {
        color: #2A3798;
 }
-.dirtab { padding: 4px;
-          border-collapse: collapse;
-          border: 1px solid #84b0c7;
+.dirtab { 
+       padding: 4px;
+       border-collapse: collapse;
+       border: 1px solid #84b0c7;
 }
-TH.dirtab { background: #e8eef2;
-            font-weight: bold;
+TH.dirtab { 
+       background: #e8eef2;
+       font-weight: bold;
 }
-HR { height: 1px;
-     border: none;
-     border-top: 1px solid black;
+HR { 
+       height: 1px;
+       border: none;
+       border-top: 1px solid black;
 }
 
 /* Style for detailed member documentation */
 .memtemplate {
-  font-size: 80%;
-  color: #606060;
-  font-weight: normal;
+       font-size: 80%;
+       color: #606060;
+       font-weight: normal;
+       margin-left: 3px;
 } 
 .memnav { 
-  background-color: #e8eef2;
-  border: 1px solid #84b0c7;
-  text-align: center;
-  margin: 2px;
-  margin-right: 15px;
-  padding: 2px;
+       background-color: #e8eef2;
+       border: 1px solid #84b0c7;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
 }
 .memitem {
-  padding: 4px;
-  background-color: #eef3f5;
-  border-width: 1px;
-  border-style: solid;
-  border-color: #dedeee;
-  -moz-border-radius: 8px 8px 8px 8px;
+       padding: 4px;
+       background-color: #eef3f5;
+       border-width: 1px;
+       border-style: solid;
+       border-color: #dedeee;
+       -moz-border-radius: 8px 8px 8px 8px;
 }
 .memname {
-  white-space: nowrap;
-  font-weight: bold;
+       white-space: nowrap;
+       font-weight: bold;
 }
 .memdoc{
-  padding-left: 10px;
+       padding-left: 10px;
 }
 .memproto {
-  background-color: #d5e1e8;
-  width: 100%;
-  border-width: 1px;
-  border-style: solid;
-  border-color: #84b0c7;
-  font-weight: bold;
-  -moz-border-radius: 8px 8px 8px 8px;
+       background-color: #d5e1e8;
+       width: 100%;
+       border-width: 1px;
+       border-style: solid;
+       border-color: #84b0c7;
+       font-weight: bold;
+       -moz-border-radius: 8px 8px 8px 8px;
 }
 .paramkey {
-  text-align: right;
+       text-align: right;
 }
 .paramtype {
-  white-space: nowrap;
+       white-space: nowrap;
 }
 .paramname {
-  color: #602020;
-  font-style: italic;
-  white-space: nowrap;
+       color: #602020;
+       font-style: italic;
+       white-space: nowrap;
 }
 /* End Styling for detailed member documentation */
 
@@ -350,9 +407,67 @@ HR { height: 1px;
        font-family: sans-serif;
        margin:0.5em;
 }
-.directory { font-size: 9pt; font-weight: bold; }
-.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
-.directory > h3 { margin-top: 0; }
-.directory p { margin: 0px; white-space: nowrap; }
-.directory div { display: none; margin: 0px; }
-.directory img { vertical-align: -30%; }
+/* these are for tree view when used as main index */
+.directory { 
+       font-size: 9pt; 
+       font-weight: bold; 
+}
+.directory h3 { 
+       margin: 0px; 
+       margin-top: 1em; 
+       font-size: 11pt; 
+}
+
+/* The following two styles can be used to replace the root node title */
+/* with an image of your choice.  Simply uncomment the next two styles, */
+/* specify the name of your image and be sure to set 'height' to the */
+/* proper pixel height of your image. */
+
+/* .directory h3.swap { */
+/*     height: 61px; */
+/*     background-repeat: no-repeat; */
+/*     background-image: url("yourimage.gif"); */
+/* } */
+/* .directory h3.swap span { */
+/*     display: none; */
+/* } */
+
+.directory > h3 { 
+       margin-top: 0; 
+}
+.directory p { 
+       margin: 0px; 
+       white-space: nowrap; 
+}
+.directory div { 
+       display: none; 
+       margin: 0px; 
+}
+.directory img { 
+       vertical-align: -30%; 
+}
+/* these are for tree view when not used as main index */
+.directory-alt { 
+       font-size: 100%; 
+       font-weight: bold; 
+}
+.directory-alt h3 { 
+       margin: 0px; 
+       margin-top: 1em; 
+       font-size: 11pt; 
+}
+.directory-alt > h3 { 
+       margin-top: 0; 
+}
+.directory-alt p { 
+       margin: 0px; 
+       white-space: nowrap; 
+}
+.directory-alt div { 
+       display: none; 
+       margin: 0px; 
+}
+.directory-alt img { 
+       vertical-align: -30%; 
+}
+
index 0767357..3d5f7b0 100644 (file)
@@ -4,22 +4,25 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<h1>Light Media Scanner File List</h1>Here is a list of all files with brief descriptions:<table>
+<div class="contents">
+<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
   <tr><td class="indexkey">src/lib/<a class="el" href="lightmediascanner_8c.html">lightmediascanner.c</a> <a href="lightmediascanner_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey">src/lib/<a class="el" href="lightmediascanner_8h.html">lightmediascanner.h</a> <a href="lightmediascanner_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey">src/lib/<a class="el" href="lightmediascanner__charset__conv_8c.html">lightmediascanner_charset_conv.c</a> <a href="lightmediascanner__charset__conv_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -38,8 +41,9 @@
   <tr><td class="indexkey">src/lib/<a class="el" href="lightmediascanner__utils_8c.html">lightmediascanner_utils.c</a> <a href="lightmediascanner__utils_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey">src/lib/<a class="el" href="lightmediascanner__utils_8h.html">lightmediascanner_utils.h</a> <a href="lightmediascanner__utils_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
 </table>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index d269bed..b0d8a9b 100644 (file)
@@ -4,52 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_b"><span>b</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_e"><span>e</span></a></li>
+      <li><a href="#index_f"><span>f</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_m"><span>m</span></a></li>
+      <li><a href="#index_n"><span>n</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="functions.html"><span>All</span></a></li>
-    <li><a href="functions_vars.html"><span>Variables</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="#index_a"><span>a</span></a></li>
-    <li><a href="#index_b"><span>b</span></a></li>
-    <li><a href="#index_c"><span>c</span></a></li>
-    <li><a href="#index_d"><span>d</span></a></li>
-    <li><a href="#index_e"><span>e</span></a></li>
-    <li><a href="#index_f"><span>f</span></a></li>
-    <li><a href="#index_g"><span>g</span></a></li>
-    <li><a href="#index_h"><span>h</span></a></li>
-    <li><a href="#index_i"><span>i</span></a></li>
-    <li><a href="#index_l"><span>l</span></a></li>
-    <li><a href="#index_m"><span>m</span></a></li>
-    <li><a href="#index_n"><span>n</span></a></li>
-    <li><a href="#index_o"><span>o</span></a></li>
-    <li><a href="#index_p"><span>p</span></a></li>
-    <li><a href="#index_r"><span>r</span></a></li>
-    <li><a href="#index_s"><span>s</span></a></li>
-    <li><a href="#index_t"><span>t</span></a></li>
-    <li><a href="#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all struct and union fields with links to the structures/unions they belong to:
 <p>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
@@ -58,8 +59,8 @@ Here is a list of all struct and union fields with links to the structures/union
 <li>altitude
 : <a class="el" href="structlms__gps__info.html#9b56b5dbae3e5c5722f7331c2bcbd520">lms_gps_info</a>
 <li>artist
-: <a class="el" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">lms_image_info</a>
-, <a class="el" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">lms_audio_info</a>
+: <a class="el" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">lms_audio_info</a>
+, <a class="el" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">lms_image_info</a>
 , <a class="el" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">lms_video_info</a>
 </ul>
 <h3><a class="anchor" name="index_b">- b -</a></h3><ul>
@@ -67,24 +68,33 @@ Here is a list of all struct and union fields with links to the structures/union
 : <a class="el" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">lms_file_info</a>
 </ul>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>cb
+: <a class="el" href="structlms.html#94615d22fba40d580a8a0055d28221c4">lms</a>
 <li>child
 : <a class="el" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">pinfo</a>
 <li>close
 : <a class="el" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">lms_plugin</a>
+<li>commit_counter
+: <a class="el" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">sinfo</a>
 <li>commit_interval
 : <a class="el" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">lms</a>
+<li>common
+: <a class="el" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">sinfo</a>
+, <a class="el" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">pinfo</a>
 <li>cs_conv
-: <a class="el" href="structlms__context.html#a5ce50393bbe62f6357934a1d9ce5a61">lms_context</a>
-, <a class="el" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">lms</a>
+: <a class="el" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">lms</a>
+, <a class="el" href="structlms__context.html#a5ce50393bbe62f6357934a1d9ce5a61">lms_context</a>
 </ul>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
 <li>data
 : <a class="el" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">lms_db_cache_entry</a>
+, <a class="el" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">lms</a>
 <li>date
 : <a class="el" href="structlms__image__info.html#150973d3ac9f60f1b74f0a0d08c7f288">lms_image_info</a>
 <li>db
 : <a class="el" href="structlms__db__cache__entry.html#01aadf6d9a8161696019d39566b15760">lms_db_cache_entry</a>
 , <a class="el" href="structlms__context.html#310d38a2fab9ecea67601d0c6a3d8d81">lms_context</a>
+, <a class="el" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">sinfo</a>
 <li>db_path
 : <a class="el" href="structlms.html#02e767169813808f193c23733ba89b4b">lms</a>
 <li>dl_handle
@@ -99,6 +109,8 @@ Here is a list of all struct and union fields with links to the structures/union
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>finish
 : <a class="el" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">lms_plugin</a>
+<li>free_data
+: <a class="el" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">lms</a>
 </ul>
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
 <li>genre
@@ -126,7 +138,7 @@ Here is a list of all struct and union fields with links to the structures/union
 <li>len
 : <a class="el" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">lms_string_size</a>
 <li>lms
-: <a class="el" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">pinfo</a>
+: <a class="el" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">cinfo</a>
 <li>longitude
 : <a class="el" href="structlms__gps__info.html#109202a83eb79b9a10df135600260e1b">lms_gps_info</a>
 </ul>
@@ -153,6 +165,8 @@ Here is a list of all struct and union fields with links to the structures/union
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
 <li>parse
 : <a class="el" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">lms_plugin</a>
+<li>parser_match
+: <a class="el" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">sinfo</a>
 <li>parsers
 : <a class="el" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">lms</a>
 <li>path
@@ -165,6 +179,8 @@ Here is a list of all struct and union fields with links to the structures/union
 : <a class="el" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">parser</a>
 <li>poll
 : <a class="el" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">pinfo</a>
+<li>progress
+: <a class="el" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">lms</a>
 </ul>
 <h3><a class="anchor" name="index_r">- r -</a></h3><ul>
 <li>r
@@ -176,8 +192,8 @@ Here is a list of all struct and union fields with links to the structures/union
 <li>setup
 : <a class="el" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">lms_plugin</a>
 <li>size
-: <a class="el" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">lms_file_info</a>
-, <a class="el" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">lms_db_cache</a>
+: <a class="el" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">lms_db_cache</a>
+, <a class="el" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">lms_file_info</a>
 <li>slave
 : <a class="el" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">pinfo</a>
 <li>slave_timeout
@@ -186,15 +202,17 @@ Here is a list of all struct and union fields with links to the structures/union
 : <a class="el" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">parser</a>
 <li>start
 : <a class="el" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">lms_plugin</a>
+<li>stop_processing
+: <a class="el" href="structlms.html#d028e3681568215f6facd7d477c74461">lms</a>
 <li>str
 : <a class="el" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">lms_string_size</a>
 </ul>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>title
 : <a class="el" href="structlms__image__info.html#6242d231ae1972fb25bdaeed614d7a63">lms_image_info</a>
+, <a class="el" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">lms_audio_info</a>
 , <a class="el" href="structlms__playlist__info.html#515e63ba413a60d21ee73687151387f0">lms_playlist_info</a>
 , <a class="el" href="structlms__video__info.html#f3b8a8168ec317daef65da3b06f72bc0">lms_video_info</a>
-, <a class="el" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">lms_audio_info</a>
 <li>trackno
 : <a class="el" href="structlms__audio__info.html#d372f08ada955f75be8f218d90093242">lms_audio_info</a>
 </ul>
@@ -204,8 +222,9 @@ Here is a list of all struct and union fields with links to the structures/union
 <li>width
 : <a class="el" href="structlms__image__info.html#fbd2df9f6f5f290ac02ce4d803677249">lms_image_info</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 4b08d3e..3c66f02 100644 (file)
@@ -4,52 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_b"><span>b</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_e"><span>e</span></a></li>
+      <li><a href="#index_f"><span>f</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_m"><span>m</span></a></li>
+      <li><a href="#index_n"><span>n</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="functions.html"><span>All</span></a></li>
-    <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="#index_a"><span>a</span></a></li>
-    <li><a href="#index_b"><span>b</span></a></li>
-    <li><a href="#index_c"><span>c</span></a></li>
-    <li><a href="#index_d"><span>d</span></a></li>
-    <li><a href="#index_e"><span>e</span></a></li>
-    <li><a href="#index_f"><span>f</span></a></li>
-    <li><a href="#index_g"><span>g</span></a></li>
-    <li><a href="#index_h"><span>h</span></a></li>
-    <li><a href="#index_i"><span>i</span></a></li>
-    <li><a href="#index_l"><span>l</span></a></li>
-    <li><a href="#index_m"><span>m</span></a></li>
-    <li><a href="#index_n"><span>n</span></a></li>
-    <li><a href="#index_o"><span>o</span></a></li>
-    <li><a href="#index_p"><span>p</span></a></li>
-    <li><a href="#index_r"><span>r</span></a></li>
-    <li><a href="#index_s"><span>s</span></a></li>
-    <li><a href="#index_t"><span>t</span></a></li>
-    <li><a href="#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
@@ -58,8 +59,8 @@
 <li>altitude
 : <a class="el" href="structlms__gps__info.html#9b56b5dbae3e5c5722f7331c2bcbd520">lms_gps_info</a>
 <li>artist
-: <a class="el" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">lms_image_info</a>
-, <a class="el" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">lms_audio_info</a>
+: <a class="el" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">lms_audio_info</a>
+, <a class="el" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">lms_image_info</a>
 , <a class="el" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">lms_video_info</a>
 </ul>
 <h3><a class="anchor" name="index_b">- b -</a></h3><ul>
 : <a class="el" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">lms_file_info</a>
 </ul>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>cb
+: <a class="el" href="structlms.html#94615d22fba40d580a8a0055d28221c4">lms</a>
 <li>child
 : <a class="el" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">pinfo</a>
 <li>close
 : <a class="el" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">lms_plugin</a>
+<li>commit_counter
+: <a class="el" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">sinfo</a>
 <li>commit_interval
 : <a class="el" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">lms</a>
+<li>common
+: <a class="el" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">sinfo</a>
+, <a class="el" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">pinfo</a>
 <li>cs_conv
-: <a class="el" href="structlms__context.html#a5ce50393bbe62f6357934a1d9ce5a61">lms_context</a>
-, <a class="el" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">lms</a>
+: <a class="el" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">lms</a>
+, <a class="el" href="structlms__context.html#a5ce50393bbe62f6357934a1d9ce5a61">lms_context</a>
 </ul>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
 <li>data
 : <a class="el" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">lms_db_cache_entry</a>
+, <a class="el" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">lms</a>
 <li>date
 : <a class="el" href="structlms__image__info.html#150973d3ac9f60f1b74f0a0d08c7f288">lms_image_info</a>
 <li>db
 : <a class="el" href="structlms__db__cache__entry.html#01aadf6d9a8161696019d39566b15760">lms_db_cache_entry</a>
 , <a class="el" href="structlms__context.html#310d38a2fab9ecea67601d0c6a3d8d81">lms_context</a>
+, <a class="el" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">sinfo</a>
 <li>db_path
 : <a class="el" href="structlms.html#02e767169813808f193c23733ba89b4b">lms</a>
 <li>dl_handle
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>finish
 : <a class="el" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">lms_plugin</a>
+<li>free_data
+: <a class="el" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">lms</a>
 </ul>
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
 <li>genre
 <li>len
 : <a class="el" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">lms_string_size</a>
 <li>lms
-: <a class="el" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">pinfo</a>
+: <a class="el" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">cinfo</a>
 <li>longitude
 : <a class="el" href="structlms__gps__info.html#109202a83eb79b9a10df135600260e1b">lms_gps_info</a>
 </ul>
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
 <li>parse
 : <a class="el" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">lms_plugin</a>
+<li>parser_match
+: <a class="el" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">sinfo</a>
 <li>parsers
 : <a class="el" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">lms</a>
 <li>path
 : <a class="el" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">parser</a>
 <li>poll
 : <a class="el" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">pinfo</a>
+<li>progress
+: <a class="el" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">lms</a>
 </ul>
 <h3><a class="anchor" name="index_r">- r -</a></h3><ul>
 <li>r
 <li>setup
 : <a class="el" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">lms_plugin</a>
 <li>size
-: <a class="el" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">lms_file_info</a>
-, <a class="el" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">lms_db_cache</a>
+: <a class="el" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">lms_db_cache</a>
+, <a class="el" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">lms_file_info</a>
 <li>slave
 : <a class="el" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">pinfo</a>
 <li>slave_timeout
 : <a class="el" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">parser</a>
 <li>start
 : <a class="el" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">lms_plugin</a>
+<li>stop_processing
+: <a class="el" href="structlms.html#d028e3681568215f6facd7d477c74461">lms</a>
 <li>str
 : <a class="el" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">lms_string_size</a>
 </ul>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>title
 : <a class="el" href="structlms__image__info.html#6242d231ae1972fb25bdaeed614d7a63">lms_image_info</a>
+, <a class="el" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">lms_audio_info</a>
 , <a class="el" href="structlms__playlist__info.html#515e63ba413a60d21ee73687151387f0">lms_playlist_info</a>
 , <a class="el" href="structlms__video__info.html#f3b8a8168ec317daef65da3b06f72bc0">lms_video_info</a>
-, <a class="el" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">lms_audio_info</a>
 <li>trackno
 : <a class="el" href="structlms__audio__info.html#d372f08ada955f75be8f218d90093242">lms_audio_info</a>
 </ul>
 <li>width
 : <a class="el" href="structlms__image__info.html#fbd2df9f6f5f290ac02ce4d803677249">lms_image_info</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index b4d869d..a7c6f99 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index__">- _ -</a></h3><ul>
@@ -71,8 +74,9 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 <li>_LIGHTMEDIASCANNER_UTILS_H_
 : <a class="el" href="lightmediascanner__utils_8h.html#8ad3460b8bb014878af2cdfd42fcf5c6">lightmediascanner_utils.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index f137da6..e56b778 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li class="current"><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li class="current"><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
@@ -57,8 +60,9 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 , <a class="el" href="lightmediascanner__db_8h.html#d8ce4efaa307683d3d763b37b4711c53">lightmediascanner_db.h</a>
 , <a class="el" href="lightmediascanner__charset__conv_8h.html#d8ce4efaa307683d3d763b37b4711c53">lightmediascanner_charset_conv.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index b301685..4a5c587 100644 (file)
@@ -4,58 +4,63 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li class="current"><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li class="current"><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>check_row_callback_t
+: <a class="el" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">lightmediascanner_private.h</a>
 <li>COMM_FINFO_FLAG_OUTDATED
 : <a class="el" href="lightmediascanner__check_8c.html#f8084f435d209d810eb33deaa35fab5e">lightmediascanner_check.c</a>
 <li>lms_charset_add()
-: <a class="el" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">lightmediascanner.c</a>
-, <a class="el" href="lightmediascanner_8h.html#03afcd1e04665bdaebe73d9f6cc20553">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#03afcd1e04665bdaebe73d9f6cc20553">lightmediascanner.h</a>
+, <a class="el" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">lightmediascanner.c</a>
 <li>lms_charset_conv()
 : <a class="el" href="group__LMS__CHARSET.html#gd843f59abac208048f13437534d589fc">lightmediascanner_charset_conv.h</a>
 , <a class="el" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lightmediascanner_charset_conv.c</a>
@@ -63,28 +68,37 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lightmediascanner_charset_conv.c</a>
 , <a class="el" href="group__LMS__CHARSET.html#gfc1aad4c212b5fa1ce7280d2b7df3ef7">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_conv_check()
-: <a class="el" href="group__LMS__CHARSET.html#g3d6c281f7b3cf9fb0c299c0abe03f681">lightmediascanner_charset_conv.h</a>
+: <a class="el" href="group__LMS__CHARSET.html#gbc8903e67c3c7eefa902cbb2bd5e3338">lightmediascanner_charset_conv.h</a>
 , <a class="el" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lightmediascanner_charset_conv.c</a>
 <li>lms_charset_conv_del()
-: <a class="el" href="group__LMS__CHARSET.html#gc364c502a4a4a64ea9f092a61074a90a">lightmediascanner_charset_conv.h</a>
-, <a class="el" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lightmediascanner_charset_conv.c</a>
+: <a class="el" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lightmediascanner_charset_conv.c</a>
+, <a class="el" href="group__LMS__CHARSET.html#gc364c502a4a4a64ea9f092a61074a90a">lightmediascanner_charset_conv.h</a>
+<li>lms_charset_conv_force()
+: <a class="el" href="lightmediascanner__charset__conv_8c.html#8ea844f16120ba4000b7b142192e91e4">lightmediascanner_charset_conv.c</a>
+, <a class="el" href="group__LMS__CHARSET.html#g9a610040a6380c745277effc5c4c9112">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_conv_free()
 : <a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lightmediascanner_charset_conv.c</a>
 , <a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_conv_new()
-: <a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lightmediascanner_charset_conv.c</a>
-, <a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lightmediascanner_charset_conv.h</a>
+: <a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lightmediascanner_charset_conv.h</a>
+, <a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lightmediascanner_charset_conv.c</a>
+<li>lms_charset_conv_new_full()
+: <a class="el" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lightmediascanner_charset_conv.c</a>
+, <a class="el" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_conv_t
 : <a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_del()
 : <a class="el" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">lightmediascanner.c</a>
 , <a class="el" href="lightmediascanner_8h.html#35fc2de4828878b9dec07e8edda8a5e2">lightmediascanner.h</a>
 <li>lms_check()
-: <a class="el" href="lightmediascanner__check_8c.html#859492d896e816498edb471315efced1">lightmediascanner_check.c</a>
-, <a class="el" href="lightmediascanner_8h.html#890f1af4c54c88a63abdbeff5ecd49a3">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#5b70063cf19648de70bb145404aa3d0b">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__check_8c.html#859492d896e816498edb471315efced1">lightmediascanner_check.c</a>
+<li>lms_check_single_process()
+: <a class="el" href="lightmediascanner__check_8c.html#a56ce530328493e110054aa1eabf66c2">lightmediascanner_check.c</a>
+, <a class="el" href="lightmediascanner_8h.html#bfd6888e606654c585e41aa946637432">lightmediascanner.h</a>
 <li>lms_close_pipes()
-: <a class="el" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lightmediascanner_private.h</a>
-, <a class="el" href="lightmediascanner__process_8c.html#6b68b00b80a98a178c7d69b962267a11">lightmediascanner_process.c</a>
+: <a class="el" href="lightmediascanner__process_8c.html#6b68b00b80a98a178c7d69b962267a11">lightmediascanner_process.c</a>
+, <a class="el" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lightmediascanner_private.h</a>
 <li>lms_create_pipes()
 : <a class="el" href="lightmediascanner__process_8c.html#c2e1320b9770e0f522451b13f82efc2b">lightmediascanner_process.c</a>
 , <a class="el" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lightmediascanner_private.h</a>
@@ -92,8 +106,9 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__process_8c.html#e92fe8fe90d93d5ad9a42387a4b2fc6e">lightmediascanner_process.c</a>
 , <a class="el" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lightmediascanner_private.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 09ad8e1..4874698 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li class="current"><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li class="current"><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
@@ -56,17 +59,17 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 <li>DEFAULT_SLAVE_TIMEOUT
 : <a class="el" href="lightmediascanner_8c.html#c2843894cca63ec0089c381e69d1d81a">lightmediascanner.c</a>
 <li>lms_db_audio_add()
-: <a class="el" href="group__LMS__DB.html#g9b83f734ec4905778dec5494f39b7397">lightmediascanner_db.h</a>
-, <a class="el" href="lightmediascanner__db__audio_8c.html#334b8c49f8dbf76024ee6b1d69f56c8c">lightmediascanner_db_audio.c</a>
+: <a class="el" href="lightmediascanner__db__audio_8c.html#334b8c49f8dbf76024ee6b1d69f56c8c">lightmediascanner_db_audio.c</a>
+, <a class="el" href="group__LMS__DB.html#g9b83f734ec4905778dec5494f39b7397">lightmediascanner_db.h</a>
 <li>lms_db_audio_free()
 : <a class="el" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lightmediascanner_db_audio.c</a>
 , <a class="el" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lightmediascanner_db.h</a>
 <li>lms_db_audio_new()
-: <a class="el" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lightmediascanner_db_audio.c</a>
-, <a class="el" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lightmediascanner_db.h</a>
+: <a class="el" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lightmediascanner_db.h</a>
+, <a class="el" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lightmediascanner_db_audio.c</a>
 <li>lms_db_audio_start()
-: <a class="el" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lightmediascanner_db.h</a>
-, <a class="el" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lightmediascanner_db_audio.c</a>
+: <a class="el" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lightmediascanner_db_audio.c</a>
+, <a class="el" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lightmediascanner_db.h</a>
 <li>lms_db_audio_t
 : <a class="el" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lightmediascanner_db.h</a>
 <li>lms_db_begin_transaction()
@@ -91,74 +94,74 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#14d56e02624ad6130bc59ae9bb950ac3">lightmediascanner_db_private.h</a>
 <li>lms_db_cache_add()
-: <a class="el" href="lightmediascanner__db__private_8h.html#f2c9e9154fff8b335c4fd5693fe45aa6">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#f2c9e9154fff8b335c4fd5693fe45aa6">lightmediascanner_db_private.h</a>
 <li>lms_db_cache_del()
 : <a class="el" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#e3e18958c74ba988c2bfdf77a3793ceb">lightmediascanner_db_private.h</a>
 <li>lms_db_cache_get()
-: <a class="el" href="lightmediascanner__db__private_8h.html#ec1ff2c5b629374611336d56871a8c0b">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#ec1ff2c5b629374611336d56871a8c0b">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt()
-: <a class="el" href="lightmediascanner__db__private_8h.html#6301bd096100f8adf24d2caff3aa0b75">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#6301bd096100f8adf24d2caff3aa0b75">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_begin_transaction()
-: <a class="el" href="lightmediascanner__db__private_8h.html#073c254ca7b4d3f42e1be1854bcc42a3">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#073c254ca7b4d3f42e1be1854bcc42a3">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_delete_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#76941bdbbdb711fff821343e91c2cd97">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#76941bdbbdb711fff821343e91c2cd97">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_end_transaction()
-: <a class="el" href="lightmediascanner__db__private_8h.html#09feca4fbfde33d5647cdd5cc2de6500">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#bff1aa6077215f3d70d4d5b1a9b7a498">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#bff1aa6077215f3d70d4d5b1a9b7a498">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#09feca4fbfde33d5647cdd5cc2de6500">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_get_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#327d54a6dac083e356fd609298a0cbd5">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#b00a624bc01da9b796f7bc6e1d507cf8">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#b00a624bc01da9b796f7bc6e1d507cf8">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#327d54a6dac083e356fd609298a0cbd5">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_get_files()
-: <a class="el" href="lightmediascanner__db__private_8h.html#1cc8a80961a0febdd099a028f3da9c30">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#1cc8a80961a0febdd099a028f3da9c30">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_insert_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#bf21f88ddbe28a8290d0df32af0f079c">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#9a5886e755eb428ac811956144eee0dc">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#9a5886e755eb428ac811956144eee0dc">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#bf21f88ddbe28a8290d0df32af0f079c">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_set_file_dtime()
-: <a class="el" href="lightmediascanner__db__private_8h.html#08c34b5b1b6e927a696ff0ce66562f54">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#1b6950ca9e548670a4cb7fd0ec5220a8">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#1b6950ca9e548670a4cb7fd0ec5220a8">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#08c34b5b1b6e927a696ff0ce66562f54">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_update_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#69eb9d9058d9432f7658f9adffb79ed6">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#69eb9d9058d9432f7658f9adffb79ed6">lightmediascanner_db_private.h</a>
 <li>lms_db_create_core_tables_if_required()
 : <a class="el" href="lightmediascanner__db__common_8c.html#3798a46baaedc4d466879865456acc94">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#13ca09c885535a2968e707120e935268">lightmediascanner_db_private.h</a>
 <li>lms_db_create_trigger_if_not_exists()
-: <a class="el" href="lightmediascanner__db__private_8h.html#f47d604dd4e11f81be1ad045ee723789">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#f47d604dd4e11f81be1ad045ee723789">lightmediascanner_db_private.h</a>
 <li>lms_db_delete_file_info()
 : <a class="el" href="lightmediascanner__db__private_8h.html#ec17baec1e001f67334b0265d465fb50">lightmediascanner_db_private.h</a>
 , <a class="el" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lightmediascanner_db_common.c</a>
 <li>lms_db_end_transaction()
-: <a class="el" href="lightmediascanner__db__private_8h.html#8ee7bfba83958b80f717a6ccbad2a84c">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#8ee7bfba83958b80f717a6ccbad2a84c">lightmediascanner_db_private.h</a>
 <li>lms_db_finalize_stmt()
-: <a class="el" href="lightmediascanner__db__private_8h.html#2660f629fbdf3d4144a6143fee837a27">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#2660f629fbdf3d4144a6143fee837a27">lightmediascanner_db_private.h</a>
 <li>lms_db_get_file_info()
 : <a class="el" href="lightmediascanner__db__private_8h.html#e1df123e8d894a49f740ec6429af8159">lightmediascanner_db_private.h</a>
 , <a class="el" href="lightmediascanner__db__common_8c.html#c0b7cf0b2eb0f55fbf8a4103bc9569d1">lightmediascanner_db_common.c</a>
 <li>lms_db_get_files()
-: <a class="el" href="lightmediascanner__db__private_8h.html#617b14b976ba1cde9fe639800f2eae71">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#617b14b976ba1cde9fe639800f2eae71">lightmediascanner_db_private.h</a>
 <li>lms_db_image_add()
 : <a class="el" href="lightmediascanner__db__image_8c.html#f23fcc3d62a0f6592e14eaf1dc9b5833">lightmediascanner_db_image.c</a>
 , <a class="el" href="group__LMS__DB.html#gbf78dd3b90caa31e8901369211501200">lightmediascanner_db.h</a>
 <li>lms_db_image_free()
-: <a class="el" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lightmediascanner_db_image.c</a>
-, <a class="el" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lightmediascanner_db.h</a>
+: <a class="el" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lightmediascanner_db.h</a>
+, <a class="el" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lightmediascanner_db_image.c</a>
 <li>lms_db_image_new()
 : <a class="el" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lightmediascanner_db.h</a>
 , <a class="el" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lightmediascanner_db_image.c</a>
 <li>lms_db_image_start()
-: <a class="el" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lightmediascanner_db_image.c</a>
-, <a class="el" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lightmediascanner_db.h</a>
+: <a class="el" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lightmediascanner_db.h</a>
+, <a class="el" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lightmediascanner_db_image.c</a>
 <li>lms_db_image_t
 : <a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lightmediascanner_db.h</a>
 <li>lms_db_insert_file_info()
@@ -168,11 +171,11 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__db__playlist_8c.html#4fe309efb9c2c24b6e2f77fffca81ee4">lightmediascanner_db_playlist.c</a>
 , <a class="el" href="group__LMS__DB.html#g8864e532609191f07737c1d23c1bc65f">lightmediascanner_db.h</a>
 <li>lms_db_playlist_free()
-: <a class="el" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lightmediascanner_db_playlist.c</a>
-, <a class="el" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lightmediascanner_db.h</a>
+: <a class="el" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lightmediascanner_db.h</a>
+, <a class="el" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lightmediascanner_db_playlist.c</a>
 <li>lms_db_playlist_new()
-: <a class="el" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lightmediascanner_db.h</a>
-, <a class="el" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lightmediascanner_db_playlist.c</a>
+: <a class="el" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lightmediascanner_db_playlist.c</a>
+, <a class="el" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lightmediascanner_db.h</a>
 <li>lms_db_playlist_start()
 : <a class="el" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lightmediascanner_db_playlist.c</a>
 , <a class="el" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lightmediascanner_db.h</a>
@@ -182,8 +185,8 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#ee78f418f0f3c9ead3023b1453c63556">lightmediascanner_db_private.h</a>
 <li>lms_db_set_file_dtime()
-: <a class="el" href="lightmediascanner__db__private_8h.html#0fa3bfe1fa3a01a4dd231b6f818122cb">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#0fa3bfe1fa3a01a4dd231b6f818122cb">lightmediascanner_db_private.h</a>
 <li>lms_db_table_update()
 : <a class="el" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#3dcf825514196befd0a4575e4afd0b58">lightmediascanner_db_private.h</a>
@@ -191,7 +194,7 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#455c0e5d62094b01fc935c5db8f07352">lightmediascanner_db_private.h</a>
 <li>lms_db_table_updater_t
-: <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lightmediascanner_db_private.h</a>
+: <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lightmediascanner_db_private.h</a>
 <li>lms_db_table_version_get()
 : <a class="el" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#23cf7fff49641b39c017bdd076b112a7">lightmediascanner_db_private.h</a>
@@ -199,8 +202,8 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__db__private_8h.html#1c57f68c64069575a36252816929e335">lightmediascanner_db_private.h</a>
 , <a class="el" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lightmediascanner_db_common.c</a>
 <li>lms_db_update_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#9cce62321be32274de720ec946473eeb">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#9cce62321be32274de720ec946473eeb">lightmediascanner_db_private.h</a>
 <li>lms_db_video_add()
 : <a class="el" href="lightmediascanner__db__video_8c.html#700adc9c25a70e5cd1d77812324b748e">lightmediascanner_db_video.c</a>
 , <a class="el" href="group__LMS__DB.html#gb07d1e7fe962486b6e9d00581e8aac19">lightmediascanner_db.h</a>
@@ -216,8 +219,9 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 <li>lms_db_video_t
 : <a class="el" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lightmediascanner_db.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 53e5560..3857cdb 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li class="current"><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li class="current"><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
@@ -55,11 +58,14 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lightmediascanner_private.h</a>
 , <a class="el" href="lightmediascanner__process_8c.html#9f980636d608c6af99477ba37e196050">lightmediascanner_process.c</a>
 <li>lms_free()
-: <a class="el" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lightmediascanner.c</a>
-, <a class="el" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lightmediascanner.h</a>
+: <a class="el" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lightmediascanner.h</a>
+, <a class="el" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lightmediascanner.c</a>
+<li>lms_free_callback_t
+: <a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lightmediascanner.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 7625a09..3ddf66c 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li class="current"><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li class="current"><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
@@ -57,12 +60,12 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">lightmediascanner.h</a>
 , <a class="el" href="lightmediascanner__charset__conv_8h.html#2213ea4dca0e242f957f63988caab768">lightmediascanner_charset_conv.h</a>
 <li>GNUC_NON_NULL
-: <a class="el" href="lightmediascanner__charset__conv_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_charset_conv.h</a>
+: <a class="el" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__charset__conv_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_charset_conv.h</a>
 , <a class="el" href="lightmediascanner__db_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_db.h</a>
-, <a class="el" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__utils_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_utils.h</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_db_private.h</a>
 , <a class="el" href="lightmediascanner__private_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_private.h</a>
-, <a class="el" href="lightmediascanner__utils_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_utils.h</a>
 <li>GNUC_NULL_TERMINATED
 : <a class="el" href="lightmediascanner_8h.html#3c631eb7d32b61d70bfc615ae54e5552">lightmediascanner.h</a>
 <li>GNUC_PURE
@@ -70,20 +73,21 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 <li>GNUC_UNUSED
 : <a class="el" href="lightmediascanner_8h.html#80a4050221a914ea58d5799f13109ebb">lightmediascanner.h</a>
 <li>GNUC_WARN_UNUSED_RESULT
-: <a class="el" href="lightmediascanner__charset__conv_8h.html#34c563f40a0f86e597c51f1556669521">lightmediascanner_charset_conv.h</a>
-, <a class="el" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__charset__conv_8h.html#34c563f40a0f86e597c51f1556669521">lightmediascanner_charset_conv.h</a>
 <li>lms_get_commit_interval()
-: <a class="el" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lightmediascanner.c</a>
-, <a class="el" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lightmediascanner.h</a>
+: <a class="el" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lightmediascanner.h</a>
+, <a class="el" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lightmediascanner.c</a>
 <li>lms_get_db_path()
-: <a class="el" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lightmediascanner.h</a>
-, <a class="el" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lightmediascanner.c</a>
+: <a class="el" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lightmediascanner.c</a>
+, <a class="el" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lightmediascanner.h</a>
 <li>lms_get_slave_timeout()
 : <a class="el" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lightmediascanner.c</a>
 , <a class="el" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lightmediascanner.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index f0e287c..38d8f7a 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li class="current"><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li class="current"><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_i">- i -</a></h3><ul>
@@ -55,8 +58,9 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">lightmediascanner.c</a>
 , <a class="el" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">lightmediascanner.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 8ca2fbd..1afbec9 100644 (file)
@@ -4,60 +4,76 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li class="current"><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li class="current"><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_l">- l -</a></h3><ul>
 <li>LMS_ARRAY_SIZE
 : <a class="el" href="lightmediascanner__utils_8h.html#13a0622cfcc91eec261da4285621bdcc">lightmediascanner_utils.h</a>
+<li>LMS_PROGRESS_STATUS_DELETED
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_ERROR_COMM
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_ERROR_PARSE
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_KILLED
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_PROCESSED
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_UP_TO_DATE
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370204315e58ce4b7dfa6421b4d1556655d">lightmediascanner.h</a>
 <li>LMS_STATIC_STRING_SIZE
 : <a class="el" href="lightmediascanner__utils_8h.html#786c453d995be000d52360f327a6816b">lightmediascanner_utils.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 0efd164..e9e3652 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li class="current"><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li class="current"><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_n">- n -</a></h3><ul>
@@ -55,8 +58,9 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="group__LMS__API.html#g982939bdd2aeb664b5cf7a50b67c1030">lightmediascanner.c</a>
 , <a class="el" href="group__LMS__API.html#g982939bdd2aeb664b5cf7a50b67c1030">lightmediascanner.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 2f1c8e0..5143ed1 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li class="current"><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li class="current"><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
@@ -61,8 +64,8 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lightmediascanner.c</a>
 , <a class="el" href="lightmediascanner__private_8h.html#239fc535d2f20f09eeec9df86aa6ef9b">lightmediascanner_private.h</a>
 <li>lms_parser_find_and_add()
-: <a class="el" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lightmediascanner.c</a>
-, <a class="el" href="lightmediascanner_8h.html#e48d0483903bbb9604d14b44f7c569d9">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#e48d0483903bbb9604d14b44f7c569d9">lightmediascanner.h</a>
+, <a class="el" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lightmediascanner.c</a>
 <li>lms_parsers_check_using()
 : <a class="el" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lightmediascanner_private.h</a>
 , <a class="el" href="lightmediascanner__process_8c.html#f2e95cea50ce24774d2f5ed7d8c8f41c">lightmediascanner_process.c</a>
@@ -70,36 +73,46 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lightmediascanner_private.h</a>
 , <a class="el" href="lightmediascanner__process_8c.html#d002464442b08826a1da920bdf4957b7">lightmediascanner_process.c</a>
 <li>lms_parsers_run()
-: <a class="el" href="lightmediascanner__process_8c.html#4ab78dfbf29822d91472d18dd7424e77">lightmediascanner_process.c</a>
-, <a class="el" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lightmediascanner_private.h</a>
+: <a class="el" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lightmediascanner_private.h</a>
+, <a class="el" href="lightmediascanner__process_8c.html#4ab78dfbf29822d91472d18dd7424e77">lightmediascanner_process.c</a>
 <li>lms_parsers_setup()
-: <a class="el" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lightmediascanner_private.h</a>
-, <a class="el" href="lightmediascanner__process_8c.html#c321bebfc5c24cbbac30031202c460e9">lightmediascanner_process.c</a>
+: <a class="el" href="lightmediascanner__process_8c.html#c321bebfc5c24cbbac30031202c460e9">lightmediascanner_process.c</a>
+, <a class="el" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lightmediascanner_private.h</a>
 <li>lms_parsers_start()
 : <a class="el" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lightmediascanner_private.h</a>
 , <a class="el" href="lightmediascanner__process_8c.html#6e02f78f026b2ad282184476dca13e45">lightmediascanner_process.c</a>
 <li>lms_plugin_close_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lightmediascanner_plugin.h</a>
 <li>lms_plugin_finish_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lightmediascanner_plugin.h</a>
 <li>lms_plugin_match_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">lightmediascanner_plugin.h</a>
 <li>lms_plugin_parse_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lightmediascanner_plugin.h</a>
 <li>lms_plugin_setup_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lightmediascanner_plugin.h</a>
 <li>lms_plugin_start_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lightmediascanner_plugin.h</a>
 <li>lms_plugin_t
 : <a class="el" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">lightmediascanner.h</a>
 <li>lms_process()
 : <a class="el" href="lightmediascanner__process_8c.html#c2f07fb73717514237862c98dbf023b2">lightmediascanner_process.c</a>
 , <a class="el" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lightmediascanner.h</a>
+<li>lms_process_single_process()
+: <a class="el" href="lightmediascanner__process_8c.html#5db83cefb7a50bbecea9de26a6ef1c2c">lightmediascanner_process.c</a>
+, <a class="el" href="lightmediascanner_8h.html#c5eda23c23b2ea76f001ac994c2ba9e2">lightmediascanner.h</a>
+<li>lms_progress_callback_t
+: <a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lightmediascanner.h</a>
+<li>lms_progress_status_t
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lightmediascanner.h</a>
 <li>PATH_SIZE
 : <a class="el" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">lightmediascanner_private.h</a>
+<li>process_file_callback_t
+: <a class="el" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">lightmediascanner_private.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 8ea5a28..fe8360f 100644 (file)
@@ -4,50 +4,53 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li class="current"><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li class="current"><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_r">- r -</a></h3><ul>
@@ -55,8 +58,9 @@ Here is a list of all functions, variables, defines, enums, and typedefs with li
 : <a class="el" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lightmediascanner_private.h</a>
 , <a class="el" href="lightmediascanner__process_8c.html#9bf510645947b478dab39f633bbd35f3">lightmediascanner_process.c</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 35208df..50022a4 100644 (file)
@@ -4,69 +4,85 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li class="current"><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li class="current"><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
 <li>lms_set_commit_interval()
 : <a class="el" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lightmediascanner.c</a>
 , <a class="el" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lightmediascanner.h</a>
+<li>lms_set_progress_callback()
+: <a class="el" href="lightmediascanner_8h.html#d2da241599f7f576670d64184f972c43">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner_8c.html#668e706f6d5eae3ba5e36ff4db2ae514">lightmediascanner.c</a>
 <li>lms_set_slave_timeout()
 : <a class="el" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lightmediascanner.c</a>
 , <a class="el" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lightmediascanner.h</a>
+<li>lms_stop_processing()
+: <a class="el" href="lightmediascanner_8h.html#30aa1e83907fc1049d2adccb28eef489">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__process_8c.html#36d624baae0531c20e716c88a82e0aaf">lightmediascanner_process.c</a>
+<li>lms_string_size_strip_and_free()
+: <a class="el" href="lightmediascanner__utils_8c.html#9ed157dee5c16f4c62c5ae6e281580cf">lightmediascanner_utils.c</a>
+, <a class="el" href="lightmediascanner__utils_8h.html#5a7e5da69500a12f447a77177dbb6e0d">lightmediascanner_utils.h</a>
 <li>lms_strstrip()
 : <a class="el" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">lightmediascanner_utils.c</a>
 , <a class="el" href="lightmediascanner__utils_8h.html#281568969e526a7bdf687da4d1cc75ab">lightmediascanner_utils.h</a>
+<li>lms_strstrip_and_free()
+: <a class="el" href="lightmediascanner__utils_8c.html#45d15c8bfeddaef0d5b1d0bd9ecc0c79">lightmediascanner_utils.c</a>
+, <a class="el" href="lightmediascanner__utils_8h.html#01cee33e2410ae7081905a4e06d890cc">lightmediascanner_utils.h</a>
 <li>sqlite3_clear_bindings()
 : <a class="el" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00">lightmediascanner_db_common.c</a>
 <li>sqlite3_prepare_v2()
 : <a class="el" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405">lightmediascanner_db_common.c</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index acfd9ac..a676ca4 100644 (file)
@@ -4,58 +4,62 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li class="current"><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li class="current"><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>lms_t
 : <a class="el" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lightmediascanner.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 759c98a..e051c65 100644 (file)
@@ -4,59 +4,63 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html#index__"><span>_</span></a></li>
+      <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
+      <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
+      <li class="current"><a href="globals_0x77.html#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html#index__"><span>_</span></a></li>
-    <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
-    <li><a href="globals_0x63.html#index_c"><span>c</span></a></li>
-    <li><a href="globals_0x64.html#index_d"><span>d</span></a></li>
-    <li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
-    <li><a href="globals_0x67.html#index_g"><span>g</span></a></li>
-    <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
-    <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
-    <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
-    <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
-    <li><a href="globals_0x72.html#index_r"><span>r</span></a></li>
-    <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
-    <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
-    <li class="current"><a href="globals_0x77.html#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_w">- w -</a></h3><ul>
 <li>lms_which_extension()
 : <a class="el" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">lightmediascanner_utils.c</a>
-, <a class="el" href="lightmediascanner__utils_8h.html#92c63007e7d04f626cafc6eef48f7022">lightmediascanner_utils.h</a>
+, <a class="el" href="lightmediascanner__utils_8h.html#7dfc23066442e00fff5cbe77e6f1426e">lightmediascanner_utils.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index e7f1b91..99203a7 100644 (file)
@@ -4,43 +4,46 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="#index__"><span>_</span></a></li>
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="#index__"><span>_</span></a></li>
-    <li><a href="#index_a"><span>a</span></a></li>
-    <li><a href="#index_c"><span>c</span></a></li>
-    <li><a href="#index_d"><span>d</span></a></li>
-    <li><a href="#index_g"><span>g</span></a></li>
-    <li><a href="#index_l"><span>l</span></a></li>
-    <li><a href="#index_p"><span>p</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index__">- _ -</a></h3><ul>
 : <a class="el" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">lightmediascanner.h</a>
 , <a class="el" href="lightmediascanner__charset__conv_8h.html#2213ea4dca0e242f957f63988caab768">lightmediascanner_charset_conv.h</a>
 <li>GNUC_NON_NULL
-: <a class="el" href="lightmediascanner__private_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_private.h</a>
+: <a class="el" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__private_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_private.h</a>
+, <a class="el" href="lightmediascanner__utils_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_utils.h</a>
 , <a class="el" href="lightmediascanner__charset__conv_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_charset_conv.h</a>
 , <a class="el" href="lightmediascanner__db_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_db.h</a>
-, <a class="el" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner.h</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__utils_8h.html#6fe68cac0abf3e2ca61141920414e93a">lightmediascanner_utils.h</a>
 <li>GNUC_NULL_TERMINATED
 : <a class="el" href="lightmediascanner_8h.html#3c631eb7d32b61d70bfc615ae54e5552">lightmediascanner.h</a>
 <li>GNUC_PURE
 <li>GNUC_UNUSED
 : <a class="el" href="lightmediascanner_8h.html#80a4050221a914ea58d5799f13109ebb">lightmediascanner.h</a>
 <li>GNUC_WARN_UNUSED_RESULT
-: <a class="el" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">lightmediascanner.h</a>
-, <a class="el" href="lightmediascanner__charset__conv_8h.html#34c563f40a0f86e597c51f1556669521">lightmediascanner_charset_conv.h</a>
+: <a class="el" href="lightmediascanner__charset__conv_8h.html#34c563f40a0f86e597c51f1556669521">lightmediascanner_charset_conv.h</a>
+, <a class="el" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">lightmediascanner.h</a>
 </ul>
 <h3><a class="anchor" name="index_l">- l -</a></h3><ul>
 <li>LMS_ARRAY_SIZE
 <li>PATH_SIZE
 : <a class="el" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">lightmediascanner_private.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
diff --git a/www/api/globals_enum.html b/www/api/globals_enum.html
new file mode 100644 (file)
index 0000000..3f9a1b7
--- /dev/null
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Light Media Scanner: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>lms_progress_status_t
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lightmediascanner.h</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
diff --git a/www/api/globals_eval.html b/www/api/globals_eval.html
new file mode 100644 (file)
index 0000000..42e0e52
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Light Media Scanner: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>LMS_PROGRESS_STATUS_DELETED
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_ERROR_COMM
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_ERROR_PARSE
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_KILLED
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_PROCESSED
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">lightmediascanner.h</a>
+<li>LMS_PROGRESS_STATUS_UP_TO_DATE
+: <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370204315e58ce4b7dfa6421b4d1556655d">lightmediascanner.h</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
index e701162..f7282ec 100644 (file)
@@ -4,46 +4,49 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_f"><span>f</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_n"><span>n</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
 </div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html"><span>All</span></a></li>
-    <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="#index_c"><span>c</span></a></li>
-    <li><a href="#index_d"><span>d</span></a></li>
-    <li><a href="#index_f"><span>f</span></a></li>
-    <li><a href="#index_g"><span>g</span></a></li>
-    <li><a href="#index_i"><span>i</span></a></li>
-    <li><a href="#index_n"><span>n</span></a></li>
-    <li><a href="#index_p"><span>p</span></a></li>
-    <li><a href="#index_r"><span>r</span></a></li>
-    <li><a href="#index_s"><span>s</span></a></li>
-    <li><a href="#index_w"><span>w</span></a></li>
-  </ul>
-</div>
-
-<p>
+<div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
 : <a class="el" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lightmediascanner_charset_conv.c</a>
 , <a class="el" href="group__LMS__CHARSET.html#gfc1aad4c212b5fa1ce7280d2b7df3ef7">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_conv_check()
-: <a class="el" href="group__LMS__CHARSET.html#g3d6c281f7b3cf9fb0c299c0abe03f681">lightmediascanner_charset_conv.h</a>
+: <a class="el" href="group__LMS__CHARSET.html#gbc8903e67c3c7eefa902cbb2bd5e3338">lightmediascanner_charset_conv.h</a>
 , <a class="el" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lightmediascanner_charset_conv.c</a>
 <li>lms_charset_conv_del()
 : <a class="el" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lightmediascanner_charset_conv.c</a>
 , <a class="el" href="group__LMS__CHARSET.html#gc364c502a4a4a64ea9f092a61074a90a">lightmediascanner_charset_conv.h</a>
+<li>lms_charset_conv_force()
+: <a class="el" href="lightmediascanner__charset__conv_8c.html#8ea844f16120ba4000b7b142192e91e4">lightmediascanner_charset_conv.c</a>
+, <a class="el" href="group__LMS__CHARSET.html#g9a610040a6380c745277effc5c4c9112">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_conv_free()
-: <a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lightmediascanner_charset_conv.h</a>
-, <a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lightmediascanner_charset_conv.c</a>
+: <a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lightmediascanner_charset_conv.c</a>
+, <a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_conv_new()
 : <a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lightmediascanner_charset_conv.h</a>
 , <a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lightmediascanner_charset_conv.c</a>
+<li>lms_charset_conv_new_full()
+: <a class="el" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lightmediascanner_charset_conv.c</a>
+, <a class="el" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lightmediascanner_charset_conv.h</a>
 <li>lms_charset_del()
-: <a class="el" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">lightmediascanner.c</a>
-, <a class="el" href="lightmediascanner_8h.html#35fc2de4828878b9dec07e8edda8a5e2">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#35fc2de4828878b9dec07e8edda8a5e2">lightmediascanner.h</a>
+, <a class="el" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">lightmediascanner.c</a>
 <li>lms_check()
-: <a class="el" href="lightmediascanner__check_8c.html#859492d896e816498edb471315efced1">lightmediascanner_check.c</a>
-, <a class="el" href="lightmediascanner_8h.html#890f1af4c54c88a63abdbeff5ecd49a3">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#5b70063cf19648de70bb145404aa3d0b">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__check_8c.html#859492d896e816498edb471315efced1">lightmediascanner_check.c</a>
+<li>lms_check_single_process()
+: <a class="el" href="lightmediascanner_8h.html#bfd6888e606654c585e41aa946637432">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__check_8c.html#a56ce530328493e110054aa1eabf66c2">lightmediascanner_check.c</a>
 <li>lms_close_pipes()
-: <a class="el" href="lightmediascanner__process_8c.html#6b68b00b80a98a178c7d69b962267a11">lightmediascanner_process.c</a>
-, <a class="el" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lightmediascanner_private.h</a>
+: <a class="el" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lightmediascanner_private.h</a>
+, <a class="el" href="lightmediascanner__process_8c.html#6b68b00b80a98a178c7d69b962267a11">lightmediascanner_process.c</a>
 <li>lms_create_pipes()
-: <a class="el" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lightmediascanner_private.h</a>
-, <a class="el" href="lightmediascanner__process_8c.html#c2e1320b9770e0f522451b13f82efc2b">lightmediascanner_process.c</a>
+: <a class="el" href="lightmediascanner__process_8c.html#c2e1320b9770e0f522451b13f82efc2b">lightmediascanner_process.c</a>
+, <a class="el" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lightmediascanner_private.h</a>
 <li>lms_create_slave()
 : <a class="el" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lightmediascanner_private.h</a>
 , <a class="el" href="lightmediascanner__process_8c.html#e92fe8fe90d93d5ad9a42387a4b2fc6e">lightmediascanner_process.c</a>
 : <a class="el" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lightmediascanner_db_audio.c</a>
 , <a class="el" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lightmediascanner_db.h</a>
 <li>lms_db_audio_new()
-: <a class="el" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lightmediascanner_db_audio.c</a>
-, <a class="el" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lightmediascanner_db.h</a>
+: <a class="el" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lightmediascanner_db.h</a>
+, <a class="el" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lightmediascanner_db_audio.c</a>
 <li>lms_db_audio_start()
 : <a class="el" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lightmediascanner_db_audio.c</a>
 , <a class="el" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lightmediascanner_db.h</a>
 : <a class="el" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#3a7256cb653542bbf563feeb2aa2d0ea">lightmediascanner_db_private.h</a>
 <li>lms_db_bind_blob()
-: <a class="el" href="lightmediascanner__db__private_8h.html#7fd514b582578c18a25cdbf6c561243c">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#7fd514b582578c18a25cdbf6c561243c">lightmediascanner_db_private.h</a>
 <li>lms_db_bind_double()
-: <a class="el" href="lightmediascanner__db__private_8h.html#9e78297037179998924354e73ca69349">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#9e78297037179998924354e73ca69349">lightmediascanner_db_private.h</a>
 <li>lms_db_bind_int()
 : <a class="el" href="lightmediascanner__db__private_8h.html#37815f859116b46089bea4ba84bb23d2">lightmediascanner_db_private.h</a>
 , <a class="el" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lightmediascanner_db_common.c</a>
 <li>lms_db_bind_int64()
-: <a class="el" href="lightmediascanner__db__private_8h.html#bbb18d7cc44f7e363c0f240849d72c31">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#bbb18d7cc44f7e363c0f240849d72c31">lightmediascanner_db_private.h</a>
 <li>lms_db_bind_int64_or_null()
-: <a class="el" href="lightmediascanner__db__private_8h.html#cd7006f0271b9a47937dc2d2ae5480fe">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#cd7006f0271b9a47937dc2d2ae5480fe">lightmediascanner_db_private.h</a>
 <li>lms_db_bind_text()
-: <a class="el" href="lightmediascanner__db__private_8h.html#14d56e02624ad6130bc59ae9bb950ac3">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#14d56e02624ad6130bc59ae9bb950ac3">lightmediascanner_db_private.h</a>
 <li>lms_db_cache_add()
 : <a class="el" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#f2c9e9154fff8b335c4fd5693fe45aa6">lightmediascanner_db_private.h</a>
 : <a class="el" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#6301bd096100f8adf24d2caff3aa0b75">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_begin_transaction()
-: <a class="el" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lightmediascanner_db_common.c</a>
-, <a class="el" href="lightmediascanner__db__private_8h.html#073c254ca7b4d3f42e1be1854bcc42a3">lightmediascanner_db_private.h</a>
+: <a class="el" href="lightmediascanner__db__private_8h.html#073c254ca7b4d3f42e1be1854bcc42a3">lightmediascanner_db_private.h</a>
+, <a class="el" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lightmediascanner_db_common.c</a>
 <li>lms_db_compile_stmt_delete_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#76941bdbbdb711fff821343e91c2cd97">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#76941bdbbdb711fff821343e91c2cd97">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_end_transaction()
 : <a class="el" href="lightmediascanner__db__common_8c.html#bff1aa6077215f3d70d4d5b1a9b7a498">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#09feca4fbfde33d5647cdd5cc2de6500">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_get_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#327d54a6dac083e356fd609298a0cbd5">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#b00a624bc01da9b796f7bc6e1d507cf8">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#b00a624bc01da9b796f7bc6e1d507cf8">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#327d54a6dac083e356fd609298a0cbd5">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_get_files()
-: <a class="el" href="lightmediascanner__db__private_8h.html#1cc8a80961a0febdd099a028f3da9c30">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#1cc8a80961a0febdd099a028f3da9c30">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_insert_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#bf21f88ddbe28a8290d0df32af0f079c">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#9a5886e755eb428ac811956144eee0dc">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#9a5886e755eb428ac811956144eee0dc">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#bf21f88ddbe28a8290d0df32af0f079c">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_set_file_dtime()
-: <a class="el" href="lightmediascanner__db__private_8h.html#08c34b5b1b6e927a696ff0ce66562f54">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#1b6950ca9e548670a4cb7fd0ec5220a8">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#1b6950ca9e548670a4cb7fd0ec5220a8">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#08c34b5b1b6e927a696ff0ce66562f54">lightmediascanner_db_private.h</a>
 <li>lms_db_compile_stmt_update_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#69eb9d9058d9432f7658f9adffb79ed6">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#69eb9d9058d9432f7658f9adffb79ed6">lightmediascanner_db_private.h</a>
 <li>lms_db_create_core_tables_if_required()
 : <a class="el" href="lightmediascanner__db__common_8c.html#3798a46baaedc4d466879865456acc94">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#13ca09c885535a2968e707120e935268">lightmediascanner_db_private.h</a>
 <li>lms_db_create_trigger_if_not_exists()
-: <a class="el" href="lightmediascanner__db__private_8h.html#f47d604dd4e11f81be1ad045ee723789">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#f47d604dd4e11f81be1ad045ee723789">lightmediascanner_db_private.h</a>
 <li>lms_db_delete_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#ec17baec1e001f67334b0265d465fb50">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#ec17baec1e001f67334b0265d465fb50">lightmediascanner_db_private.h</a>
 <li>lms_db_end_transaction()
-: <a class="el" href="lightmediascanner__db__private_8h.html#8ee7bfba83958b80f717a6ccbad2a84c">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#8ee7bfba83958b80f717a6ccbad2a84c">lightmediascanner_db_private.h</a>
 <li>lms_db_finalize_stmt()
-: <a class="el" href="lightmediascanner__db__private_8h.html#2660f629fbdf3d4144a6143fee837a27">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#2660f629fbdf3d4144a6143fee837a27">lightmediascanner_db_private.h</a>
 <li>lms_db_get_file_info()
-: <a class="el" href="lightmediascanner__db__private_8h.html#e1df123e8d894a49f740ec6429af8159">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#c0b7cf0b2eb0f55fbf8a4103bc9569d1">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#c0b7cf0b2eb0f55fbf8a4103bc9569d1">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#e1df123e8d894a49f740ec6429af8159">lightmediascanner_db_private.h</a>
 <li>lms_db_get_files()
 : <a class="el" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#617b14b976ba1cde9fe639800f2eae71">lightmediascanner_db_private.h</a>
 : <a class="el" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lightmediascanner_db_image.c</a>
 , <a class="el" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lightmediascanner_db.h</a>
 <li>lms_db_image_new()
-: <a class="el" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lightmediascanner_db_image.c</a>
-, <a class="el" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lightmediascanner_db.h</a>
+: <a class="el" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lightmediascanner_db.h</a>
+, <a class="el" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lightmediascanner_db_image.c</a>
 <li>lms_db_image_start()
-: <a class="el" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lightmediascanner_db.h</a>
-, <a class="el" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lightmediascanner_db_image.c</a>
+: <a class="el" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lightmediascanner_db_image.c</a>
+, <a class="el" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lightmediascanner_db.h</a>
 <li>lms_db_insert_file_info()
 : <a class="el" href="lightmediascanner__db__common_8c.html#e529ad5c4478d53685c65ec69dc5b1f4">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#9353bf3cfbe2c0045023658597b0cf1d">lightmediascanner_db_private.h</a>
 : <a class="el" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lightmediascanner_db_playlist.c</a>
 , <a class="el" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lightmediascanner_db.h</a>
 <li>lms_db_playlist_new()
-: <a class="el" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lightmediascanner_db.h</a>
-, <a class="el" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lightmediascanner_db_playlist.c</a>
+: <a class="el" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lightmediascanner_db_playlist.c</a>
+, <a class="el" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lightmediascanner_db.h</a>
 <li>lms_db_playlist_start()
-: <a class="el" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lightmediascanner_db_playlist.c</a>
-, <a class="el" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lightmediascanner_db.h</a>
+: <a class="el" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lightmediascanner_db.h</a>
+, <a class="el" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lightmediascanner_db_playlist.c</a>
 <li>lms_db_reset_stmt()
 : <a class="el" href="lightmediascanner__db__private_8h.html#ee78f418f0f3c9ead3023b1453c63556">lightmediascanner_db_private.h</a>
 , <a class="el" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lightmediascanner_db_common.c</a>
 <li>lms_db_set_file_dtime()
-: <a class="el" href="lightmediascanner__db__private_8h.html#0fa3bfe1fa3a01a4dd231b6f818122cb">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#0fa3bfe1fa3a01a4dd231b6f818122cb">lightmediascanner_db_private.h</a>
 <li>lms_db_table_update()
-: <a class="el" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lightmediascanner_db_common.c</a>
-, <a class="el" href="lightmediascanner__db__private_8h.html#3dcf825514196befd0a4575e4afd0b58">lightmediascanner_db_private.h</a>
+: <a class="el" href="lightmediascanner__db__private_8h.html#3dcf825514196befd0a4575e4afd0b58">lightmediascanner_db_private.h</a>
+, <a class="el" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lightmediascanner_db_common.c</a>
 <li>lms_db_table_update_if_required()
-: <a class="el" href="lightmediascanner__db__private_8h.html#455c0e5d62094b01fc935c5db8f07352">lightmediascanner_db_private.h</a>
-, <a class="el" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lightmediascanner_db_common.c</a>
+: <a class="el" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lightmediascanner_db_common.c</a>
+, <a class="el" href="lightmediascanner__db__private_8h.html#455c0e5d62094b01fc935c5db8f07352">lightmediascanner_db_private.h</a>
 <li>lms_db_table_version_get()
 : <a class="el" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">lightmediascanner_db_common.c</a>
 , <a class="el" href="lightmediascanner__db__private_8h.html#23cf7fff49641b39c017bdd076b112a7">lightmediascanner_db_private.h</a>
 <li>lms_db_table_version_set()
-: <a class="el" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lightmediascanner_db_common.c</a>
-, <a class="el" href="lightmediascanner__db__private_8h.html#1c57f68c64069575a36252816929e335">lightmediascanner_db_private.h</a>
+: <a class="el" href="lightmediascanner__db__private_8h.html#1c57f68c64069575a36252816929e335">lightmediascanner_db_private.h</a>
+, <a class="el" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lightmediascanner_db_common.c</a>
 <li>lms_db_update_file_info()
-: <a class="el" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lightmediascanner_db_common.c</a>
-, <a class="el" href="lightmediascanner__db__private_8h.html#9cce62321be32274de720ec946473eeb">lightmediascanner_db_private.h</a>
+: <a class="el" href="lightmediascanner__db__private_8h.html#9cce62321be32274de720ec946473eeb">lightmediascanner_db_private.h</a>
+, <a class="el" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lightmediascanner_db_common.c</a>
 <li>lms_db_video_add()
-: <a class="el" href="lightmediascanner__db__video_8c.html#700adc9c25a70e5cd1d77812324b748e">lightmediascanner_db_video.c</a>
-, <a class="el" href="group__LMS__DB.html#gb07d1e7fe962486b6e9d00581e8aac19">lightmediascanner_db.h</a>
+: <a class="el" href="group__LMS__DB.html#gb07d1e7fe962486b6e9d00581e8aac19">lightmediascanner_db.h</a>
+, <a class="el" href="lightmediascanner__db__video_8c.html#700adc9c25a70e5cd1d77812324b748e">lightmediascanner_db_video.c</a>
 <li>lms_db_video_free()
 : <a class="el" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">lightmediascanner_db.h</a>
 , <a class="el" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">lightmediascanner_db_video.c</a>
 : <a class="el" href="group__LMS__DB.html#ga206178e1f883c1bf7a3281f982109b2">lightmediascanner_db.h</a>
 , <a class="el" href="group__LMS__DB.html#ga206178e1f883c1bf7a3281f982109b2">lightmediascanner_db_video.c</a>
 <li>lms_db_video_start()
-: <a class="el" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">lightmediascanner_db.h</a>
-, <a class="el" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">lightmediascanner_db_video.c</a>
+: <a class="el" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">lightmediascanner_db_video.c</a>
+, <a class="el" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">lightmediascanner_db.h</a>
 </ul>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>lms_finish_slave()
 : <a class="el" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lightmediascanner.h</a>
 , <a class="el" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lightmediascanner.c</a>
 <li>lms_get_slave_timeout()
-: <a class="el" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lightmediascanner.c</a>
-, <a class="el" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lightmediascanner.h</a>
+: <a class="el" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lightmediascanner.h</a>
+, <a class="el" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lightmediascanner.c</a>
 </ul>
 <h3><a class="anchor" name="index_i">- i -</a></h3><ul>
 <li>lms_is_processing()
 : <a class="el" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">lightmediascanner.c</a>
 , <a class="el" href="lightmediascanner_8h.html#ce55a5c9cc767b96fa6f24b77bebc7c3">lightmediascanner.h</a>
 <li>lms_parser_del()
-: <a class="el" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">lightmediascanner.c</a>
-, <a class="el" href="lightmediascanner_8h.html#5ba173b12c355bbdf7913bfff0ff6415">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#5ba173b12c355bbdf7913bfff0ff6415">lightmediascanner.h</a>
+, <a class="el" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">lightmediascanner.c</a>
 <li>lms_parser_del_int()
-: <a class="el" href="lightmediascanner__private_8h.html#239fc535d2f20f09eeec9df86aa6ef9b">lightmediascanner_private.h</a>
-, <a class="el" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lightmediascanner.c</a>
+: <a class="el" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lightmediascanner.c</a>
+, <a class="el" href="lightmediascanner__private_8h.html#239fc535d2f20f09eeec9df86aa6ef9b">lightmediascanner_private.h</a>
 <li>lms_parser_find_and_add()
-: <a class="el" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lightmediascanner.c</a>
-, <a class="el" href="lightmediascanner_8h.html#e48d0483903bbb9604d14b44f7c569d9">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#e48d0483903bbb9604d14b44f7c569d9">lightmediascanner.h</a>
+, <a class="el" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lightmediascanner.c</a>
 <li>lms_parsers_check_using()
-: <a class="el" href="lightmediascanner__process_8c.html#f2e95cea50ce24774d2f5ed7d8c8f41c">lightmediascanner_process.c</a>
-, <a class="el" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lightmediascanner_private.h</a>
+: <a class="el" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lightmediascanner_private.h</a>
+, <a class="el" href="lightmediascanner__process_8c.html#f2e95cea50ce24774d2f5ed7d8c8f41c">lightmediascanner_process.c</a>
 <li>lms_parsers_finish()
-: <a class="el" href="lightmediascanner__process_8c.html#d002464442b08826a1da920bdf4957b7">lightmediascanner_process.c</a>
-, <a class="el" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lightmediascanner_private.h</a>
+: <a class="el" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lightmediascanner_private.h</a>
+, <a class="el" href="lightmediascanner__process_8c.html#d002464442b08826a1da920bdf4957b7">lightmediascanner_process.c</a>
 <li>lms_parsers_run()
-: <a class="el" href="lightmediascanner__process_8c.html#4ab78dfbf29822d91472d18dd7424e77">lightmediascanner_process.c</a>
-, <a class="el" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lightmediascanner_private.h</a>
+: <a class="el" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lightmediascanner_private.h</a>
+, <a class="el" href="lightmediascanner__process_8c.html#4ab78dfbf29822d91472d18dd7424e77">lightmediascanner_process.c</a>
 <li>lms_parsers_setup()
 : <a class="el" href="lightmediascanner__process_8c.html#c321bebfc5c24cbbac30031202c460e9">lightmediascanner_process.c</a>
 , <a class="el" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lightmediascanner_private.h</a>
 : <a class="el" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lightmediascanner_private.h</a>
 , <a class="el" href="lightmediascanner__process_8c.html#6e02f78f026b2ad282184476dca13e45">lightmediascanner_process.c</a>
 <li>lms_process()
-: <a class="el" href="lightmediascanner__process_8c.html#c2f07fb73717514237862c98dbf023b2">lightmediascanner_process.c</a>
-, <a class="el" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lightmediascanner.h</a>
+: <a class="el" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__process_8c.html#c2f07fb73717514237862c98dbf023b2">lightmediascanner_process.c</a>
+<li>lms_process_single_process()
+: <a class="el" href="lightmediascanner__process_8c.html#5db83cefb7a50bbecea9de26a6ef1c2c">lightmediascanner_process.c</a>
+, <a class="el" href="lightmediascanner_8h.html#c5eda23c23b2ea76f001ac994c2ba9e2">lightmediascanner.h</a>
 </ul>
 <h3><a class="anchor" name="index_r">- r -</a></h3><ul>
 <li>lms_restart_slave()
 <li>lms_set_commit_interval()
 : <a class="el" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lightmediascanner.c</a>
 , <a class="el" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lightmediascanner.h</a>
+<li>lms_set_progress_callback()
+: <a class="el" href="lightmediascanner_8h.html#d2da241599f7f576670d64184f972c43">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner_8c.html#668e706f6d5eae3ba5e36ff4db2ae514">lightmediascanner.c</a>
 <li>lms_set_slave_timeout()
 : <a class="el" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lightmediascanner.c</a>
 , <a class="el" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lightmediascanner.h</a>
+<li>lms_stop_processing()
+: <a class="el" href="lightmediascanner_8h.html#30aa1e83907fc1049d2adccb28eef489">lightmediascanner.h</a>
+, <a class="el" href="lightmediascanner__process_8c.html#36d624baae0531c20e716c88a82e0aaf">lightmediascanner_process.c</a>
+<li>lms_string_size_strip_and_free()
+: <a class="el" href="lightmediascanner__utils_8c.html#9ed157dee5c16f4c62c5ae6e281580cf">lightmediascanner_utils.c</a>
+, <a class="el" href="lightmediascanner__utils_8h.html#5a7e5da69500a12f447a77177dbb6e0d">lightmediascanner_utils.h</a>
 <li>lms_strstrip()
 : <a class="el" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">lightmediascanner_utils.c</a>
 , <a class="el" href="lightmediascanner__utils_8h.html#281568969e526a7bdf687da4d1cc75ab">lightmediascanner_utils.h</a>
+<li>lms_strstrip_and_free()
+: <a class="el" href="lightmediascanner__utils_8c.html#45d15c8bfeddaef0d5b1d0bd9ecc0c79">lightmediascanner_utils.c</a>
+, <a class="el" href="lightmediascanner__utils_8h.html#01cee33e2410ae7081905a4e06d890cc">lightmediascanner_utils.h</a>
 <li>sqlite3_clear_bindings()
 : <a class="el" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00">lightmediascanner_db_common.c</a>
 <li>sqlite3_prepare_v2()
 <h3><a class="anchor" name="index_w">- w -</a></h3><ul>
 <li>lms_which_extension()
 : <a class="el" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">lightmediascanner_utils.c</a>
-, <a class="el" href="lightmediascanner__utils_8h.html#92c63007e7d04f626cafc6eef48f7022">lightmediascanner_utils.h</a>
+, <a class="el" href="lightmediascanner__utils_8h.html#7dfc23066442e00fff5cbe77e6f1426e">lightmediascanner_utils.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 63bdbec..a5f87c1 100644 (file)
@@ -4,33 +4,40 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 &nbsp;
 <p>
 <ul>
+<li>check_row_callback_t
+: <a class="el" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">lightmediascanner_private.h</a>
 <li>lms_charset_conv_t
 : <a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lightmediascanner_charset_conv.h</a>
 <li>lms_db_audio_t
 : <a class="el" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lightmediascanner_db.h</a>
 <li>lms_db_video_t
 : <a class="el" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lightmediascanner_db.h</a>
+<li>lms_free_callback_t
+: <a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lightmediascanner.h</a>
 <li>lms_plugin_close_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lightmediascanner_plugin.h</a>
 <li>lms_plugin_finish_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lightmediascanner_plugin.h</a>
 <li>lms_plugin_match_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">lightmediascanner_plugin.h</a>
 <li>lms_plugin_parse_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lightmediascanner_plugin.h</a>
 <li>lms_plugin_setup_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lightmediascanner_plugin.h</a>
 <li>lms_plugin_start_fn_t
-: <a class="el" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lightmediascanner_plugin.h</a>
+: <a class="el" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lightmediascanner_plugin.h</a>
 <li>lms_plugin_t
 : <a class="el" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">lightmediascanner.h</a>
+<li>lms_progress_callback_t
+: <a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lightmediascanner.h</a>
+<li>process_file_callback_t
+: <a class="el" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">lightmediascanner_private.h</a>
 <li>lms_t
 : <a class="el" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lightmediascanner.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 05ed305..a21d16b 100644 (file)
@@ -4,38 +4,44 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li class="current"><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="globals.html"><span>All</span></a></li>
-    <li><a href="globals_func.html"><span>Functions</span></a></li>
-    <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
-    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
-    <li><a href="globals_defs.html"><span>Defines</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 &nbsp;
 <p>
 <ul>
 <li>lms_db_table_updater_t
-: <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lightmediascanner_db_private.h</a>
+: <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lightmediascanner_db_private.h</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index ee8e8bc..1f7c6e4 100644 (file)
@@ -1,23 +1,23 @@
 digraph G
 {
   bgcolor="transparent";
-  edge [fontname="FreeSans.ttf",fontsize=10,labelfontname="FreeSans.ttf",labelfontsize=10];
-  node [fontname="FreeSans.ttf",fontsize=10,shape=record];
-  Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",fillcolor="grey75",style="filled" fontcolor="black"];
-  Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
-  Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPublicBase.html"];
-  Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
-  Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="red",URL="$classTruncated.html"];
-  Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="FreeSans.ttf"];
-  Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classProtectedBase.html"];
-  Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="FreeSans.ttf"];
-  Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPrivateBase.html"];
-  Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
-  Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="grey75"];
-  Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
-  Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"];
-  Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="FreeSans.ttf"];
-  Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"];
-  Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="FreeSans.ttf"];
-  Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classUsed.html"];
+  edge [fontname="FreeSans",fontsize=10,labelfontname="FreeSans",labelfontsize=10];
+  node [fontname="FreeSans",fontsize=10,shape=record];
+  Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",fillcolor="grey75",style="filled" fontcolor="black"];
+  Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans"];
+  Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPublicBase.html"];
+  Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans"];
+  Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="red",URL="$classTruncated.html"];
+  Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="FreeSans"];
+  Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classProtectedBase.html"];
+  Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="FreeSans"];
+  Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPrivateBase.html"];
+  Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans"];
+  Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="grey75"];
+  Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans"];
+  Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"];
+  Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="FreeSans"];
+  Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"];
+  Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="FreeSans"];
+  Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classUsed.html"];
 }
index 671a92e..0a26caa 100644 (file)
@@ -4,15 +4,18 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>Graph Legend</h1>This page explains how to interpret the graphs that are generated by doxygen.<p>
 Consider the following example: <div class="fragment"><pre class="fragment"><span class="comment">/*! Invisible class because of truncation */</span>
 <span class="keyword">class </span>Invisible { };
@@ -75,8 +78,9 @@ A purple dashed arrow is used if a class is contained or used by another class.
 <li>
 A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 0ef772a..537bf12 100644 (file)
Binary files a/www/api/graph_legend.png and b/www/api/graph_legend.png differ
index 4c85d45..82ae031 100644 (file)
@@ -4,15 +4,18 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>User-API</h1><table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
@@ -64,7 +67,7 @@ Functions for library users. <hr><h2>Function Documentation</h2>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -81,14 +84,18 @@ All database text strings are in UTF-8, so one needs to register new encodings i
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00480">480</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00079">lms::cs_conv</a>, and <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00145">lms_charset_conv_add()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00451">451</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00067">lms::cs_conv</a>, and <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00098">lms_charset_conv_add()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph.png" border="0" usemap="#group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph.png" border="0" usemap="#group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph_map" alt=""></center>
 <map name="group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph_map">
-<area shape="rect" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000" title="lms_charset_conv_add" alt="" coords="165,5,309,32"></map>
+<area shape="rect" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000" title="lms_charset_conv_add" alt="" coords="189,5,363,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -111,7 +118,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__API_g4
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -128,14 +135,18 @@ All database text strings are in UTF-8, so one needs to register new encodings i
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00503">503</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00079">lms::cs_conv</a>, and <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00211">lms_charset_conv_del()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00474">474</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00067">lms::cs_conv</a>, and <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00164">lms_charset_conv_del()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph.png" border="0" usemap="#group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph.png" border="0" usemap="#group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph_map" alt=""></center>
 <map name="group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph_map">
-<area shape="rect" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4" title="lms_charset_conv_del" alt="" coords="164,5,303,32"></map>
+<area shape="rect" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4" title="lms_charset_conv_del" alt="" coords="185,5,353,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -149,7 +160,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__API_g0
           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lms</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -164,16 +175,20 @@ Free existing Light Media Scanner instance.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00157">157</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00079">lms::cs_conv</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00084">lms::data</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00080">lms::db_path</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00085">lms::free_data</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00088">lms::is_processing</a>, <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00112">lms_charset_conv_free()</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>, and <a class="el" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">lms::progress</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00634">lms_create_slave()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00157">157</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00067">lms::cs_conv</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00068">lms::db_path</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00071">lms::is_processing</a>, <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00067">lms_charset_conv_free()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00066">lms::n_parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00604">lms_create_slave()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph.png" border="0" usemap="#group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph.png" border="0" usemap="#group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph_map" alt=""></center>
 <map name="group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph_map">
-<area shape="rect" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="124,5,268,32"></map>
+<area shape="rect" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="135,5,311,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -187,7 +202,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__API_gf
           <td class="paramtype">const <a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lms</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -203,10 +218,10 @@ This is used as an optimization to database access: doing database commits take
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>(unsigned int)-1 on error, value otherwise. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00404">404</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00070">lms::commit_interval</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00433">433</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00087">lms::commit_interval</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="g4098d31de667a895095fc8d4d9bc10c0"></a><!-- doxytag: member="lightmediascanner.c::lms_get_db_path" ref="g4098d31de667a895095fc8d4d9bc10c0" args="(const lms_t *lms)" -->
@@ -219,7 +234,7 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00070"
           <td class="paramtype">const <a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lms</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -234,10 +249,10 @@ Get the database path given at creation time.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>path to database. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00340">340</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00068">lms::db_path</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00369">369</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00080">lms::db_path</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="g973c6c7b66f4fdd6f4f776a36e742d33"></a><!-- doxytag: member="lightmediascanner.c::lms_get_slave_timeout" ref="g973c6c7b66f4fdd6f4f776a36e742d33" args="(const lms_t *lms)" -->
@@ -250,7 +265,7 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00068"
           <td class="paramtype">const <a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lms</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -266,10 +281,10 @@ If a slave takes more than this amount of milliseconds, it will be killed and th
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>-1 on error or time in milliseconds otherwise. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00362">362</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00069">lms::slave_timeout</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00391">391</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00081">lms::slave_timeout</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="g8c594bed751d504965b5cc0c7e93fb71"></a><!-- doxytag: member="lightmediascanner.c::lms_is_processing" ref="g8c594bed751d504965b5cc0c7e93fb71" args="(const lms_t *lms)" -->
@@ -282,14 +297,14 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00069"
           <td class="paramtype">const <a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lms</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Checks if Light Media Scanner is being used in a processing operation lile <a class="el" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lms_process()</a> or <a class="el" href="lightmediascanner_8h.html#890f1af4c54c88a63abdbeff5ecd49a3">lms_check()</a>.<p>
+Checks if Light Media Scanner is being used in a processing operation lile <a class="el" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lms_process()</a> or <a class="el" href="lightmediascanner_8h.html#5b70063cf19648de70bb145404aa3d0b">lms_check()</a>.<p>
 <dl compact><dt><b>Parameters:</b></dt><dd>
   <table border="0" cellspacing="2" cellpadding="0">
     <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>
@@ -297,10 +312,10 @@ Checks if Light Media Scanner is being used in a processing operation lile <a cl
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if it is processing, 0 if it's not, -1 on error. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00321">321</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00071">lms::is_processing</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00350">350</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00088">lms::is_processing</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="g982939bdd2aeb664b5cf7a50b67c1030"></a><!-- doxytag: member="lightmediascanner.c::lms_new" ref="g982939bdd2aeb664b5cf7a50b67c1030" args="(const char *db_path)" -->
@@ -313,7 +328,7 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00071"
           <td class="paramtype">const char *&nbsp;</td>
           <td class="paramname"> <em>db_path</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -328,14 +343,18 @@ Create new Light Media Scanner instance.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>allocated data on success or NULL on failure. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00119">119</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00087">lms::commit_interval</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00079">lms::cs_conv</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00080">lms::db_path</a>, <a class="el" href="lightmediascanner_8c-source.html#l00035">DEFAULT_COMMIT_INTERVAL</a>, <a class="el" href="lightmediascanner_8c-source.html#l00034">DEFAULT_SLAVE_TIMEOUT</a>, <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00112">lms_charset_conv_free()</a>, <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00101">lms_charset_conv_new()</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00081">lms::slave_timeout</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00119">119</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00070">lms::commit_interval</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00067">lms::cs_conv</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00068">lms::db_path</a>, <a class="el" href="lightmediascanner_8c-source.html#l00035">DEFAULT_COMMIT_INTERVAL</a>, <a class="el" href="lightmediascanner_8c-source.html#l00034">DEFAULT_SLAVE_TIMEOUT</a>, <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00067">lms_charset_conv_free()</a>, <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00026">lms_charset_conv_new()</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00069">lms::slave_timeout</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph.png" border="0" usemap="#group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph.png" border="0" usemap="#group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph_map" alt=""></center>
 <map name="group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph_map">
-<area shape="rect" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="124,5,268,32"><area shape="rect" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab" title="lms_charset_conv_new" alt="" coords="123,56,269,83"></map>
+<area shape="rect" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="135,5,311,32"><area shape="rect" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab" title="lms_charset_conv_new" alt="" coords="135,56,311,83"><area shape="rect" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15" title="lms_charset_conv_new_full" alt="" coords="361,56,564,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -358,7 +377,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__API_g9
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -374,12 +393,12 @@ Add <a class="el" href="structparser.html">parser</a> plugin given it's shared o
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success the LMS handle to plugin is returned, NULL on error. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00190">190</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00071">lms::is_processing</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00066">lms::n_parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00235">lms_parser_find_and_add()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00219">219</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00088">lms::is_processing</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>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00071">parser::plugin</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00264">lms_parser_find_and_add()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="g1da5e5f834e0289ea49a0fbc2280feda"></a><!-- doxytag: member="lightmediascanner.c::lms_parser_del" ref="g1da5e5f834e0289ea49a0fbc2280feda" args="(lms_t *lms, lms_plugin_t *handle)" -->
@@ -401,7 +420,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00235">lms_p
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -416,14 +435,18 @@ Delete previously added <a class="el" href="structparser.html">parser</a>, makin
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00318">318</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00088">lms::is_processing</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__private_8h-source.html#l00077">lms::parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00071">parser::plugin</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00289">289</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00071">lms::is_processing</a>, <a class="el" href="lightmediascanner_8c-source.html#l00249">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00066">lms::n_parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00059">parser::plugin</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph.png" border="0" usemap="#group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph.png" border="0" usemap="#group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph_map" alt=""></center>
 <map name="group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph_map">
-<area shape="rect" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="159,5,281,32"></map>
+<area shape="rect" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="175,5,319,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -446,7 +469,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__API_g1
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -463,14 +486,18 @@ This will look at default plugin path by the file named <code>name</code> (plus
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success the LMS handle to plugin is returned, NULL on error. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00264">264</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner_8c-source.html#l00219">lms_parser_add()</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00073">parser::so_path</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00235">235</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner_8c-source.html#l00190">lms_parser_add()</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00061">parser::so_path</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph.png" border="0" usemap="#group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph.png" border="0" usemap="#group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph_map" alt=""></center>
 <map name="group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph_map">
-<area shape="rect" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588" title="lms_parser_add" alt="" coords="215,5,319,32"></map>
+<area shape="rect" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588" title="lms_parser_add" alt="" coords="241,5,364,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -493,7 +520,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__API_g7
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -509,10 +536,10 @@ This is used as an optimization to database access: doing database commits take
   </table>
 </dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00427">427</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00070">lms::commit_interval</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00456">456</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00087">lms::commit_interval</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="g68ac6273965bdeb25795dd4c50777b4e"></a><!-- doxytag: member="lightmediascanner.c::lms_set_slave_timeout" ref="g68ac6273965bdeb25795dd4c50777b4e" args="(lms_t *lms, int ms)" -->
@@ -534,7 +561,7 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00070"
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -550,14 +577,15 @@ If a slave takes more than this amount of milliseconds, it will be killed and th
   </table>
 </dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00382">382</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00069">lms::slave_timeout</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00411">411</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00081">lms::slave_timeout</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 134eff5..4d64eb5 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4" title="lms_charset_conv_del" alt="" coords="164,5,303,32">
+<area shape="rect" href="$lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4" title="lms_charset_conv_del" alt="" coords="185,5,353,32">
index 5513671..59ae5fb 100644 (file)
Binary files a/www/api/group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph.png and b/www/api/group__LMS__API_g0b427b8b60957e29a0e504c10c5356b0_cgraph.png differ
index 40497ff..aa3c10c 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="159,5,281,32">
+<area shape="rect" href="$lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="175,5,319,32">
index 5d939ac..985ef0b 100644 (file)
Binary files a/www/api/group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph.png and b/www/api/group__LMS__API_g1da5e5f834e0289ea49a0fbc2280feda_cgraph.png differ
index b0ba168..690d5cd 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000" title="lms_charset_conv_add" alt="" coords="165,5,309,32">
+<area shape="rect" href="$lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000" title="lms_charset_conv_add" alt="" coords="189,5,363,32">
index 3d397b9..e11fa6f 100644 (file)
Binary files a/www/api/group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph.png and b/www/api/group__LMS__API_g4fd56e209d415b27466274726cc7d59f_cgraph.png differ
index 7fe6153..a4980e8 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588" title="lms_parser_add" alt="" coords="215,5,319,32">
+<area shape="rect" href="$group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588" title="lms_parser_add" alt="" coords="241,5,364,32">
index 81d9b72..c041e88 100644 (file)
Binary files a/www/api/group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph.png and b/www/api/group__LMS__API_g74b81422ff46a46b4b0fc44e8709ecee_cgraph.png differ
index 3ce52c7..c5f82e0 100644 (file)
@@ -1,2 +1,3 @@
-<area shape="rect" href="$group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="124,5,268,32">
-<area shape="rect" href="$group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab" title="lms_charset_conv_new" alt="" coords="123,56,269,83">
+<area shape="rect" href="$group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="135,5,311,32">
+<area shape="rect" href="$group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab" title="lms_charset_conv_new" alt="" coords="135,56,311,83">
+<area shape="rect" href="$group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15" title="lms_charset_conv_new_full" alt="" coords="361,56,564,83">
index 98ce4bc..341a0fb 100644 (file)
Binary files a/www/api/group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph.png and b/www/api/group__LMS__API_g982939bdd2aeb664b5cf7a50b67c1030_cgraph.png differ
index ec48efb..912979b 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="124,5,268,32">
+<area shape="rect" href="$group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="135,5,311,32">
index cffbc70..ed29b82 100644 (file)
Binary files a/www/api/group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph.png and b/www/api/group__LMS__API_gf15f3b0f7de2113155a360df989b7687_cgraph.png differ
index 61cf588..7148ef2 100644 (file)
@@ -4,21 +4,26 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>Charset Conversion</h1><table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_charset_conv&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_charset_conv&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lms_charset_conv_new_full</a> (int use_check, int use_fallback) GNUC_MALLOC GNUC_WARN_UNUSED_RESULT</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lms_charset_conv_new</a> (void) GNUC_MALLOC GNUC_WARN_UNUSED_RESULT</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc) GNUC_NON_NULL(1)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#gd843f59abac208048f13437534d589fc">lms_charset_conv</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, char **p_str, unsigned int *p_len) GNUC_NON_NULL(1</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g9a610040a6380c745277effc5c4c9112">lms_charset_conv_force</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, char **p_str, unsigned int *p_len) GNUC_NON_NULL(1</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int API <br>
-int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g3d6c281f7b3cf9fb0c299c0abe03f681">lms_charset_conv_check</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const char *str, unsigned int len) GNUC_NON_NULL(1</td></tr>
+int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#gbc8903e67c3c7eefa902cbb2bd5e3338">lms_charset_conv_check</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const char *str, unsigned int len) GNUC_NON_NULL(1</td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
@@ -48,8 +55,8 @@ Utilities to convert strings to UTF-8, the charset used in database. <hr><h2>Typ
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00072">72</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00072">72</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -78,7 +85,7 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -107,7 +114,7 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -117,12 +124,12 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
 
 </div>
 </div><p>
-<a class="anchor" name="g3d6c281f7b3cf9fb0c299c0abe03f681"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::lms_charset_conv_check" ref="g3d6c281f7b3cf9fb0c299c0abe03f681" args="(lms_charset_conv_t *lcc, const char *str, unsigned int len) GNUC_NON_NULL(1" -->
+<a class="anchor" name="gbc8903e67c3c7eefa902cbb2bd5e3338"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::lms_charset_conv_check" ref="gbc8903e67c3c7eefa902cbb2bd5e3338" args="(lms_charset_conv_t *lcc, const char *str, unsigned int len) GNUC_NON_NULL(1" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">API int API int API int API int lms_charset_conv_check           </td>
+          <td class="memname">API int API int API int API int API int lms_charset_conv_check           </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lcc</em>, </td>
@@ -142,7 +149,7 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -171,7 +178,42 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="g9a610040a6380c745277effc5c4c9112"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::lms_charset_conv_force" ref="g9a610040a6380c745277effc5c4c9112" args="(lms_charset_conv_t *lcc, char **p_str, unsigned int *p_len) GNUC_NON_NULL(1" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">API int API int API int API int lms_charset_conv_force           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lcc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>p_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int *&nbsp;</td>
+          <td class="paramname"> <em>p_len</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -191,7 +233,7 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
           <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lcc</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -205,10 +247,10 @@ Free existing charset conversion tool.<p>
   </table>
 </dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00067">67</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00112">112</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="g0120c222a55e6d7d9bb24300300561ab"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::lms_charset_conv_new" ref="g0120c222a55e6d7d9bb24300300561ab" args="(void) GNUC_MALLOC GNUC_WARN_UNUSED_RESULT" -->
@@ -221,7 +263,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_f
           <td class="paramtype">void&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -232,14 +274,62 @@ Create a new charset conversion tool.<p>
 Conversion tool will try to convert provided strings to UTF-8, just need to register known charsets with <a class="el" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add()</a> and then call <a class="el" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv()</a>.<p>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>newly allocated conversion tool or NULL on error. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00101">101</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00047">lms_charset_conv_new_full()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00026">26</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.png" border="0" usemap="#group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph_map" alt=""></center>
+<map name="group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph_map">
+<area shape="rect" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15" title="lms_charset_conv_new_full" alt="" coords="233,5,436,32"></map>
+</div>
+
+</div>
+</div><p>
+<a class="anchor" name="g893421821eacaa0fd2020c872361af15"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::lms_charset_conv_new_full" ref="g893421821eacaa0fd2020c872361af15" args="(int use_check, int use_fallback) GNUC_MALLOC GNUC_WARN_UNUSED_RESULT" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">API <a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a>* lms_charset_conv_new_full           </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>use_check</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>use_fallback</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.
+Create a new charset conversion tool controlling its behavior.<p>
+Conversion tool will try to convert provided strings to UTF-8, just need to register known charsets with <a class="el" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add()</a> and then call <a class="el" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv()</a>.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>newly allocated conversion tool or NULL on error. </dd></dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00047">47</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00101">lms_charset_conv_new()</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
diff --git a/www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.map b/www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.map
new file mode 100644 (file)
index 0000000..69c79fe
--- /dev/null
@@ -0,0 +1 @@
+<area shape="rect" href="$group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15" title="lms_charset_conv_new_full" alt="" coords="233,5,436,32">
diff --git a/www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.md5 b/www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.md5
new file mode 100644 (file)
index 0000000..dec7edd
--- /dev/null
@@ -0,0 +1 @@
+e4e46fc92dd867986635c45d243a375a
\ No newline at end of file
diff --git a/www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.png b/www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.png
new file mode 100644 (file)
index 0000000..9d1666b
Binary files /dev/null and b/www/api/group__LMS__CHARSET_g0120c222a55e6d7d9bb24300300561ab_cgraph.png differ
index c4f20f4..c0e005f 100644 (file)
@@ -4,15 +4,18 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>DataBase-API</h1><table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__playlist__info.html">lms_playlist_info</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_db_image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_db_image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_db_audio&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_db_audio&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_db_video&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_db_video&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_db_playlist&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_db_playlist&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lms_db_image_new</a> (sqlite3 *db) GNUC_NON_NULL(1)</td></tr>
@@ -84,8 +87,8 @@ Although Light Media Scanner uses SQLite3 and doesn't try to hide it from plugin
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00097">97</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00097">97</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="gf09fb00e8cf6c7d5f76f257ecdea11a6"></a><!-- doxytag: member="lightmediascanner_db.h::lms_db_image_t" ref="gf09fb00e8cf6c7d5f76f257ecdea11a6" args="" -->
@@ -101,8 +104,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00078">78</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00078">78</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="g9901260afad69e602336a4e567e386c3"></a><!-- doxytag: member="lightmediascanner_db.h::lms_db_playlist_t" ref="g9901260afad69e602336a4e567e386c3" args="" -->
@@ -118,8 +121,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00125">125</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00125">125</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="gc2e0d2164f90e1ad3c78e05a4d341ec8"></a><!-- doxytag: member="lightmediascanner_db.h::lms_db_video_t" ref="gc2e0d2164f90e1ad3c78e05a4d341ec8" args="" -->
@@ -135,8 +138,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l001
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00111">111</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00111">111</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -159,7 +162,7 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l001
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -179,7 +182,7 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l001
           <td class="paramtype"><a class="el" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lda</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -196,16 +199,20 @@ This is usually called from plugin's <b>finish()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00402">402</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00437">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00113">lms_db_finalize_stmt()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00297">lms_db_audio_new()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00352">352</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00417">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00093">lms_db_finalize_stmt()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00247">lms_db_audio_new()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph.png" border="0" usemap="#group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph.png" border="0" usemap="#group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="188,5,308,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="180,56,316,83"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="208,5,349,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="197,56,360,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -219,7 +226,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g75
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -236,14 +243,18 @@ This is usually called from plugin's <b>setup()</b> callback with the <code>db</
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>DB access tool handle. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00297">297</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00402">lms_db_audio_free()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">lms_db_cache_add()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00462">lms_db_cache_get()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00247">247</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00352">lms_db_audio_free()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">lms_db_cache_add()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00442">lms_db_cache_get()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph.png" border="0" usemap="#group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph.png" border="0" usemap="#group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph_map">
-<area shape="rect" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d" title="lms_db_audio_free" alt="" coords="180,31,303,57"><area shape="rect" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="180,81,303,108"><area shape="rect" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="181,132,301,159"><area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="361,5,481,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="353,56,489,83"></map>
+<area shape="rect" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d" title="lms_db_audio_free" alt="" coords="199,31,343,57"><area shape="rect" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="197,81,344,108"><area shape="rect" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="197,132,344,159"><area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="403,5,544,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="392,56,555,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -257,7 +268,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g09
           <td class="paramtype"><a class="el" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lda</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -274,14 +285,18 @@ This is usually called from plugin's <b>start()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00341">341</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00291">291</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph.png" border="0" usemap="#group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph.png" border="0" usemap="#group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="183,5,321,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="372,5,495,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="205,5,373,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="423,5,569,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -304,7 +319,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g39
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -324,7 +339,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g39
           <td class="paramtype"><a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *&nbsp;</td>
           <td class="paramname"> <em>ldi</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -341,16 +356,20 @@ This is usually called from plugin's <b>finish()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__image_8c-source.html#l00193">193</a> of file <a class="el" href="lightmediascanner__db__image_8c-source.html">lightmediascanner_db_image.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00437">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00113">lms_db_finalize_stmt()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__image_8c-source.html#l00117">lms_db_image_new()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__image_8c-source.html#l00173">173</a> of file <a class="el" href="lightmediascanner__db__image_8c-source.html">lightmediascanner_db_image.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00417">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00093">lms_db_finalize_stmt()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__image_8c-source.html#l00097">lms_db_image_new()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph.png" border="0" usemap="#group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph.png" border="0" usemap="#group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="191,5,311,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="183,56,319,83"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="216,5,357,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="205,56,368,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -364,7 +383,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g51
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -381,14 +400,18 @@ This is usually called from plugin's <b>setup()</b> callback with the <code>db</
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>DB access tool handle. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__image_8c-source.html#l00117">117</a> of file <a class="el" href="lightmediascanner__db__image_8c-source.html">lightmediascanner_db_image.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00462">lms_db_cache_get()</a>, and <a class="el" href="lightmediascanner__db__image_8c-source.html#l00193">lms_db_image_free()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__image_8c-source.html#l00097">97</a> of file <a class="el" href="lightmediascanner__db__image_8c-source.html">lightmediascanner_db_image.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00442">lms_db_cache_get()</a>, and <a class="el" href="lightmediascanner__db__image_8c-source.html#l00173">lms_db_image_free()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph.png" border="0" usemap="#group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph.png" border="0" usemap="#group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="187,5,309,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="188,56,308,83"><area shape="rect" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6" title="lms_db_image_free" alt="" coords="185,107,311,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="369,81,489,108"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="361,132,497,159"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="208,5,355,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="208,56,355,83"><area shape="rect" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6" title="lms_db_image_free" alt="" coords="207,107,356,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="416,81,557,108"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="405,132,568,159"></map>
+</div>
 
 </div>
 </div><p>
@@ -402,7 +425,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g3e
           <td class="paramtype"><a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *&nbsp;</td>
           <td class="paramname"> <em>ldi</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -419,14 +442,18 @@ This is usually called from plugin's <b>start()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__image_8c-source.html#l00161">161</a> of file <a class="el" href="lightmediascanner__db__image_8c-source.html">lightmediascanner_db_image.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__image_8c-source.html#l00141">141</a> of file <a class="el" href="lightmediascanner__db__image_8c-source.html">lightmediascanner_db_image.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph.png" border="0" usemap="#group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph.png" border="0" usemap="#group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="185,5,324,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="375,5,497,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="211,5,379,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="428,5,575,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -449,7 +476,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g66
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -469,7 +496,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g66
           <td class="paramtype"><a class="el" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *&nbsp;</td>
           <td class="paramname"> <em>ldp</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -486,16 +513,20 @@ This is usually called from plugin's <b>finish()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00185">185</a> of file <a class="el" href="lightmediascanner__db__playlist_8c-source.html">lightmediascanner_db_playlist.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00437">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00113">lms_db_finalize_stmt()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00111">lms_db_playlist_new()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00165">165</a> of file <a class="el" href="lightmediascanner__db__playlist_8c-source.html">lightmediascanner_db_playlist.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00417">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00093">lms_db_finalize_stmt()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00091">lms_db_playlist_new()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph.png" border="0" usemap="#group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph.png" border="0" usemap="#group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="196,5,316,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="188,56,324,83"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="221,5,363,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="211,56,373,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -509,7 +540,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_ge0
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -526,14 +557,18 @@ This is usually called from plugin's <b>setup()</b> callback with the <code>db</
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>DB access tool handle. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00111">111</a> of file <a class="el" href="lightmediascanner__db__playlist_8c-source.html">lightmediascanner_db_playlist.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00462">lms_db_cache_get()</a>, and <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00185">lms_db_playlist_free()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00091">91</a> of file <a class="el" href="lightmediascanner__db__playlist_8c-source.html">lightmediascanner_db_playlist.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00442">lms_db_cache_get()</a>, and <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00165">lms_db_playlist_free()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph.png" border="0" usemap="#group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph.png" border="0" usemap="#group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="195,5,317,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="196,56,316,83"><area shape="rect" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789" title="lms_db_playlist_free" alt="" coords="189,107,323,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="380,81,500,108"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="372,132,508,159"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="216,5,363,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="216,56,363,83"><area shape="rect" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789" title="lms_db_playlist_free" alt="" coords="212,107,367,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="427,81,568,108"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="416,132,579,159"></map>
+</div>
 
 </div>
 </div><p>
@@ -547,7 +582,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g37
           <td class="paramtype"><a class="el" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *&nbsp;</td>
           <td class="paramname"> <em>ldp</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -564,14 +599,18 @@ This is usually called from plugin's <b>start()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00155">155</a> of file <a class="el" href="lightmediascanner__db__playlist_8c-source.html">lightmediascanner_db_playlist.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00135">135</a> of file <a class="el" href="lightmediascanner__db__playlist_8c-source.html">lightmediascanner_db_playlist.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph.png" border="0" usemap="#group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph.png" border="0" usemap="#group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="191,5,329,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="380,5,503,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="216,5,384,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="433,5,580,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -594,7 +633,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g9a
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -614,7 +653,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g9a
           <td class="paramtype"><a class="el" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *&nbsp;</td>
           <td class="paramname"> <em>ldv</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -631,16 +670,20 @@ This is usually called from plugin's <b>finish()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__video_8c-source.html#l00197">197</a> of file <a class="el" href="lightmediascanner__db__video_8c-source.html">lightmediascanner_db_video.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00437">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00113">lms_db_finalize_stmt()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__video_8c-source.html#l00124">lms_db_video_new()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__video_8c-source.html#l00177">177</a> of file <a class="el" href="lightmediascanner__db__video_8c-source.html">lightmediascanner_db_video.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00417">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00093">lms_db_finalize_stmt()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__video_8c-source.html#l00104">lms_db_video_new()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph.png" border="0" usemap="#group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph.png" border="0" usemap="#group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="188,5,308,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="180,56,316,83"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="211,5,352,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="200,56,363,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -654,7 +697,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_g6b
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -671,14 +714,18 @@ This is usually called from plugin's <b>setup()</b> callback with the <code>db</
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>DB access tool handle. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__video_8c-source.html#l00124">124</a> of file <a class="el" href="lightmediascanner__db__video_8c-source.html">lightmediascanner_db_video.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00462">lms_db_cache_get()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00197">lms_db_video_free()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__video_8c-source.html#l00104">104</a> of file <a class="el" href="lightmediascanner__db__video_8c-source.html">lightmediascanner_db_video.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00442">lms_db_cache_get()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00177">lms_db_video_free()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph.png" border="0" usemap="#group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph.png" border="0" usemap="#group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="180,5,303,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="181,56,301,83"><area shape="rect" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0" title="lms_db_video_free" alt="" coords="180,107,303,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="361,81,481,108"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="353,132,489,159"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="200,5,347,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="200,56,347,83"><area shape="rect" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0" title="lms_db_video_free" alt="" coords="201,107,345,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="405,81,547,108"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="395,132,557,159"></map>
+</div>
 
 </div>
 </div><p>
@@ -692,7 +739,7 @@ Here is the call graph for this function:<p><center><img src="group__LMS__DB_ga2
           <td class="paramtype"><a class="el" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *&nbsp;</td>
           <td class="paramname"> <em>ldv</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -709,19 +756,24 @@ This is usually called from plugin's <b>start()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__video_8c-source.html#l00168">168</a> of file <a class="el" href="lightmediascanner__db__video_8c-source.html">lightmediascanner_db_video.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__video_8c-source.html#l00148">148</a> of file <a class="el" href="lightmediascanner__db__video_8c-source.html">lightmediascanner_db_video.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph.png" border="0" usemap="#group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph.png" border="0" usemap="#group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph_map" alt=""></center>
 <map name="group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="183,5,321,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="372,5,495,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="205,5,373,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="423,5,569,32"></map>
+</div>
 
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 59402f2..226887f 100644 (file)
@@ -1,5 +1,5 @@
-<area shape="rect" href="$group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d" title="lms_db_audio_free" alt="" coords="180,31,303,57">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="180,81,303,108">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="181,132,301,159">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="361,5,481,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="353,56,489,83">
+<area shape="rect" href="$group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d" title="lms_db_audio_free" alt="" coords="199,31,343,57">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="197,81,344,108">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="197,132,344,159">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="403,5,544,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="392,56,555,83">
index e90694c..21af084 100644 (file)
@@ -1 +1 @@
-eb02e47b6c3da31a0c666fdb72746f9c
\ No newline at end of file
+13eb71f868e6453a6dea93d778d3dd89
\ No newline at end of file
index 67851d3..70f0e30 100644 (file)
Binary files a/www/api/group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph.png and b/www/api/group__LMS__DB_g09c4349148be1bdf02f069f8acb191ee_cgraph.png differ
index ed03201..2dabc30 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="183,5,321,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="372,5,495,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="205,5,373,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="423,5,569,32">
index 9de84ff..d9771c1 100644 (file)
@@ -1 +1 @@
-075f37f351138796cb2745deda6fbe82
\ No newline at end of file
+e37577f71f63a324ccd08aefc2ebf57f
\ No newline at end of file
index d3bcc0f..dca54a6 100644 (file)
Binary files a/www/api/group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph.png and b/www/api/group__LMS__DB_g0ebc0dd37b1c9bcaf7741231a411ade2_cgraph.png differ
index 235482b..196173d 100644 (file)
@@ -1,5 +1,5 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="195,5,317,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="196,56,316,83">
-<area shape="rect" href="$group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789" title="lms_db_playlist_free" alt="" coords="189,107,323,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="380,81,500,108">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="372,132,508,159">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="216,5,363,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="216,56,363,83">
+<area shape="rect" href="$group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789" title="lms_db_playlist_free" alt="" coords="212,107,367,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="427,81,568,108">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="416,132,579,159">
index bc848e7..1f7637a 100644 (file)
@@ -1 +1 @@
-959c572e318a9c938cc52001b61635f9
\ No newline at end of file
+3a53c479c1d39b805019b44147a65338
\ No newline at end of file
index faebe0b..d540bde 100644 (file)
Binary files a/www/api/group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph.png and b/www/api/group__LMS__DB_g379e3bbb3f4a87b1d389df587dec0875_cgraph.png differ
index ed03201..2dabc30 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="183,5,321,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="372,5,495,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="205,5,373,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="423,5,569,32">
index acc7761..bf0f844 100644 (file)
@@ -1 +1 @@
-8d4f3544e83994d5316abfe3c1bcc1b1
\ No newline at end of file
+553d92ee168637c99c6137d1c4ad2a82
\ No newline at end of file
index 4cc557c..0324879 100644 (file)
Binary files a/www/api/group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph.png and b/www/api/group__LMS__DB_g39731623b0bc5436858820a94487fdc1_cgraph.png differ
index c2e3648..a634f8c 100644 (file)
@@ -1,5 +1,5 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="187,5,309,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="188,56,308,83">
-<area shape="rect" href="$group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6" title="lms_db_image_free" alt="" coords="185,107,311,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="369,81,489,108">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="361,132,497,159">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="208,5,355,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="208,56,355,83">
+<area shape="rect" href="$group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6" title="lms_db_image_free" alt="" coords="207,107,356,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="416,81,557,108">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="405,132,568,159">
index 78a6860..843b640 100644 (file)
@@ -1 +1 @@
-fbd6dc8be19d98f81704a2748ad68f34
\ No newline at end of file
+61d460bf92eac8be6f02a7b9dbfeca6b
\ No newline at end of file
index c9374dd..5609cd0 100644 (file)
Binary files a/www/api/group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph.png and b/www/api/group__LMS__DB_g3eac8dbebc0a847b63702e531872e2e7_cgraph.png differ
index 8623e5b..3363c09 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="191,5,311,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="183,56,319,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="216,5,357,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="205,56,368,83">
index 4e438bb..84605b2 100644 (file)
@@ -1 +1 @@
-42ec26c4b56e9b61bc35de5035cbba4e
\ No newline at end of file
+ee16b60c16586c1d3717f0adfc144db4
\ No newline at end of file
index ac9f66d..e4cce81 100644 (file)
Binary files a/www/api/group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph.png and b/www/api/group__LMS__DB_g5160a3f620f1ebd562b6ec0add0f65a6_cgraph.png differ
index 581a45c..746955e 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="185,5,324,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="375,5,497,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="211,5,379,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="428,5,575,32">
index 2b3ca44..3fa2479 100644 (file)
@@ -1 +1 @@
-931cc66356963e2fccc1aeb2eb6ece33
\ No newline at end of file
+ec558774a9375458a7f3db6756d9b5fe
\ No newline at end of file
index 7f6855f..d1919fd 100644 (file)
Binary files a/www/api/group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph.png and b/www/api/group__LMS__DB_g66dc91038d76fa96d9feaaa119e2ae56_cgraph.png differ
index b4cf9be..e1fc814 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="188,5,308,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="180,56,316,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="211,5,352,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="200,56,363,83">
index 63f4440..443fa90 100644 (file)
@@ -1 +1 @@
-1616d5ebff70eb7e63ec28d516875096
\ No newline at end of file
+eb5991ccc32f9b5dd8a48b2f67d2f76b
\ No newline at end of file
index 68ebaec..47ae463 100644 (file)
Binary files a/www/api/group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph.png and b/www/api/group__LMS__DB_g6be7c0922e76acc29542643424cfeac0_cgraph.png differ
index b4cf9be..32b823f 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="188,5,308,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="180,56,316,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="208,5,349,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="197,56,360,83">
index 38b2120..43dc249 100644 (file)
@@ -1 +1 @@
-b5fdb9b9d434a7563a080c2d0629345c
\ No newline at end of file
+880b1fefffc5e03f718362ad1924f9f9
\ No newline at end of file
index a02be7f..05a2c24 100644 (file)
Binary files a/www/api/group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph.png and b/www/api/group__LMS__DB_g7560f9dab2ecd309290d200ea809375d_cgraph.png differ
index 04b24bb..eece537 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="191,5,329,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="380,5,503,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="216,5,384,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="433,5,580,32">
index 3db5c1e..cf23869 100644 (file)
@@ -1 +1 @@
-3c872c5d2fa1cff6fd9ea4cd7db6ea38
\ No newline at end of file
+2be0e5b4552e7d723f5017702fa4dbaf
\ No newline at end of file
index e65c91d..1402886 100644 (file)
Binary files a/www/api/group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph.png and b/www/api/group__LMS__DB_g9a0ba775eacd1abdc6bfd08c26bbd437_cgraph.png differ
index d9a8f15..dc2cca6 100644 (file)
@@ -1,5 +1,5 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="180,5,303,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="181,56,301,83">
-<area shape="rect" href="$group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0" title="lms_db_video_free" alt="" coords="180,107,303,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="361,81,481,108">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="353,132,489,159">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04" title="lms_db_cache_add" alt="" coords="200,5,347,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3" title="lms_db_cache_get" alt="" coords="200,56,347,83">
+<area shape="rect" href="$group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0" title="lms_db_video_free" alt="" coords="201,107,345,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="405,81,547,108">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="395,132,557,159">
index 0a3fe3d..607a379 100644 (file)
@@ -1 +1 @@
-eecaad120bf9f1954029b1660f5244b6
\ No newline at end of file
+f317c41f652a189eb8240561894fe69d
\ No newline at end of file
index db298f9..9bb22b4 100644 (file)
Binary files a/www/api/group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph.png and b/www/api/group__LMS__DB_ga206178e1f883c1bf7a3281f982109b2_cgraph.png differ
index 18178a9..0d4eaa7 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="196,5,316,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="188,56,324,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0" title="lms_db_cache_del" alt="" coords="221,5,363,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="211,56,373,83">
index fcf3e46..a141174 100644 (file)
@@ -1 +1 @@
-90288409fec4c7c6eac1e45dab6d2d9f
\ No newline at end of file
+812a45fdaa82bf2e3f4ea176c82247a4
\ No newline at end of file
index cee03b1..6ff54c8 100644 (file)
Binary files a/www/api/group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph.png and b/www/api/group__LMS__DB_ge0e003fb6c8deccf8c15a7cedb88c789_cgraph.png differ
index 11da5a4..f0e0073 100644 (file)
@@ -4,30 +4,38 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>Plugins-API</h1><table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 </table>
+Copyright (C) 2007 by INdT<p>
+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>
+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>
+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>
+<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>
 Plugins should implement the following call that provides required callbacks (see <a class="el" href="lightmediascanner__plugin_8h.html">lightmediascanner_plugin.h</a>):<p>
 <div class="fragment"><pre class="fragment">    <span class="keyword">struct </span><a class="code" href="structlms__plugin.html">lms_plugin</a> *lms_plugin_open(<span class="keywordtype">void</span>)
 </pre></div><p>
 where:<p>
 <div class="fragment"><pre class="fragment">    <span class="keyword">struct </span><a class="code" href="structlms__plugin.html">lms_plugin</a> {
        <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">name</a>;
-       <a class="code" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">lms_plugin_match_fn_t</a> <a class="code" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">match</a>;
-       <a class="code" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lms_plugin_parse_fn_t</a> <a class="code" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">parse</a>;
-       <a class="code" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lms_plugin_close_fn_t</a> <a class="code" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">close</a>;
-       <a class="code" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lms_plugin_setup_fn_t</a> <a class="code" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">setup</a>;
-       <a class="code" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lms_plugin_start_fn_t</a> <a class="code" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">start</a>;
-       <a class="code" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lms_plugin_finish_fn_t</a> <a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a>;
+       <a class="code" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">lms_plugin_match_fn_t</a> <a class="code" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">match</a>;
+       <a class="code" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lms_plugin_parse_fn_t</a> <a class="code" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">parse</a>;
+       <a class="code" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lms_plugin_close_fn_t</a> <a class="code" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">close</a>;
+       <a class="code" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lms_plugin_setup_fn_t</a> <a class="code" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">setup</a>;
+       <a class="code" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lms_plugin_start_fn_t</a> <a class="code" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">start</a>;
+       <a class="code" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lms_plugin_finish_fn_t</a> <a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a>;
     };
 </pre></div><p>
 Users can add their own data to the end of this data structure. Callbacks and their meanings are:<p>
@@ -55,8 +63,9 @@ This is the second phase of plugin initialization on the slave process. At this
 <div class="fragment"><pre class="fragment">    <span class="keywordtype">int</span> finish(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct</span> <a class="code" href="structlms__context.html">lms_context</a> *ctxt)
 </pre></div><p>
 Finishes the plugin on slave process.<p>
-Although LMS doesn't place any restrictions on what plugins can do and how they store information, it's good to have standard tables and easy way to store data on them. For this task we provide <a class="el" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a> with functions to add audios, images, videos, playlists and possible more. Use should be pretty straightforward, see existing plugins to see usage examples. <hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+Although LMS doesn't place any restrictions on what plugins can do and how they store information, it's good to have standard tables and easy way to store data on them. For this task we provide <a class="el" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a> with functions to add audios, images, videos, playlists and possible more. Use should be pretty straightforward, see existing plugins to see usage examples. </div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 710cb22..b765d82 100644 (file)
@@ -4,18 +4,27 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>Light Media Scanner Documentation</h1>
 <p>
-<h3 align="center">0.1 </h3>The architecture is based on 2 processes that cooperate, the first is the driver, that controls the behavior of the worker/slave process, that does the hard work. This slave process is meant to make the software more robust since some <a class="el" href="structparser.html">parser</a> libraries and even user-provided media is not reliable, so if for some reason the worker process freezes, it's killed and then restarted with the next item.<p>
+<h3 align="center">0.1 </h3>Copyright (C) 2008 by ProFUSION embedded systems Copyright (C) 2007 by INdT<p>
+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>
+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>
+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>
+<dl class="author" compact><dt><b>Author:</b></dt><dd>Gustavo Sverzut Barbieri &lt;<a href="mailto:barbieri@profusion.mobi">barbieri@profusion.mobi</a>&gt; <p>
+Gustavo Sverzut Barbieri &lt;<a href="mailto:gustavo.barbieri@openbossa.org">gustavo.barbieri@openbossa.org</a>&gt;</dd></dl>
+The architecture is based on 2 processes that cooperate, the first is the driver, that controls the behavior of the worker/slave process, that does the hard work. This slave process is meant to make the software more robust since some <a class="el" href="structparser.html">parser</a> libraries and even user-provided media is not reliable, so if for some reason the worker process freezes, it's killed and then restarted with the next item.<p>
 User API is quite simple, with means to add new charsets to be tried and new parsers to handle media. The most important functions are (see <a class="el" href="lightmediascanner_8h.html">lightmediascanner.h</a>):<p>
 <ul>
 <li>int <a class="el" href="lightmediascanner__process_8c.html#c2f07fb73717514237862c98dbf023b2">lms_process(lms_t *lms, const char *top_path)</a></li><li>int <a class="el" href="lightmediascanner__check_8c.html#859492d896e816498edb471315efced1">lms_check(lms_t *lms, const char *top_path)</a></li></ul>
@@ -28,7 +37,7 @@ Parsers are handled as shared object plugins, they can be added without modifica
 <li><b>files:</b> known files.<ul>
 <li>id: identification inside LMS/DB.</li><li>path: file path.</li><li>mtime: modification time, in seconds from UNIX epoch.</li><li>dtime: modification time, in seconds from UNIX epoch.</li><li>size: in bytes.</li></ul>
 </li><li><b>audios:</b> audio files.<ul>
-<li>id: same as files.id</li><li>title: audio title.</li><li>album_id: same as audio_albums.id.</li><li>genre_id: same as audio_genres.id.</li><li>trackno: track number.</li><li>rating: rating.</li><li>playcnt: play count.</li></ul>
+<li>id: same as files.id</li><li>title: audio title.</li><li>album_id: same as audio_albums.id.</li><li>artist_id: same as audio_artists.id.</li><li>genre_id: same as audio_genres.id.</li><li>trackno: track number.</li><li>rating: rating.</li><li>playcnt: play count.</li></ul>
 </li><li><b>audio_artists:</b> audio artists.<ul>
 <li>id: identification inside LMS/DB.</li><li>name: artist name.</li></ul>
 </li><li><b>audio_albums:</b> audio albums.<ul>
@@ -42,8 +51,9 @@ Parsers are handled as shared object plugins, they can be added without modifica
 </li><li><b>videos:</b> video files.<ul>
 <li>id: identification inside LMS/DB.</li><li>title: video title.</li><li>artist: video artist or creator or producer or ... </li></ul>
 </li></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index abca650..f2b16c4 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner.c</h1><a href="lightmediascanner_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00021"></a>00021 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#include "config.h"</span>
 <a name="l00042"></a>00042 
 <a name="l00043"></a>00043     memset(p, 0, <span class="keyword">sizeof</span>(*p));
 <a name="l00044"></a>00044 
-<a name="l00045"></a>00045     p-&gt;dl_handle = dlopen(so_path, RTLD_NOW | RTLD_LOCAL);
+<a name="l00045"></a>00045     p-&gt;<a class="code" href="structparser.html#3dd2a049d1cd9229ec33645e28803e0a">dl_handle</a> = dlopen(so_path, RTLD_NOW | RTLD_LOCAL);
 <a name="l00046"></a>00046     errmsg = dlerror();
 <a name="l00047"></a>00047     <span class="keywordflow">if</span> (errmsg) {
 <a name="l00048"></a>00048         fprintf(stderr, <span class="stringliteral">"ERROR: could not dlopen() %s\n"</span>, errmsg);
 <a name="l00049"></a>00049         <span class="keywordflow">return</span> -1;
 <a name="l00050"></a>00050     }
 <a name="l00051"></a>00051 
-<a name="l00052"></a>00052     plugin_open = dlsym(p-&gt;dl_handle, <span class="stringliteral">"lms_plugin_open"</span>);
+<a name="l00052"></a>00052     plugin_open = dlsym(p-&gt;<a class="code" href="structparser.html#3dd2a049d1cd9229ec33645e28803e0a">dl_handle</a>, <span class="stringliteral">"lms_plugin_open"</span>);
 <a name="l00053"></a>00053     errmsg = dlerror();
 <a name="l00054"></a>00054     <span class="keywordflow">if</span> (errmsg) {
 <a name="l00055"></a>00055         fprintf(stderr, <span class="stringliteral">"ERROR: could not find plugin entry point %s\n"</span>,
 <a name="l00057"></a>00057         <span class="keywordflow">return</span> -2;
 <a name="l00058"></a>00058     }
 <a name="l00059"></a>00059 
-<a name="l00060"></a>00060     p-&gt;so_path = strdup(so_path);
-<a name="l00061"></a>00061     <span class="keywordflow">if</span> (!p-&gt;so_path) {
+<a name="l00060"></a>00060     p-&gt;<a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">so_path</a> = strdup(so_path);
+<a name="l00061"></a>00061     <span class="keywordflow">if</span> (!p-&gt;<a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">so_path</a>) {
 <a name="l00062"></a>00062         perror(<span class="stringliteral">"strdup"</span>);
 <a name="l00063"></a>00063         <span class="keywordflow">return</span> -3;
 <a name="l00064"></a>00064     }
 <a name="l00065"></a>00065 
-<a name="l00066"></a>00066     p-&gt;plugin = plugin_open();
-<a name="l00067"></a>00067     <span class="keywordflow">if</span> (!p-&gt;plugin) {
+<a name="l00066"></a>00066     p-&gt;<a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a> = plugin_open();
+<a name="l00067"></a>00067     <span class="keywordflow">if</span> (!p-&gt;<a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a>) {
 <a name="l00068"></a>00068         fprintf(stderr, <span class="stringliteral">"ERROR: plugin \"%s\" failed to init.\n"</span>, so_path);
 <a name="l00069"></a>00069         <span class="keywordflow">return</span> -4;
 <a name="l00070"></a>00070     }
 <a name="l00171"></a>00171         free(lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>);
 <a name="l00172"></a>00172     }
 <a name="l00173"></a>00173 
-<a name="l00174"></a>00174     free(lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
-<a name="l00175"></a>00175     <a class="code" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a>(lms-&gt;<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>);
-<a name="l00176"></a>00176     free(lms);
-<a name="l00177"></a>00177     <span class="keywordflow">return</span> 0;
-<a name="l00178"></a>00178 }
-<a name="l00179"></a>00179 
-<a name="l00189"></a>00189 <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *
-<a name="l00190"></a><a class="code" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">00190</a> <a class="code" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">lms_parser_add</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *so_path)
-<a name="l00191"></a>00191 {
-<a name="l00192"></a>00192     <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> *<a class="code" href="structparser.html">parser</a>;
-<a name="l00193"></a>00193 
-<a name="l00194"></a>00194     <span class="keywordflow">if</span> (!lms)
-<a name="l00195"></a>00195         <span class="keywordflow">return</span> NULL;
-<a name="l00196"></a>00196 
-<a name="l00197"></a>00197     <span class="keywordflow">if</span> (!so_path)
-<a name="l00198"></a>00198         <span class="keywordflow">return</span> NULL;
-<a name="l00199"></a>00199 
-<a name="l00200"></a>00200     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>) {
-<a name="l00201"></a>00201         fprintf(stderr, <span class="stringliteral">"ERROR: do not add parsers while it's processing.\n"</span>);
-<a name="l00202"></a>00202         <span class="keywordflow">return</span> NULL;
-<a name="l00203"></a>00203     }
-<a name="l00204"></a>00204 
-<a name="l00205"></a>00205     lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> = realloc(lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>,
-<a name="l00206"></a>00206                            (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> + 1) * <span class="keyword">sizeof</span>(<span class="keyword">struct</span> parser));
-<a name="l00207"></a>00207     <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>) {
-<a name="l00208"></a>00208         perror(<span class="stringliteral">"realloc"</span>);
-<a name="l00209"></a>00209         <span class="keywordflow">return</span> NULL;
-<a name="l00210"></a>00210     }
-<a name="l00211"></a>00211 
-<a name="l00212"></a>00212     parser = lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> + lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>;
-<a name="l00213"></a>00213     <span class="keywordflow">if</span> (_parser_load(parser, so_path) != 0) {
-<a name="l00214"></a>00214         _parser_unload(parser);
-<a name="l00215"></a>00215         <span class="keywordflow">return</span> NULL;
-<a name="l00216"></a>00216     }
-<a name="l00217"></a>00217 
-<a name="l00218"></a>00218     lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>++;
-<a name="l00219"></a>00219     <span class="keywordflow">return</span> parser-&gt;plugin;
-<a name="l00220"></a>00220 }
-<a name="l00221"></a>00221 
-<a name="l00234"></a>00234 <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *
-<a name="l00235"></a><a class="code" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">00235</a> <a class="code" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lms_parser_find_and_add</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
-<a name="l00236"></a>00236 {
-<a name="l00237"></a>00237     <span class="keywordtype">char</span> <a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">so_path</a>[PATH_MAX];
-<a name="l00238"></a>00238 
-<a name="l00239"></a>00239     <span class="keywordflow">if</span> (!lms)
-<a name="l00240"></a>00240         <span class="keywordflow">return</span> NULL;
-<a name="l00241"></a>00241     <span class="keywordflow">if</span> (!name)
-<a name="l00242"></a>00242         <span class="keywordflow">return</span> NULL;
-<a name="l00243"></a>00243 
-<a name="l00244"></a>00244     snprintf(so_path, <span class="keyword">sizeof</span>(so_path), <span class="stringliteral">"%s/%s.so"</span>, PLUGINSDIR, name);
-<a name="l00245"></a>00245     <span class="keywordflow">return</span> <a class="code" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">lms_parser_add</a>(lms, so_path);
-<a name="l00246"></a>00246 }
-<a name="l00247"></a>00247 
-<a name="l00248"></a>00248 <span class="keywordtype">int</span>
-<a name="l00249"></a><a class="code" href="lightmediascanner__private_8h.html#239fc535d2f20f09eeec9df86aa6ef9b">00249</a> <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">int</span> i)
-<a name="l00250"></a>00250 {
-<a name="l00251"></a>00251     <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> *<a class="code" href="structparser.html">parser</a>;
-<a name="l00252"></a>00252 
-<a name="l00253"></a>00253     parser = lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> + i;
-<a name="l00254"></a>00254     _parser_unload(parser);
-<a name="l00255"></a>00255     lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>--;
-<a name="l00256"></a>00256 
-<a name="l00257"></a>00257     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> == 0) {
-<a name="l00258"></a>00258         free(lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>);
-<a name="l00259"></a>00259         lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> = NULL;
-<a name="l00260"></a>00260         <span class="keywordflow">return</span> 0;
-<a name="l00261"></a>00261     } <span class="keywordflow">else</span> {
-<a name="l00262"></a>00262         <span class="keywordtype">int</span> dif;
-<a name="l00263"></a>00263 
-<a name="l00264"></a>00264         dif = lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> - i;
-<a name="l00265"></a>00265         <span class="keywordflow">if</span> (dif)
-<a name="l00266"></a>00266             lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> = memmove(parser, parser + 1,
-<a name="l00267"></a>00267                                    dif * <span class="keyword">sizeof</span>(<span class="keyword">struct</span> parser));
-<a name="l00268"></a>00268 
-<a name="l00269"></a>00269         lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> = realloc(lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>,
-<a name="l00270"></a>00270                                lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> * <span class="keyword">sizeof</span>(<span class="keyword">struct</span> parser));
-<a name="l00271"></a>00271         <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>) {
-<a name="l00272"></a>00272             lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> = 0;
-<a name="l00273"></a>00273             <span class="keywordflow">return</span> -1;
-<a name="l00274"></a>00274         }
-<a name="l00275"></a>00275 
-<a name="l00276"></a>00276         <span class="keywordflow">return</span> 0;
-<a name="l00277"></a>00277     }
-<a name="l00278"></a>00278 }
-<a name="l00279"></a>00279 
-<a name="l00288"></a>00288 <span class="keywordtype">int</span>
-<a name="l00289"></a><a class="code" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">00289</a> <a class="code" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">lms_parser_del</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *handle)
-<a name="l00290"></a>00290 {
-<a name="l00291"></a>00291     <span class="keywordtype">int</span> i;
+<a name="l00174"></a>00174     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a> &amp;&amp; lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">free_data</a>)
+<a name="l00175"></a>00175         lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">free_data</a>(lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a>);
+<a name="l00176"></a>00176 
+<a name="l00177"></a>00177     free(lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
+<a name="l00178"></a>00178     <a class="code" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a>(lms-&gt;<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>);
+<a name="l00179"></a>00179     free(lms);
+<a name="l00180"></a>00180     <span class="keywordflow">return</span> 0;
+<a name="l00181"></a>00181 }
+<a name="l00182"></a>00182 
+<a name="l00192"></a>00192 <span class="keywordtype">void</span>
+<a name="l00193"></a><a class="code" href="lightmediascanner_8h.html#d2da241599f7f576670d64184f972c43">00193</a> <a class="code" href="lightmediascanner_8c.html#668e706f6d5eae3ba5e36ff4db2ae514">lms_set_progress_callback</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <a class="code" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> cb, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, <a class="code" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a> free_data)
+<a name="l00194"></a>00194 {
+<a name="l00195"></a>00195     <span class="keywordflow">if</span> (!lms) {
+<a name="l00196"></a>00196         <span class="keywordflow">if</span> (data &amp;&amp; free_data)
+<a name="l00197"></a>00197             free_data((<span class="keywordtype">void</span> *)data);
+<a name="l00198"></a>00198         <span class="keywordflow">return</span>;
+<a name="l00199"></a>00199     }
+<a name="l00200"></a>00200 
+<a name="l00201"></a>00201     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a> &amp;&amp; lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">free_data</a>)
+<a name="l00202"></a>00202         lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">free_data</a>(lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a>);
+<a name="l00203"></a>00203 
+<a name="l00204"></a>00204     lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#94615d22fba40d580a8a0055d28221c4">cb</a> = cb;
+<a name="l00205"></a>00205     lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a> = (<span class="keywordtype">void</span> *)data;
+<a name="l00206"></a>00206     lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">free_data</a> = free_data;
+<a name="l00207"></a>00207 }
+<a name="l00208"></a>00208 
+<a name="l00218"></a>00218 <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *
+<a name="l00219"></a><a class="code" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">00219</a> <a class="code" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">lms_parser_add</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *so_path)
+<a name="l00220"></a>00220 {
+<a name="l00221"></a>00221     <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> *<a class="code" href="structparser.html">parser</a>;
+<a name="l00222"></a>00222 
+<a name="l00223"></a>00223     <span class="keywordflow">if</span> (!lms)
+<a name="l00224"></a>00224         <span class="keywordflow">return</span> NULL;
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226     <span class="keywordflow">if</span> (!so_path)
+<a name="l00227"></a>00227         <span class="keywordflow">return</span> NULL;
+<a name="l00228"></a>00228 
+<a name="l00229"></a>00229     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>) {
+<a name="l00230"></a>00230         fprintf(stderr, <span class="stringliteral">"ERROR: do not add parsers while it's processing.\n"</span>);
+<a name="l00231"></a>00231         <span class="keywordflow">return</span> NULL;
+<a name="l00232"></a>00232     }
+<a name="l00233"></a>00233 
+<a name="l00234"></a>00234     lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> = realloc(lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>,
+<a name="l00235"></a>00235                            (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> + 1) * <span class="keyword">sizeof</span>(<span class="keyword">struct</span> parser));
+<a name="l00236"></a>00236     <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>) {
+<a name="l00237"></a>00237         perror(<span class="stringliteral">"realloc"</span>);
+<a name="l00238"></a>00238         <span class="keywordflow">return</span> NULL;
+<a name="l00239"></a>00239     }
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241     parser = lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> + lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>;
+<a name="l00242"></a>00242     <span class="keywordflow">if</span> (_parser_load(parser, so_path) != 0) {
+<a name="l00243"></a>00243         _parser_unload(parser);
+<a name="l00244"></a>00244         <span class="keywordflow">return</span> NULL;
+<a name="l00245"></a>00245     }
+<a name="l00246"></a>00246 
+<a name="l00247"></a>00247     lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>++;
+<a name="l00248"></a>00248     <span class="keywordflow">return</span> parser-&gt;<a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a>;
+<a name="l00249"></a>00249 }
+<a name="l00250"></a>00250 
+<a name="l00263"></a>00263 <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *
+<a name="l00264"></a><a class="code" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">00264</a> <a class="code" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lms_parser_find_and_add</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
+<a name="l00265"></a>00265 {
+<a name="l00266"></a>00266     <span class="keywordtype">char</span> <a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">so_path</a>[PATH_MAX];
+<a name="l00267"></a>00267 
+<a name="l00268"></a>00268     <span class="keywordflow">if</span> (!lms)
+<a name="l00269"></a>00269         <span class="keywordflow">return</span> NULL;
+<a name="l00270"></a>00270     <span class="keywordflow">if</span> (!name)
+<a name="l00271"></a>00271         <span class="keywordflow">return</span> NULL;
+<a name="l00272"></a>00272 
+<a name="l00273"></a>00273     snprintf(so_path, <span class="keyword">sizeof</span>(so_path), <span class="stringliteral">"%s/%s.so"</span>, PLUGINSDIR, name);
+<a name="l00274"></a>00274     <span class="keywordflow">return</span> <a class="code" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">lms_parser_add</a>(lms, so_path);
+<a name="l00275"></a>00275 }
+<a name="l00276"></a>00276 
+<a name="l00277"></a>00277 <span class="keywordtype">int</span>
+<a name="l00278"></a><a class="code" href="lightmediascanner__private_8h.html#239fc535d2f20f09eeec9df86aa6ef9b">00278</a> <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">int</span> i)
+<a name="l00279"></a>00279 {
+<a name="l00280"></a>00280     <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> *<a class="code" href="structparser.html">parser</a>;
+<a name="l00281"></a>00281 
+<a name="l00282"></a>00282     parser = lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> + i;
+<a name="l00283"></a>00283     _parser_unload(parser);
+<a name="l00284"></a>00284     lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>--;
+<a name="l00285"></a>00285 
+<a name="l00286"></a>00286     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> == 0) {
+<a name="l00287"></a>00287         free(lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>);
+<a name="l00288"></a>00288         lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> = NULL;
+<a name="l00289"></a>00289         <span class="keywordflow">return</span> 0;
+<a name="l00290"></a>00290     } <span class="keywordflow">else</span> {
+<a name="l00291"></a>00291         <span class="keywordtype">int</span> dif;
 <a name="l00292"></a>00292 
-<a name="l00293"></a>00293     <span class="keywordflow">if</span> (!lms)
-<a name="l00294"></a>00294         <span class="keywordflow">return</span> -1;
-<a name="l00295"></a>00295     <span class="keywordflow">if</span> (!handle)
-<a name="l00296"></a>00296         <span class="keywordflow">return</span> -2;
-<a name="l00297"></a>00297     <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>)
-<a name="l00298"></a>00298         <span class="keywordflow">return</span> -3;
-<a name="l00299"></a>00299     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>) {
-<a name="l00300"></a>00300         fprintf(stderr, <span class="stringliteral">"ERROR: do not del parsers while it's processing.\n"</span>);
-<a name="l00301"></a>00301         <span class="keywordflow">return</span> -4;
-<a name="l00302"></a>00302     }
-<a name="l00303"></a>00303 
-<a name="l00304"></a>00304     <span class="keywordflow">for</span> (i = 0; i &lt; lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>; i++)
-<a name="l00305"></a>00305         <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>[i].<a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a> == handle)
-<a name="l00306"></a>00306             <span class="keywordflow">return</span> <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(lms, i);
-<a name="l00307"></a>00307 
-<a name="l00308"></a>00308     <span class="keywordflow">return</span> -3;
-<a name="l00309"></a>00309 }
-<a name="l00310"></a>00310 
-<a name="l00320"></a>00320 <span class="keywordtype">int</span>
-<a name="l00321"></a><a class="code" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">00321</a> <a class="code" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">lms_is_processing</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>)
-<a name="l00322"></a>00322 {
-<a name="l00323"></a>00323     <span class="keywordflow">if</span> (!lms) {
-<a name="l00324"></a>00324         fprintf(stderr, <span class="stringliteral">"ERROR: lms_is_processing(NULL)\n"</span>);
-<a name="l00325"></a>00325         <span class="keywordflow">return</span> -1;
-<a name="l00326"></a>00326     }
-<a name="l00327"></a>00327 
-<a name="l00328"></a>00328     <span class="keywordflow">return</span> lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>;
-<a name="l00329"></a>00329 }
-<a name="l00330"></a>00330 
-<a name="l00339"></a>00339 <span class="keyword">const</span> <span class="keywordtype">char</span> *
-<a name="l00340"></a><a class="code" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">00340</a> <a class="code" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lms_get_db_path</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>)
-<a name="l00341"></a>00341 {
-<a name="l00342"></a>00342     <span class="keywordflow">if</span> (!lms) {
-<a name="l00343"></a>00343         fprintf(stderr, <span class="stringliteral">"ERROR: lms_get_db_path(NULL)\n"</span>);
-<a name="l00344"></a>00344         <span class="keywordflow">return</span> NULL;
-<a name="l00345"></a>00345     }
-<a name="l00346"></a>00346 
-<a name="l00347"></a>00347     <span class="keywordflow">return</span> lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>;
-<a name="l00348"></a>00348 }
-<a name="l00349"></a>00349 
-<a name="l00361"></a>00361 <span class="keywordtype">int</span>
-<a name="l00362"></a><a class="code" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">00362</a> <a class="code" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lms_get_slave_timeout</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>)
-<a name="l00363"></a>00363 {
-<a name="l00364"></a>00364     <span class="keywordflow">if</span> (!lms) {
-<a name="l00365"></a>00365         fprintf(stderr, <span class="stringliteral">"ERROR: lms_get_slave_timeout(NULL)\n"</span>);
-<a name="l00366"></a>00366         <span class="keywordflow">return</span> -1;
-<a name="l00367"></a>00367     }
-<a name="l00368"></a>00368 
-<a name="l00369"></a>00369     <span class="keywordflow">return</span> lms-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>;
-<a name="l00370"></a>00370 }
-<a name="l00371"></a>00371 
-<a name="l00382"></a><a class="code" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">00382</a> <span class="keywordtype">void</span> <a class="code" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lms_set_slave_timeout</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">int</span> ms)
-<a name="l00383"></a>00383 {
-<a name="l00384"></a>00384     <span class="keywordflow">if</span> (!lms) {
-<a name="l00385"></a>00385         fprintf(stderr, <span class="stringliteral">"ERROR: lms_set_slave_timeout(NULL, %d)\n"</span>, ms);
-<a name="l00386"></a>00386         <span class="keywordflow">return</span>;
-<a name="l00387"></a>00387     }
-<a name="l00388"></a>00388 
-<a name="l00389"></a>00389     lms-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a> = ms;
-<a name="l00390"></a>00390 }
-<a name="l00391"></a>00391 
-<a name="l00403"></a>00403 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00404"></a><a class="code" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">00404</a> <a class="code" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lms_get_commit_interval</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>)
-<a name="l00405"></a>00405 {
-<a name="l00406"></a>00406     <span class="keywordflow">if</span> (!lms) {
-<a name="l00407"></a>00407         fprintf(stderr, <span class="stringliteral">"ERROR: lms_get_commit_interval(NULL)\n"</span>);
-<a name="l00408"></a>00408         <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)-1;
-<a name="l00409"></a>00409     }
-<a name="l00410"></a>00410 
-<a name="l00411"></a>00411     <span class="keywordflow">return</span> lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>;
-<a name="l00412"></a>00412 }
-<a name="l00413"></a>00413 
-<a name="l00426"></a>00426 <span class="keywordtype">void</span>
-<a name="l00427"></a><a class="code" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">00427</a> <a class="code" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lms_set_commit_interval</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> transactions)
-<a name="l00428"></a>00428 {
-<a name="l00429"></a>00429     <span class="keywordflow">if</span> (!lms) {
-<a name="l00430"></a>00430         fprintf(stderr, <span class="stringliteral">"ERROR: lms_set_commit_interval(NULL, %u)\n"</span>,
-<a name="l00431"></a>00431                 transactions);
-<a name="l00432"></a>00432         <span class="keywordflow">return</span>;
-<a name="l00433"></a>00433     }
-<a name="l00434"></a>00434 
-<a name="l00435"></a>00435     lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a> = transactions;
-<a name="l00436"></a>00436 }
-<a name="l00437"></a>00437 
-<a name="l00450"></a>00450 <span class="keywordtype">int</span>
-<a name="l00451"></a><a class="code" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">00451</a> <a class="code" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">lms_charset_add</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
-<a name="l00452"></a>00452 {
-<a name="l00453"></a>00453     <span class="keywordflow">if</span> (!lms) {
-<a name="l00454"></a>00454         fprintf(stderr, <span class="stringliteral">"ERROR: lms_charset_add(NULL)\n"</span>);
-<a name="l00455"></a>00455         <span class="keywordflow">return</span> -1;
-<a name="l00456"></a>00456     }
-<a name="l00457"></a>00457 
-<a name="l00458"></a>00458     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add</a>(lms-&gt;<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>, charset);
-<a name="l00459"></a>00459 }
-<a name="l00460"></a>00460 
-<a name="l00473"></a>00473 <span class="keywordtype">int</span>
-<a name="l00474"></a><a class="code" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">00474</a> <a class="code" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">lms_charset_del</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
-<a name="l00475"></a>00475 {
-<a name="l00476"></a>00476     <span class="keywordflow">if</span> (!lms) {
-<a name="l00477"></a>00477         fprintf(stderr, <span class="stringliteral">"ERROR: lms_charset_del(NULL)\n"</span>);
-<a name="l00478"></a>00478         <span class="keywordflow">return</span> -1;
-<a name="l00479"></a>00479     }
-<a name="l00480"></a>00480 
-<a name="l00481"></a>00481     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lms_charset_conv_del</a>(lms-&gt;<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>, charset);
-<a name="l00482"></a>00482 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00293"></a>00293         dif = lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> - i;
+<a name="l00294"></a>00294         <span class="keywordflow">if</span> (dif)
+<a name="l00295"></a>00295             lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> = memmove(parser, parser + 1,
+<a name="l00296"></a>00296                                    dif * <span class="keyword">sizeof</span>(<span class="keyword">struct</span> parser));
+<a name="l00297"></a>00297 
+<a name="l00298"></a>00298         lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a> = realloc(lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>,
+<a name="l00299"></a>00299                                lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> * <span class="keyword">sizeof</span>(<span class="keyword">struct</span> parser));
+<a name="l00300"></a>00300         <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>) {
+<a name="l00301"></a>00301             lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> = 0;
+<a name="l00302"></a>00302             <span class="keywordflow">return</span> -1;
+<a name="l00303"></a>00303         }
+<a name="l00304"></a>00304 
+<a name="l00305"></a>00305         <span class="keywordflow">return</span> 0;
+<a name="l00306"></a>00306     }
+<a name="l00307"></a>00307 }
+<a name="l00308"></a>00308 
+<a name="l00317"></a>00317 <span class="keywordtype">int</span>
+<a name="l00318"></a><a class="code" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">00318</a> <a class="code" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">lms_parser_del</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *handle)
+<a name="l00319"></a>00319 {
+<a name="l00320"></a>00320     <span class="keywordtype">int</span> i;
+<a name="l00321"></a>00321 
+<a name="l00322"></a>00322     <span class="keywordflow">if</span> (!lms)
+<a name="l00323"></a>00323         <span class="keywordflow">return</span> -1;
+<a name="l00324"></a>00324     <span class="keywordflow">if</span> (!handle)
+<a name="l00325"></a>00325         <span class="keywordflow">return</span> -2;
+<a name="l00326"></a>00326     <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>)
+<a name="l00327"></a>00327         <span class="keywordflow">return</span> -3;
+<a name="l00328"></a>00328     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>) {
+<a name="l00329"></a>00329         fprintf(stderr, <span class="stringliteral">"ERROR: do not del parsers while it's processing.\n"</span>);
+<a name="l00330"></a>00330         <span class="keywordflow">return</span> -4;
+<a name="l00331"></a>00331     }
+<a name="l00332"></a>00332 
+<a name="l00333"></a>00333     <span class="keywordflow">for</span> (i = 0; i &lt; lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>; i++)
+<a name="l00334"></a>00334         <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>[i].<a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a> == handle)
+<a name="l00335"></a>00335             <span class="keywordflow">return</span> <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(lms, i);
+<a name="l00336"></a>00336 
+<a name="l00337"></a>00337     <span class="keywordflow">return</span> -3;
+<a name="l00338"></a>00338 }
+<a name="l00339"></a>00339 
+<a name="l00349"></a>00349 <span class="keywordtype">int</span>
+<a name="l00350"></a><a class="code" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">00350</a> <a class="code" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">lms_is_processing</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>)
+<a name="l00351"></a>00351 {
+<a name="l00352"></a>00352     <span class="keywordflow">if</span> (!lms) {
+<a name="l00353"></a>00353         fprintf(stderr, <span class="stringliteral">"ERROR: lms_is_processing(NULL)\n"</span>);
+<a name="l00354"></a>00354         <span class="keywordflow">return</span> -1;
+<a name="l00355"></a>00355     }
+<a name="l00356"></a>00356 
+<a name="l00357"></a>00357     <span class="keywordflow">return</span> lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>;
+<a name="l00358"></a>00358 }
+<a name="l00359"></a>00359 
+<a name="l00368"></a>00368 <span class="keyword">const</span> <span class="keywordtype">char</span> *
+<a name="l00369"></a><a class="code" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">00369</a> <a class="code" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lms_get_db_path</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>)
+<a name="l00370"></a>00370 {
+<a name="l00371"></a>00371     <span class="keywordflow">if</span> (!lms) {
+<a name="l00372"></a>00372         fprintf(stderr, <span class="stringliteral">"ERROR: lms_get_db_path(NULL)\n"</span>);
+<a name="l00373"></a>00373         <span class="keywordflow">return</span> NULL;
+<a name="l00374"></a>00374     }
+<a name="l00375"></a>00375 
+<a name="l00376"></a>00376     <span class="keywordflow">return</span> lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>;
+<a name="l00377"></a>00377 }
+<a name="l00378"></a>00378 
+<a name="l00390"></a>00390 <span class="keywordtype">int</span>
+<a name="l00391"></a><a class="code" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">00391</a> <a class="code" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lms_get_slave_timeout</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>)
+<a name="l00392"></a>00392 {
+<a name="l00393"></a>00393     <span class="keywordflow">if</span> (!lms) {
+<a name="l00394"></a>00394         fprintf(stderr, <span class="stringliteral">"ERROR: lms_get_slave_timeout(NULL)\n"</span>);
+<a name="l00395"></a>00395         <span class="keywordflow">return</span> -1;
+<a name="l00396"></a>00396     }
+<a name="l00397"></a>00397 
+<a name="l00398"></a>00398     <span class="keywordflow">return</span> lms-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>;
+<a name="l00399"></a>00399 }
+<a name="l00400"></a>00400 
+<a name="l00411"></a><a class="code" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">00411</a> <span class="keywordtype">void</span> <a class="code" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lms_set_slave_timeout</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">int</span> ms)
+<a name="l00412"></a>00412 {
+<a name="l00413"></a>00413     <span class="keywordflow">if</span> (!lms) {
+<a name="l00414"></a>00414         fprintf(stderr, <span class="stringliteral">"ERROR: lms_set_slave_timeout(NULL, %d)\n"</span>, ms);
+<a name="l00415"></a>00415         <span class="keywordflow">return</span>;
+<a name="l00416"></a>00416     }
+<a name="l00417"></a>00417 
+<a name="l00418"></a>00418     lms-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a> = ms;
+<a name="l00419"></a>00419 }
+<a name="l00420"></a>00420 
+<a name="l00432"></a>00432 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
+<a name="l00433"></a><a class="code" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">00433</a> <a class="code" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lms_get_commit_interval</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>)
+<a name="l00434"></a>00434 {
+<a name="l00435"></a>00435     <span class="keywordflow">if</span> (!lms) {
+<a name="l00436"></a>00436         fprintf(stderr, <span class="stringliteral">"ERROR: lms_get_commit_interval(NULL)\n"</span>);
+<a name="l00437"></a>00437         <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)-1;
+<a name="l00438"></a>00438     }
+<a name="l00439"></a>00439 
+<a name="l00440"></a>00440     <span class="keywordflow">return</span> lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>;
+<a name="l00441"></a>00441 }
+<a name="l00442"></a>00442 
+<a name="l00455"></a>00455 <span class="keywordtype">void</span>
+<a name="l00456"></a><a class="code" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">00456</a> <a class="code" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lms_set_commit_interval</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> transactions)
+<a name="l00457"></a>00457 {
+<a name="l00458"></a>00458     <span class="keywordflow">if</span> (!lms) {
+<a name="l00459"></a>00459         fprintf(stderr, <span class="stringliteral">"ERROR: lms_set_commit_interval(NULL, %u)\n"</span>,
+<a name="l00460"></a>00460                 transactions);
+<a name="l00461"></a>00461         <span class="keywordflow">return</span>;
+<a name="l00462"></a>00462     }
+<a name="l00463"></a>00463 
+<a name="l00464"></a>00464     lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a> = transactions;
+<a name="l00465"></a>00465 }
+<a name="l00466"></a>00466 
+<a name="l00479"></a>00479 <span class="keywordtype">int</span>
+<a name="l00480"></a><a class="code" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">00480</a> <a class="code" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">lms_charset_add</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
+<a name="l00481"></a>00481 {
+<a name="l00482"></a>00482     <span class="keywordflow">if</span> (!lms) {
+<a name="l00483"></a>00483         fprintf(stderr, <span class="stringliteral">"ERROR: lms_charset_add(NULL)\n"</span>);
+<a name="l00484"></a>00484         <span class="keywordflow">return</span> -1;
+<a name="l00485"></a>00485     }
+<a name="l00486"></a>00486 
+<a name="l00487"></a>00487     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add</a>(lms-&gt;<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>, charset);
+<a name="l00488"></a>00488 }
+<a name="l00489"></a>00489 
+<a name="l00502"></a>00502 <span class="keywordtype">int</span>
+<a name="l00503"></a><a class="code" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">00503</a> <a class="code" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">lms_charset_del</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
+<a name="l00504"></a>00504 {
+<a name="l00505"></a>00505     <span class="keywordflow">if</span> (!lms) {
+<a name="l00506"></a>00506         fprintf(stderr, <span class="stringliteral">"ERROR: lms_charset_del(NULL)\n"</span>);
+<a name="l00507"></a>00507         <span class="keywordflow">return</span> -1;
+<a name="l00508"></a>00508     }
+<a name="l00509"></a>00509 
+<a name="l00510"></a>00510     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lms_charset_conv_del</a>(lms-&gt;<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>, charset);
+<a name="l00511"></a>00511 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 1faf301..a0dfe66 100644 (file)
@@ -4,21 +4,18 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner.c File Reference</h1><code>#include &lt;dlfcn.h&gt;</code><br>
 <code>#include &lt;stdio.h&gt;</code><br>
 <code>#include &lt;stdlib.h&gt;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>&quot;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner.c:<p><center><img src="lightmediascanner_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner.c_map">
-<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="699,259,827,285"><area shape="rect" href="lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="219,385,392,412"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="441,309,609,336"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="660,360,865,387"></map>
+<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="360,239,515,265"><area shape="rect" href="lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="501,84,712,111"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="749,161,949,188"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="668,239,921,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -45,6 +46,8 @@ Include dependency graph for lightmediascanner.c:<p><center><img src="lightmedia
 
 <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>
 
+<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>
+
 <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>
 
 <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>
@@ -84,10 +87,10 @@ Include dependency graph for lightmediascanner.c:<p><center><img src="lightmedia
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00035">35</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00035">35</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="c2843894cca63ec0089c381e69d1d81a"></a><!-- doxytag: member="lightmediascanner.c::DEFAULT_SLAVE_TIMEOUT" ref="c2843894cca63ec0089c381e69d1d81a" args="" -->
@@ -105,13 +108,13 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_n
 Copyright (C) 2007 by INdT<p>
 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>
 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>
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<p>
+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>
 <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>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00034">34</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00034">34</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -134,7 +137,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_n
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -142,16 +145,71 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_n
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00278">278</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<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>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00318">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>
+
+</div>
+</div><p>
+<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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lms_set_progress_callback           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lms</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a>&nbsp;</td>
+          <td class="paramname"> <em>cb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&nbsp;</td>
+          <td class="paramname"> <em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a>&nbsp;</td>
+          <td class="paramname"> <em>free_data</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00249">249</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00066">lms::n_parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">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>.
+Set callback to be used to report progress (check and process).<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <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>
+    <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>
+    <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>
+    <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>
+  </table>
+</dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00193">193</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<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>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 1c7fa6c..c40029e 100644 (file)
@@ -1,4 +1,4 @@
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="699,259,827,285">
-<area shape="rect" href="$lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="219,385,392,412">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="441,309,609,336">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="660,360,865,387">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="360,239,515,265">
+<area shape="rect" href="$lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="501,84,712,111">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="749,161,949,188">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="668,239,921,265">
index cae4d00..d6c97cb 100644 (file)
@@ -1 +1 @@
-941e05618dc03c9ae93749b201be85d7
\ No newline at end of file
+ba4ba4d40adc5d5256bea28e7d76eb1d
\ No newline at end of file
index cb689cb..03b9000 100644 (file)
Binary files a/www/api/lightmediascanner_8c__incl.png and b/www/api/lightmediascanner_8c__incl.png differ
index a265c54..88fb58b 100644 (file)
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner.h</h1><a href="lightmediascanner_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
-<a name="l00107"></a>00107 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_H_</span>
-<a name="l00108"></a><a class="code" href="lightmediascanner_8h.html#e97a674be7c85b0914a6acbafe994998">00108</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_H_ 1</span>
-<a name="l00109"></a>00109 <span class="preprocessor"></span>
-<a name="l00110"></a>00110 <span class="preprocessor">#ifdef API</span>
-<a name="l00111"></a>00111 <span class="preprocessor"></span><span class="preprocessor">#undef API</span>
-<a name="l00112"></a>00112 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00113"></a>00113 <span class="preprocessor"></span>
-<a name="l00114"></a>00114 <span class="preprocessor">#ifdef __GNUC__</span>
-<a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor"># if __GNUC__ &gt;= 4</span>
-<a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor">#  define API __attribute__ ((visibility("default")))</span>
-<a name="l00117"></a>00117 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NULL_TERMINATED __attribute__((__sentinel__))</span>
-<a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor"># else</span>
-<a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor">#  define API</span>
-<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NULL_TERMINATED</span>
-<a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
-<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor"># if __GNUC__ &gt; 2 || (__GNUC__ == 2 &amp;&amp; __GNUC_MINOR__ &gt;= 96)</span>
-<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_PURE __attribute__((__pure__))</span>
-<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_MALLOC __attribute__((__malloc__))</span>
-<a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_CONST __attribute__((__const__))</span>
-<a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_UNUSED __attribute__((__unused__))</span>
-<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor"># else</span>
-<a name="l00128"></a>00128 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_PURE</span>
-<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_MALLOC</span>
-<a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NORETURN</span>
-<a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_CONST</span>
-<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_UNUSED</span>
-<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
-<a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor"># if __GNUC__ &gt; 3 || (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt;= 4)</span>
-<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_WARN_UNUSED_RESULT __attribute__((warn_unused_result))</span>
-<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...) __attribute__((nonnull(__VA_ARGS__)))</span>
-<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor"># else</span>
-<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_WARN_UNUSED_RESULT</span>
-<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...)</span>
-<a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
-<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00142"></a><a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">00142</a> <span class="preprocessor"></span><span class="preprocessor">#  define API</span>
-<a name="l00143"></a><a class="code" href="lightmediascanner_8h.html#3c631eb7d32b61d70bfc615ae54e5552">00143</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NULL_TERMINATED</span>
-<a name="l00144"></a><a class="code" href="lightmediascanner_8h.html#7a9a21d60c8e567c8110c8e3069f8201">00144</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_PURE</span>
-<a name="l00145"></a><a class="code" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">00145</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_MALLOC</span>
-<a name="l00146"></a><a class="code" href="lightmediascanner_8h.html#ccce66c7f9844ae805b83bee1b9c32b5">00146</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_CONST</span>
-<a name="l00147"></a><a class="code" href="lightmediascanner_8h.html#80a4050221a914ea58d5799f13109ebb">00147</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_UNUSED</span>
-<a name="l00148"></a><a class="code" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">00148</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_WARN_UNUSED_RESULT</span>
-<a name="l00149"></a><a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">00149</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...)</span>
-<a name="l00150"></a>00150 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00151"></a>00151 <span class="preprocessor"></span>
-<a name="l00152"></a>00152 <span class="preprocessor">#ifdef __cplusplus</span>
-<a name="l00153"></a>00153 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
-<a name="l00154"></a>00154 <span class="preprocessor">#endif</span>
-<a name="l00155"></a>00155 <span class="preprocessor"></span>
-<a name="l00161"></a><a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">00161</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structlms.html">lms</a> <a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a>;
-<a name="l00162"></a><a class="code" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">00162</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structlms__plugin.html">lms_plugin</a> <a class="code" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">lms_plugin_t</a>;
-<a name="l00163"></a>00163 
-<a name="l00164"></a>00164     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="group__LMS__API.html#g982939bdd2aeb664b5cf7a50b67c1030">lms_new</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *db_path) <a class="code" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">GNUC_MALLOC</a> <a class="code" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">GNUC_WARN_UNUSED_RESULT</a>;
-<a name="l00165"></a>00165     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lms_free</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00166"></a>00166     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lms_process</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00167"></a>00167     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8h.html#890f1af4c54c88a63abdbeff5ecd49a3">lms_check</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00168"></a>00168     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lms_get_db_path</a>(<span class="keyword">const</span> <a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00169"></a>00169     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">lms_is_processing</a>(<span class="keyword">const</span> <a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>) <a class="code" href="lightmediascanner_8h.html#7a9a21d60c8e567c8110c8e3069f8201">GNUC_PURE</a> <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00170"></a>00170     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lms_get_slave_timeout</a>(<span class="keyword">const</span> <a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00171"></a>00171     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lms_set_slave_timeout</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">int</span> ms) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00172"></a>00172     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lms_get_commit_interval</a>(<span class="keyword">const</span> <a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00173"></a>00173     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lms_set_commit_interval</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> transactions) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00174"></a>00174 
-<a name="l00175"></a>00175     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">lms_plugin_t</a> *<a class="code" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">lms_parser_add</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *so_path) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00176"></a>00176     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">lms_plugin_t</a> *<a class="code" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lms_parser_find_and_add</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">name</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00177"></a>00177     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">lms_parser_del</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <a class="code" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">lms_plugin_t</a> *handle) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00110"></a>00110 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_H_</span>
+<a name="l00111"></a><a class="code" href="lightmediascanner_8h.html#e97a674be7c85b0914a6acbafe994998">00111</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_H_ 1</span>
+<a name="l00112"></a>00112 <span class="preprocessor"></span>
+<a name="l00113"></a>00113 <span class="preprocessor">#ifdef API</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span><span class="preprocessor">#undef API</span>
+<a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00116"></a>00116 <span class="preprocessor"></span>
+<a name="l00117"></a>00117 <span class="preprocessor">#ifdef __GNUC__</span>
+<a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor"># if __GNUC__ &gt;= 4</span>
+<a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor">#  define API __attribute__ ((visibility("default")))</span>
+<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NULL_TERMINATED __attribute__((__sentinel__))</span>
+<a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor"># else</span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor">#  define API</span>
+<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NULL_TERMINATED</span>
+<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
+<a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor"># if __GNUC__ &gt; 2 || (__GNUC__ == 2 &amp;&amp; __GNUC_MINOR__ &gt;= 96)</span>
+<a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_PURE __attribute__((__pure__))</span>
+<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_MALLOC __attribute__((__malloc__))</span>
+<a name="l00128"></a>00128 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_CONST __attribute__((__const__))</span>
+<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_UNUSED __attribute__((__unused__))</span>
+<a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor"># else</span>
+<a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_PURE</span>
+<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_MALLOC</span>
+<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NORETURN</span>
+<a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_CONST</span>
+<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_UNUSED</span>
+<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
+<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor"># if __GNUC__ &gt; 3 || (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt;= 4)</span>
+<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_WARN_UNUSED_RESULT __attribute__((warn_unused_result))</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...) __attribute__((nonnull(__VA_ARGS__)))</span>
+<a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor"># else</span>
+<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_WARN_UNUSED_RESULT</span>
+<a name="l00142"></a>00142 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...)</span>
+<a name="l00143"></a>00143 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
+<a name="l00144"></a>00144 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00145"></a><a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">00145</a> <span class="preprocessor"></span><span class="preprocessor">#  define API</span>
+<a name="l00146"></a><a class="code" href="lightmediascanner_8h.html#3c631eb7d32b61d70bfc615ae54e5552">00146</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NULL_TERMINATED</span>
+<a name="l00147"></a><a class="code" href="lightmediascanner_8h.html#7a9a21d60c8e567c8110c8e3069f8201">00147</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_PURE</span>
+<a name="l00148"></a><a class="code" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">00148</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_MALLOC</span>
+<a name="l00149"></a><a class="code" href="lightmediascanner_8h.html#ccce66c7f9844ae805b83bee1b9c32b5">00149</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_CONST</span>
+<a name="l00150"></a><a class="code" href="lightmediascanner_8h.html#80a4050221a914ea58d5799f13109ebb">00150</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_UNUSED</span>
+<a name="l00151"></a><a class="code" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">00151</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_WARN_UNUSED_RESULT</span>
+<a name="l00152"></a><a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">00152</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...)</span>
+<a name="l00153"></a>00153 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00154"></a>00154 <span class="preprocessor"></span>
+<a name="l00155"></a>00155 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00156"></a>00156 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
+<a name="l00157"></a>00157 <span class="preprocessor">#endif</span>
+<a name="l00158"></a>00158 <span class="preprocessor"></span>
+<a name="l00164"></a><a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">00164</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structlms.html">lms</a> <a class="code" href="structlms.html">lms_t</a>;
+<a name="l00165"></a><a class="code" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">00165</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structlms__plugin.html">lms_plugin</a> <a class="code" href="structlms__plugin.html">lms_plugin_t</a>;
+<a name="l00166"></a>00166 
+<a name="l00167"></a><a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">00167</a>     <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00168"></a><a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370204315e58ce4b7dfa6421b4d1556655d">00168</a>         <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370204315e58ce4b7dfa6421b4d1556655d">LMS_PROGRESS_STATUS_UP_TO_DATE</a>,
+<a name="l00169"></a><a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">00169</a>         <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">LMS_PROGRESS_STATUS_PROCESSED</a>,
+<a name="l00170"></a><a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11">00170</a>         <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11">LMS_PROGRESS_STATUS_DELETED</a>,
+<a name="l00171"></a><a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152">00171</a>         <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152">LMS_PROGRESS_STATUS_KILLED</a>,
+<a name="l00172"></a><a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">00172</a>         <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">LMS_PROGRESS_STATUS_ERROR_PARSE</a>,
+<a name="l00173"></a><a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082">00173</a>         <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082">LMS_PROGRESS_STATUS_ERROR_COMM</a>,
+<a name="l00174"></a>00174     } <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lms_progress_status_t</a>;
+<a name="l00175"></a>00175 
+<a name="l00176"></a><a class="code" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">00176</a>     <span class="keyword">typedef</span> void (*<a class="code" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a>)(<span class="keywordtype">void</span> *data);
+<a name="l00177"></a><a class="code" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">00177</a>     <span class="keyword">typedef</span> void (*<a class="code" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a>)(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> path_len, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lms_progress_status_t</a> status, <span class="keywordtype">void</span> *data);
 <a name="l00178"></a>00178 
-<a name="l00179"></a>00179     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">lms_charset_add</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00180"></a>00180     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">lms_charset_del</a>(<a class="code" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00181"></a>00181 
-<a name="l00182"></a>00182 <span class="preprocessor">#ifdef __cplusplus</span>
-<a name="l00183"></a>00183 <span class="preprocessor"></span>}
-<a name="l00184"></a>00184 <span class="preprocessor">#endif</span>
-<a name="l00185"></a>00185 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_H_ */</span>
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00179"></a>00179     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="group__LMS__API.html#g982939bdd2aeb664b5cf7a50b67c1030">lms_new</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *db_path) <a class="code" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">GNUC_MALLOC</a> <a class="code" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">GNUC_WARN_UNUSED_RESULT</a>;
+<a name="l00180"></a>00180     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lms_free</a>(<a class="code" href="structlms.html">lms_t</a> *lms) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00181"></a>00181     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lms_process</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00182"></a>00182     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8h.html#c5eda23c23b2ea76f001ac994c2ba9e2">lms_process_single_process</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00183"></a>00183     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8h.html#5b70063cf19648de70bb145404aa3d0b">lms_check</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00184"></a>00184     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8h.html#bfd6888e606654c585e41aa946637432">lms_check_single_process</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00185"></a>00185     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="lightmediascanner_8h.html#30aa1e83907fc1049d2adccb28eef489">lms_stop_processing</a>(<a class="code" href="structlms.html">lms_t</a> *lms) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00186"></a>00186     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__LMS__API.html#g4098d31de667a895095fc8d4d9bc10c0">lms_get_db_path</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *lms) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00187"></a>00187     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g8c594bed751d504965b5cc0c7e93fb71">lms_is_processing</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *lms) <a class="code" href="lightmediascanner_8h.html#7a9a21d60c8e567c8110c8e3069f8201">GNUC_PURE</a> <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00188"></a>00188     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g973c6c7b66f4fdd6f4f776a36e742d33">lms_get_slave_timeout</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *lms) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00189"></a>00189     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="group__LMS__API.html#g68ac6273965bdeb25795dd4c50777b4e">lms_set_slave_timeout</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keywordtype">int</span> ms) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00190"></a>00190     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g227ebe8cad9776908c1977c43ef62d9c">lms_get_commit_interval</a>(<span class="keyword">const</span> <a class="code" href="structlms.html">lms_t</a> *lms) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00191"></a>00191     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="group__LMS__API.html#ge81a028f08139e64e97ac191bd899b32">lms_set_commit_interval</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> transactions) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00192"></a>00192     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="lightmediascanner_8c.html#668e706f6d5eae3ba5e36ff4db2ae514">lms_set_progress_callback</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <a class="code" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> cb, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, <a class="code" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a> free_data) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *<a class="code" href="group__LMS__API.html#g7b93a24e73af8b5d46b2507dd70ac588">lms_parser_add</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *so_path) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00195"></a>00195     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *<a class="code" href="group__LMS__API.html#g74b81422ff46a46b4b0fc44e8709ecee">lms_parser_find_and_add</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">name</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00196"></a>00196     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g1da5e5f834e0289ea49a0fbc2280feda">lms_parser_del</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *handle) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g4fd56e209d415b27466274726cc7d59f">lms_charset_add</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00199"></a>00199     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__API.html#g0b427b8b60957e29a0e504c10c5356b0">lms_charset_del</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00200"></a>00200 
+<a name="l00201"></a>00201 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00202"></a>00202 <span class="preprocessor"></span>}
+<a name="l00203"></a>00203 <span class="preprocessor">#endif</span>
+<a name="l00204"></a>00204 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_H_ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index b2a382e..f7abd36 100644 (file)
@@ -4,26 +4,27 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>src/lib/lightmediascanner.h File Reference</h1>
 <p>
-This graph shows which files directly or indirectly include this file:<p><center><img src="lightmediascanner_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner.hdep_map" alt=""></center>
+<div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner.hdep_map" alt=""></center>
 <map name="src/lib/lightmediascanner.hdep_map">
-<area shape="rect" href="lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="792,5,957,32"><area shape="rect" href="lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="488,107,696,133"><area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="773,56,976,83"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="769,107,980,133"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="src/lib/lightmediascanner_plugin.h" alt="" coords="223,107,428,133"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="477,208,707,235"><area shape="rect" href="lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="499,259,685,285"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="764,360,985,387"><area shape="rect" href="lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="756,157,993,184"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="763,208,987,235"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="760,259,989,285"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="764,309,985,336"></map>
+<area shape="rect" href="lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="5,239,203,265"><area shape="rect" href="lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="333,161,587,188"><area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="227,239,472,265"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="496,239,752,265"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="src/lib/lightmediascanner_plugin.h" alt="" coords="341,84,584,111"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="931,161,1205,188"><area shape="rect" href="lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="1397,161,1619,188"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="1085,239,1349,265"><area shape="rect" href="lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="776,239,1061,265"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="1373,239,1643,265"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="1667,239,1941,265"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="1965,239,2229,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -48,9 +49,25 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(...)</td></tr>
 
 <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structlms.html">lms</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structlms.html">lms</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#d118599605b4e66ca5f91376982b8a64">lms_t</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structlms__plugin.html">lms_plugin</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">lms_plugin_t</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structlms__plugin.html">lms_plugin</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#ccedd0cd6d535dcfee399957033074fd">lms_plugin_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a> )(void *data)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> )(<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *path, int path_len, <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lms_progress_status_t</a> status, void *data)</td></tr>
+
+<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lms_progress_status_t</a> { <br>
+&nbsp;&nbsp;<a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370204315e58ce4b7dfa6421b4d1556655d">LMS_PROGRESS_STATUS_UP_TO_DATE</a>, 
+<a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">LMS_PROGRESS_STATUS_PROCESSED</a>, 
+<a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11">LMS_PROGRESS_STATUS_DELETED</a>, 
+<a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152">LMS_PROGRESS_STATUS_KILLED</a>, 
+<br>
+&nbsp;&nbsp;<a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">LMS_PROGRESS_STATUS_ERROR_PARSE</a>, 
+<a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082">LMS_PROGRESS_STATUS_ERROR_COMM</a>
+<br>
+ }</td></tr>
 
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API <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) GNUC_MALLOC GNUC_WARN_UNUSED_RESULT</td></tr>
@@ -59,10 +76,16 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lms_process</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *top_path) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#890f1af4c54c88a63abdbeff5ecd49a3">lms_check</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *top_path) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#c5eda23c23b2ea76f001ac994c2ba9e2">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) GNUC_NON_NULL(1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#5b70063cf19648de70bb145404aa3d0b">lms_check</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *top_path) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API const <br>
-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>) GNUC_NON_NULL(1)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#bfd6888e606654c585e41aa946637432">lms_check_single_process</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *top_path) GNUC_NON_NULL(1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int API <br>
+int API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#30aa1e83907fc1049d2adccb28eef489">lms_stop_processing</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>) GNUC_NON_NULL(1)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API 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>) GNUC_NON_NULL(1)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API 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>) GNUC_PURE GNUC_NON_NULL(1)</td></tr>
 
@@ -74,18 +97,22 @@ char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="gr
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API 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) GNUC_NON_NULL(1)</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#d2da241599f7f576670d64184f972c43">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) GNUC_NON_NULL(1)</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#ce55a5c9cc767b96fa6f24b77bebc7c3">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) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#e48d0483903bbb9604d14b44f7c569d9">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) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API <br>
+<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#e48d0483903bbb9604d14b44f7c569d9">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) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> <br>
-*API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#5ba173b12c355bbdf7913bfff0ff6415">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) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API <br>
+<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#5ba173b12c355bbdf7913bfff0ff6415">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) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> <br>
-*API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#03afcd1e04665bdaebe73d9f6cc20553">lms_charset_add</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *charset) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API <br>
+<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#03afcd1e04665bdaebe73d9f6cc20553">lms_charset_add</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *charset) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> <br>
-*API int API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#35fc2de4828878b9dec07e8edda8a5e2">lms_charset_del</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *charset) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API <br>
+<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *API int API int <br>
+API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner_8h.html#35fc2de4828878b9dec07e8edda8a5e2">lms_charset_del</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *charset) GNUC_NON_NULL(1</td></tr>
 
 </table>
 <hr><h2>Define Documentation</h2>
@@ -102,8 +129,8 @@ char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="gr
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00108">108</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00111">111</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="d8ce4efaa307683d3d763b37b4711c53"></a><!-- doxytag: member="lightmediascanner.h::API" ref="d8ce4efaa307683d3d763b37b4711c53" args="" -->
@@ -119,8 +146,8 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00108">
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00142">142</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00145">145</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="ccce66c7f9844ae805b83bee1b9c32b5"></a><!-- doxytag: member="lightmediascanner.h::GNUC_CONST" ref="ccce66c7f9844ae805b83bee1b9c32b5" args="" -->
@@ -136,8 +163,8 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00142">
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00146">146</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00149">149</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="2213ea4dca0e242f957f63988caab768"></a><!-- doxytag: member="lightmediascanner.h::GNUC_MALLOC" ref="2213ea4dca0e242f957f63988caab768" args="" -->
@@ -153,8 +180,8 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00146">
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00145">145</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00148">148</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="6fe68cac0abf3e2ca61141920414e93a"></a><!-- doxytag: member="lightmediascanner.h::GNUC_NON_NULL" ref="6fe68cac0abf3e2ca61141920414e93a" args="(...)" -->
@@ -167,7 +194,7 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00145">
           <td class="paramtype"> <em>...</em>&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -175,8 +202,8 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00145">
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00149">149</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00152">152</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="3c631eb7d32b61d70bfc615ae54e5552"></a><!-- doxytag: member="lightmediascanner.h::GNUC_NULL_TERMINATED" ref="3c631eb7d32b61d70bfc615ae54e5552" args="" -->
@@ -192,8 +219,8 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00149">
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00143">143</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00146">146</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="7a9a21d60c8e567c8110c8e3069f8201"></a><!-- doxytag: member="lightmediascanner.h::GNUC_PURE" ref="7a9a21d60c8e567c8110c8e3069f8201" args="" -->
@@ -209,8 +236,8 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00143">
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00144">144</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00147">147</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="80a4050221a914ea58d5799f13109ebb"></a><!-- doxytag: member="lightmediascanner.h::GNUC_UNUSED" ref="80a4050221a914ea58d5799f13109ebb" args="" -->
@@ -226,8 +253,8 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00144">
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00147">147</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00150">150</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="34c563f40a0f86e597c51f1556669521"></a><!-- doxytag: member="lightmediascanner.h::GNUC_WARN_UNUSED_RESULT" ref="34c563f40a0f86e597c51f1556669521" args="" -->
@@ -243,11 +270,28 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00147">
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00148">148</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00151">151</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="55ee3894f334dc5b30431bf94971f110"></a><!-- doxytag: member="lightmediascanner.h::lms_free_callback_t" ref="55ee3894f334dc5b30431bf94971f110" args=")(void *data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void(* <a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a>)(void *data)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00176">176</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
+</div>
+</div><p>
 <a class="anchor" name="ccedd0cd6d535dcfee399957033074fd"></a><!-- doxytag: member="lightmediascanner.h::lms_plugin_t" ref="ccedd0cd6d535dcfee399957033074fd" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -261,8 +305,25 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00148">
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00165">165</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="117b4bb24ec8fc48fc4e6f0d7fa9ea3a"></a><!-- doxytag: member="lightmediascanner.h::lms_progress_callback_t" ref="117b4bb24ec8fc48fc4e6f0d7fa9ea3a" args=")(lms_t *lms, const char *path, int path_len, lms_progress_status_t status, void *data)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void(* <a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a>)(<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *path, int path_len, <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lms_progress_status_t</a> status, void *data)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00162">162</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00177">177</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="d118599605b4e66ca5f91376982b8a64"></a><!-- doxytag: member="lightmediascanner.h::lms_t" ref="d118599605b4e66ca5f91376982b8a64" args="" -->
@@ -278,8 +339,42 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00162">
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00164">164</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Enumeration Type Documentation</h2>
+<a class="anchor" name="52b270a30c58810720ae0650f64d2370"></a><!-- doxytag: member="lightmediascanner.h::lms_progress_status_t" ref="52b270a30c58810720ae0650f64d2370" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lms_progress_status_t</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">161</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.
+<dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="52b270a30c58810720ae0650f64d2370204315e58ce4b7dfa6421b4d1556655d"></a><!-- doxytag: member="LMS_PROGRESS_STATUS_UP_TO_DATE" ref="52b270a30c58810720ae0650f64d2370204315e58ce4b7dfa6421b4d1556655d" args="" -->LMS_PROGRESS_STATUS_UP_TO_DATE</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70"></a><!-- doxytag: member="LMS_PROGRESS_STATUS_PROCESSED" ref="52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70" args="" -->LMS_PROGRESS_STATUS_PROCESSED</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11"></a><!-- doxytag: member="LMS_PROGRESS_STATUS_DELETED" ref="52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11" args="" -->LMS_PROGRESS_STATUS_DELETED</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152"></a><!-- doxytag: member="LMS_PROGRESS_STATUS_KILLED" ref="52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152" args="" -->LMS_PROGRESS_STATUS_KILLED</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82"></a><!-- doxytag: member="LMS_PROGRESS_STATUS_ERROR_PARSE" ref="52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82" args="" -->LMS_PROGRESS_STATUS_ERROR_PARSE</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082"></a><!-- doxytag: member="LMS_PROGRESS_STATUS_ERROR_COMM" ref="52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082" args="" -->LMS_PROGRESS_STATUS_ERROR_COMM</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00167">167</a> of file <a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -302,7 +397,7 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -331,7 +426,7 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -341,12 +436,12 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">
 
 </div>
 </div><p>
-<a class="anchor" name="890f1af4c54c88a63abdbeff5ecd49a3"></a><!-- doxytag: member="lightmediascanner.h::lms_check" ref="890f1af4c54c88a63abdbeff5ecd49a3" args="(lms_t *lms, const char *top_path) GNUC_NON_NULL(1" -->
+<a class="anchor" name="5b70063cf19648de70bb145404aa3d0b"></a><!-- doxytag: member="lightmediascanner.h::lms_check" ref="5b70063cf19648de70bb145404aa3d0b" args="(lms_t *lms, const char *top_path) GNUC_NON_NULL(1" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">API int API int lms_check           </td>
+          <td class="memname">API int API int API int lms_check           </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
           <td class="paramname"> <em>lms</em>, </td>
@@ -360,7 +455,36 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="bfd6888e606654c585e41aa946637432"></a><!-- doxytag: member="lightmediascanner.h::lms_check_single_process" ref="bfd6888e606654c585e41aa946637432" args="(lms_t *lms, const char *top_path) GNUC_NON_NULL(1" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">API int API int API int API int lms_check_single_process           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lms</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>top_path</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -389,7 +513,7 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -418,7 +542,7 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -447,7 +571,7 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -476,18 +600,126 @@ Definition at line <a class="el" href="lightmediascanner_8h-source.html#l00161">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="c5eda23c23b2ea76f001ac994c2ba9e2"></a><!-- doxytag: member="lightmediascanner.h::lms_process_single_process" ref="c5eda23c23b2ea76f001ac994c2ba9e2" args="(lms_t *lms, const char *top_path) GNUC_NON_NULL(1" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">API int API int lms_process_single_process           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lms</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>top_path</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d2da241599f7f576670d64184f972c43"></a><!-- doxytag: member="lightmediascanner.h::lms_set_progress_callback" ref="d2da241599f7f576670d64184f972c43" args="(lms_t *lms, lms_progress_callback_t cb, const void *data, lms_free_callback_t free_data) GNUC_NON_NULL(1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">API void lms_set_progress_callback           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lms</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a>&nbsp;</td>
+          <td class="paramname"> <em>cb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&nbsp;</td>
+          <td class="paramname"> <em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a>&nbsp;</td>
+          <td class="paramname"> <em>free_data</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
+Set callback to be used to report progress (check and process).<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <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>
+    <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>
+    <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>
+    <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>
+  </table>
+</dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00193">193</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="30aa1e83907fc1049d2adccb28eef489"></a><!-- doxytag: member="lightmediascanner.h::lms_stop_processing" ref="30aa1e83907fc1049d2adccb28eef489" args="(lms_t *lms) GNUC_NON_NULL(1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">API int API int API int API int API void lms_stop_processing           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lms</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+
+<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>
 
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:54 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 756e0e2..beea451 100644 (file)
@@ -1,12 +1,12 @@
-<area shape="rect" href="$lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="792,5,957,32">
-<area shape="rect" href="$lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="488,107,696,133">
-<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="773,56,976,83">
-<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="769,107,980,133">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="src/lib/lightmediascanner_plugin.h" alt="" coords="223,107,428,133">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="477,208,707,235">
-<area shape="rect" href="$lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="499,259,685,285">
-<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="764,360,985,387">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="756,157,993,184">
-<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="763,208,987,235">
-<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="760,259,989,285">
-<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="764,309,985,336">
+<area shape="rect" href="$lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="5,239,203,265">
+<area shape="rect" href="$lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="333,161,587,188">
+<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="227,239,472,265">
+<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="496,239,752,265">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="src/lib/lightmediascanner_plugin.h" alt="" coords="341,84,584,111">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="931,161,1205,188">
+<area shape="rect" href="$lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="1397,161,1619,188">
+<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="1085,239,1349,265">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="776,239,1061,265">
+<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="1373,239,1643,265">
+<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="1667,239,1941,265">
+<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="1965,239,2229,265">
index 9573517..03ed550 100644 (file)
@@ -1 +1 @@
-3896306936d5e31832c584767f4ea72b
\ No newline at end of file
+0d2628ac261d8702b7895a8e9fce450c
\ No newline at end of file
index 7d4ac43..80ad622 100644 (file)
Binary files a/www/api/lightmediascanner_8h__dep__incl.png and b/www/api/lightmediascanner_8h__dep__incl.png differ
index ccf239c..363a3ab 100644 (file)
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<h1>src/lib/lightmediascanner_charset_conv.c</h1><a href="lightmediascanner__charset__conv_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__charset__conv_8h.html">lightmediascanner_charset_conv.h</a>"</span>
-<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;iconv.h&gt;</span>
-<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
-<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
-<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;string.h&gt;</span>
-<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;errno.h&gt;</span>
-<a name="l00007"></a>00007 
-<a name="l00008"></a>00008 <span class="keyword">struct </span><a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a> {
-<a name="l00009"></a>00009     iconv_t check;
-<a name="l00010"></a>00010     iconv_t fallback;
-<a name="l00011"></a>00011     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size;
-<a name="l00012"></a>00012     iconv_t *convs;
-<a name="l00013"></a>00013     <span class="keywordtype">char</span> **names;
-<a name="l00014"></a>00014 };
-<a name="l00015"></a>00015 
-<a name="l00025"></a>00025 <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *
-<a name="l00026"></a><a class="code" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">00026</a> <a class="code" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lms_charset_conv_new</a>(<span class="keywordtype">void</span>)
-<a name="l00027"></a>00027 {
-<a name="l00028"></a>00028     <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc;
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030     lcc = malloc(<span class="keyword">sizeof</span>(*lcc));
-<a name="l00031"></a>00031     <span class="keywordflow">if</span> (!lcc) {
-<a name="l00032"></a>00032         perror(<span class="stringliteral">"malloc"</span>);
-<a name="l00033"></a>00033         <span class="keywordflow">return</span> NULL;
-<a name="l00034"></a>00034     }
-<a name="l00035"></a>00035 
-<a name="l00036"></a>00036     lcc-&gt;check = iconv_open(<span class="stringliteral">"UTF-8"</span>, <span class="stringliteral">"UTF-8"</span>);
-<a name="l00037"></a>00037     <span class="keywordflow">if</span> (lcc-&gt;check == (iconv_t)-1) {
-<a name="l00038"></a>00038         perror(<span class="stringliteral">"ERROR: could not create conversion checker"</span>);
-<a name="l00039"></a>00039         <span class="keywordflow">goto</span> error_check;
-<a name="l00040"></a>00040     }
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042     lcc-&gt;fallback = iconv_open(<span class="stringliteral">"UTF-8//IGNORE"</span>, <span class="stringliteral">"UTF-8"</span>);
-<a name="l00043"></a>00043     <span class="keywordflow">if</span> (lcc-&gt;fallback == (iconv_t)-1) {
-<a name="l00044"></a>00044         perror(<span class="stringliteral">"ERROR: could not create conversion fallback"</span>);
-<a name="l00045"></a>00045         <span class="keywordflow">goto</span> error_fallback;
-<a name="l00046"></a>00046     }
-<a name="l00047"></a>00047 
-<a name="l00048"></a>00048     lcc-&gt;size = 0;
-<a name="l00049"></a>00049     lcc-&gt;convs = NULL;
-<a name="l00050"></a>00050     lcc-&gt;names = NULL;
-<a name="l00051"></a>00051     <span class="keywordflow">return</span> lcc;
-<a name="l00052"></a>00052 
-<a name="l00053"></a>00053   error_fallback:
-<a name="l00054"></a>00054     iconv_close(lcc-&gt;check);
-<a name="l00055"></a>00055   error_check:
-<a name="l00056"></a>00056     free(lcc);
-<a name="l00057"></a>00057 
-<a name="l00058"></a>00058     <span class="keywordflow">return</span> NULL;
-<a name="l00059"></a>00059 }
-<a name="l00060"></a>00060 
-<a name="l00066"></a>00066 <span class="keywordtype">void</span>
-<a name="l00067"></a><a class="code" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">00067</a> <a class="code" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc)
-<a name="l00068"></a>00068 {
-<a name="l00069"></a>00069     <span class="keywordtype">int</span> i;
-<a name="l00070"></a>00070 
-<a name="l00071"></a>00071     <span class="keywordflow">if</span> (!lcc)
-<a name="l00072"></a>00072         <span class="keywordflow">return</span>;
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074     iconv_close(lcc-&gt;check);
-<a name="l00075"></a>00075     iconv_close(lcc-&gt;fallback);
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>src/lib/lightmediascanner_charset_conv.c</h1><a href="lightmediascanner__charset__conv_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__charset__conv_8h.html">lightmediascanner_charset_conv.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;iconv.h&gt;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;errno.h&gt;</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;ctype.h&gt;</span>
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="keyword">struct </span><a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a> {
+<a name="l00030"></a>00030     iconv_t check;
+<a name="l00031"></a>00031     iconv_t fallback;
+<a name="l00032"></a>00032     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size;
+<a name="l00033"></a>00033     iconv_t *convs;
+<a name="l00034"></a>00034     <span class="keywordtype">char</span> **names;
+<a name="l00035"></a>00035 };
+<a name="l00036"></a>00036 
+<a name="l00046"></a>00046 <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *
+<a name="l00047"></a><a class="code" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">00047</a> <a class="code" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lms_charset_conv_new_full</a>(<span class="keywordtype">int</span> use_check, <span class="keywordtype">int</span> use_fallback)
+<a name="l00048"></a>00048 {
+<a name="l00049"></a>00049     <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc;
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051     lcc = malloc(<span class="keyword">sizeof</span>(*lcc));
+<a name="l00052"></a>00052     <span class="keywordflow">if</span> (!lcc) {
+<a name="l00053"></a>00053         perror(<span class="stringliteral">"malloc"</span>);
+<a name="l00054"></a>00054         <span class="keywordflow">return</span> NULL;
+<a name="l00055"></a>00055     }
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057     <span class="keywordflow">if</span> (!use_check)
+<a name="l00058"></a>00058         lcc-&gt;check = (iconv_t)-1;
+<a name="l00059"></a>00059     <span class="keywordflow">else</span> {
+<a name="l00060"></a>00060         lcc-&gt;check = iconv_open(<span class="stringliteral">"UTF-8"</span>, <span class="stringliteral">"UTF-8"</span>);
+<a name="l00061"></a>00061         <span class="keywordflow">if</span> (lcc-&gt;check == (iconv_t)-1) {
+<a name="l00062"></a>00062             perror(<span class="stringliteral">"ERROR: could not create conversion checker"</span>);
+<a name="l00063"></a>00063             <span class="keywordflow">goto</span> error_check;
+<a name="l00064"></a>00064         }
+<a name="l00065"></a>00065     }
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067     <span class="keywordflow">if</span> (!use_fallback)
+<a name="l00068"></a>00068         lcc-&gt;fallback = (iconv_t)-1;
+<a name="l00069"></a>00069     <span class="keywordflow">else</span> {
+<a name="l00070"></a>00070         lcc-&gt;fallback = iconv_open(<span class="stringliteral">"UTF-8//IGNORE"</span>, <span class="stringliteral">"UTF-8"</span>);
+<a name="l00071"></a>00071         <span class="keywordflow">if</span> (lcc-&gt;fallback == (iconv_t)-1) {
+<a name="l00072"></a>00072             perror(<span class="stringliteral">"ERROR: could not create conversion fallback"</span>);
+<a name="l00073"></a>00073             <span class="keywordflow">goto</span> error_fallback;
+<a name="l00074"></a>00074         }
+<a name="l00075"></a>00075     }
 <a name="l00076"></a>00076 
-<a name="l00077"></a>00077     <span class="keywordflow">for</span> (i = 0; i &lt; lcc-&gt;size; i++) {
-<a name="l00078"></a>00078         iconv_close(lcc-&gt;convs[i]);
-<a name="l00079"></a>00079         free(lcc-&gt;names[i]);
-<a name="l00080"></a>00080     }
+<a name="l00077"></a>00077     lcc-&gt;size = 0;
+<a name="l00078"></a>00078     lcc-&gt;convs = NULL;
+<a name="l00079"></a>00079     lcc-&gt;names = NULL;
+<a name="l00080"></a>00080     <span class="keywordflow">return</span> lcc;
 <a name="l00081"></a>00081 
-<a name="l00082"></a>00082     <span class="keywordflow">if</span> (lcc-&gt;convs)
-<a name="l00083"></a>00083         free(lcc-&gt;convs);
-<a name="l00084"></a>00084     if (lcc-&gt;names)
-<a name="l00085"></a>00085         free(lcc-&gt;names);
+<a name="l00082"></a>00082   error_fallback:
+<a name="l00083"></a>00083     <span class="keywordflow">if</span> (lcc-&gt;check != (iconv_t)-1)
+<a name="l00084"></a>00084         iconv_close(lcc-&gt;check);
+<a name="l00085"></a>00085   error_check:
 <a name="l00086"></a>00086     free(lcc);
-<a name="l00087"></a>00087 }
-<a name="l00088"></a>00088 
-<a name="l00097"></a>00097 <span class="keywordtype">int</span>
-<a name="l00098"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">00098</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
-<a name="l00099"></a>00099 {
-<a name="l00100"></a>00100     iconv_t cd, *convs;
-<a name="l00101"></a>00101     <span class="keywordtype">char</span> **names;
-<a name="l00102"></a>00102     <span class="keywordtype">int</span> idx, ns;
-<a name="l00103"></a>00103 
-<a name="l00104"></a>00104     <span class="keywordflow">if</span> (!lcc)
-<a name="l00105"></a>00105         <span class="keywordflow">return</span> -1;
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107     <span class="keywordflow">if</span> (!charset)
-<a name="l00108"></a>00108         <span class="keywordflow">return</span> -2;
-<a name="l00109"></a>00109 
-<a name="l00110"></a>00110     cd = iconv_open(<span class="stringliteral">"UTF-8"</span>, charset);
-<a name="l00111"></a>00111     <span class="keywordflow">if</span> (cd == (iconv_t)-1) {
-<a name="l00112"></a>00112         fprintf(stderr, <span class="stringliteral">"ERROR: could not add conversion charset '%s': %s\n"</span>,
-<a name="l00113"></a>00113                 charset, strerror(errno));
-<a name="l00114"></a>00114         <span class="keywordflow">return</span> -3;
-<a name="l00115"></a>00115     }
-<a name="l00116"></a>00116 
-<a name="l00117"></a>00117     idx = lcc-&gt;size;
-<a name="l00118"></a>00118     ns = lcc-&gt;size + 1;
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120     convs = realloc(lcc-&gt;convs, ns * <span class="keyword">sizeof</span>(*convs));
-<a name="l00121"></a>00121     <span class="keywordflow">if</span> (!convs)
-<a name="l00122"></a>00122         <span class="keywordflow">goto</span> realloc_error;
-<a name="l00123"></a>00123     lcc-&gt;convs = convs;
-<a name="l00124"></a>00124     lcc-&gt;convs[idx] = cd;
-<a name="l00125"></a>00125 
-<a name="l00126"></a>00126     names = realloc(lcc-&gt;names, ns * <span class="keyword">sizeof</span>(*names));
-<a name="l00127"></a>00127     <span class="keywordflow">if</span> (!names)
-<a name="l00128"></a>00128         <span class="keywordflow">goto</span> realloc_error;
-<a name="l00129"></a>00129     lcc-&gt;names = names;
-<a name="l00130"></a>00130     lcc-&gt;names[idx] = strdup(charset);
-<a name="l00131"></a>00131     <span class="keywordflow">if</span> (!lcc-&gt;names[idx])
-<a name="l00132"></a>00132         <span class="keywordflow">goto</span> realloc_error;
-<a name="l00133"></a>00133 
-<a name="l00134"></a>00134     lcc-&gt;size = ns;
-<a name="l00135"></a>00135     <span class="keywordflow">return</span> 0;
-<a name="l00136"></a>00136 
-<a name="l00137"></a>00137   realloc_error:
-<a name="l00138"></a>00138     perror(<span class="stringliteral">"realloc"</span>);
-<a name="l00139"></a>00139     iconv_close(cd);
-<a name="l00140"></a>00140     <span class="keywordflow">return</span> -4;
-<a name="l00141"></a>00141 }
-<a name="l00142"></a>00142 
-<a name="l00143"></a>00143 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00144"></a>00144 _find(<span class="keyword">const</span> <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
-<a name="l00145"></a>00145 {
-<a name="l00146"></a>00146     <span class="keywordtype">int</span> i;
-<a name="l00147"></a>00147 
-<a name="l00148"></a>00148     <span class="keywordflow">for</span> (i = 0; i &lt; lcc-&gt;size; i++)
-<a name="l00149"></a>00149         <span class="keywordflow">if</span> (strcmp(lcc-&gt;names[i], charset) == 0)
-<a name="l00150"></a>00150             <span class="keywordflow">return</span> i;
-<a name="l00151"></a>00151 
-<a name="l00152"></a>00152     <span class="keywordflow">return</span> -1;
-<a name="l00153"></a>00153 }
-<a name="l00154"></a>00154 
-<a name="l00163"></a>00163 <span class="keywordtype">int</span>
-<a name="l00164"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">00164</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lms_charset_conv_del</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
-<a name="l00165"></a>00165 {
-<a name="l00166"></a>00166     iconv_t *convs;
-<a name="l00167"></a>00167     <span class="keywordtype">char</span> **names;
-<a name="l00168"></a>00168     <span class="keywordtype">int</span> idx;
-<a name="l00169"></a>00169 
-<a name="l00170"></a>00170     <span class="keywordflow">if</span> (!lcc)
-<a name="l00171"></a>00171         <span class="keywordflow">return</span> -1;
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088     <span class="keywordflow">return</span> NULL;
+<a name="l00089"></a>00089 }
+<a name="l00090"></a>00090 
+<a name="l00100"></a>00100 <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *
+<a name="l00101"></a><a class="code" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">00101</a> <a class="code" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lms_charset_conv_new</a>(<span class="keywordtype">void</span>)
+<a name="l00102"></a>00102 {
+<a name="l00103"></a>00103     <span class="keywordflow">return</span> <a class="code" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lms_charset_conv_new_full</a>(1, 1);
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105 
+<a name="l00111"></a>00111 <span class="keywordtype">void</span>
+<a name="l00112"></a><a class="code" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">00112</a> <a class="code" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc)
+<a name="l00113"></a>00113 {
+<a name="l00114"></a>00114     <span class="keywordtype">int</span> i;
+<a name="l00115"></a>00115 
+<a name="l00116"></a>00116     <span class="keywordflow">if</span> (!lcc)
+<a name="l00117"></a>00117         <span class="keywordflow">return</span>;
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119     <span class="keywordflow">if</span> (lcc-&gt;check != (iconv_t)-1)
+<a name="l00120"></a>00120         iconv_close(lcc-&gt;check);
+<a name="l00121"></a>00121     <span class="keywordflow">if</span> (lcc-&gt;fallback != (iconv_t)-1)
+<a name="l00122"></a>00122         iconv_close(lcc-&gt;fallback);
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124     <span class="keywordflow">for</span> (i = 0; i &lt; lcc-&gt;size; i++) {
+<a name="l00125"></a>00125         iconv_close(lcc-&gt;convs[i]);
+<a name="l00126"></a>00126         free(lcc-&gt;names[i]);
+<a name="l00127"></a>00127     }
+<a name="l00128"></a>00128 
+<a name="l00129"></a>00129     <span class="keywordflow">if</span> (lcc-&gt;convs)
+<a name="l00130"></a>00130         free(lcc-&gt;convs);
+<a name="l00131"></a>00131     <span class="keywordflow">if</span> (lcc-&gt;names)
+<a name="l00132"></a>00132         free(lcc-&gt;names);
+<a name="l00133"></a>00133     free(lcc);
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135 
+<a name="l00144"></a>00144 <span class="keywordtype">int</span>
+<a name="l00145"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">00145</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
+<a name="l00146"></a>00146 {
+<a name="l00147"></a>00147     iconv_t cd, *convs;
+<a name="l00148"></a>00148     <span class="keywordtype">char</span> **names;
+<a name="l00149"></a>00149     <span class="keywordtype">int</span> idx, ns;
+<a name="l00150"></a>00150 
+<a name="l00151"></a>00151     <span class="keywordflow">if</span> (!lcc)
+<a name="l00152"></a>00152         <span class="keywordflow">return</span> -1;
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154     <span class="keywordflow">if</span> (!charset)
+<a name="l00155"></a>00155         <span class="keywordflow">return</span> -2;
+<a name="l00156"></a>00156 
+<a name="l00157"></a>00157     cd = iconv_open(<span class="stringliteral">"UTF-8"</span>, charset);
+<a name="l00158"></a>00158     <span class="keywordflow">if</span> (cd == (iconv_t)-1) {
+<a name="l00159"></a>00159         fprintf(stderr, <span class="stringliteral">"ERROR: could not add conversion charset '%s': %s\n"</span>,
+<a name="l00160"></a>00160                 charset, strerror(errno));
+<a name="l00161"></a>00161         <span class="keywordflow">return</span> -3;
+<a name="l00162"></a>00162     }
+<a name="l00163"></a>00163 
+<a name="l00164"></a>00164     idx = lcc-&gt;size;
+<a name="l00165"></a>00165     ns = lcc-&gt;size + 1;
+<a name="l00166"></a>00166 
+<a name="l00167"></a>00167     convs = realloc(lcc-&gt;convs, ns * <span class="keyword">sizeof</span>(*convs));
+<a name="l00168"></a>00168     <span class="keywordflow">if</span> (!convs)
+<a name="l00169"></a>00169         <span class="keywordflow">goto</span> realloc_error;
+<a name="l00170"></a>00170     lcc-&gt;convs = convs;
+<a name="l00171"></a>00171     lcc-&gt;convs[idx] = cd;
 <a name="l00172"></a>00172 
-<a name="l00173"></a>00173     <span class="keywordflow">if</span> (!charset)
-<a name="l00174"></a>00174         <span class="keywordflow">return</span> -2;
-<a name="l00175"></a>00175 
-<a name="l00176"></a>00176     idx = _find(lcc, charset);
-<a name="l00177"></a>00177     <span class="keywordflow">if</span> (idx &lt; 0) {
-<a name="l00178"></a>00178         fprintf(stderr, <span class="stringliteral">"ERROR: could not find charset '%s'\n"</span>, charset);
-<a name="l00179"></a>00179         <span class="keywordflow">return</span> -3;
-<a name="l00180"></a>00180     }
-<a name="l00181"></a>00181 
-<a name="l00182"></a>00182     iconv_close(lcc-&gt;convs[idx]);
-<a name="l00183"></a>00183     free(lcc-&gt;names[idx]);
-<a name="l00184"></a>00184 
-<a name="l00185"></a>00185     lcc-&gt;size--;
-<a name="l00186"></a>00186     <span class="keywordflow">for</span> (; idx &lt; lcc-&gt;size; idx++) {
-<a name="l00187"></a>00187         lcc-&gt;convs[idx] = lcc-&gt;convs[idx + 1];
-<a name="l00188"></a>00188         lcc-&gt;names[idx] = lcc-&gt;names[idx + 1];
-<a name="l00189"></a>00189     }
-<a name="l00190"></a>00190 
-<a name="l00191"></a>00191     convs = realloc(lcc-&gt;convs, lcc-&gt;size * <span class="keyword">sizeof</span>(*convs));
-<a name="l00192"></a>00192     <span class="keywordflow">if</span> (convs)
-<a name="l00193"></a>00193         lcc-&gt;convs = convs;
-<a name="l00194"></a>00194     <span class="keywordflow">else</span>
-<a name="l00195"></a>00195         perror(<span class="stringliteral">"could not realloc 'convs'"</span>);
-<a name="l00196"></a>00196 
-<a name="l00197"></a>00197     names = realloc(lcc-&gt;names, lcc-&gt;size * <span class="keyword">sizeof</span>(*names));
-<a name="l00198"></a>00198     <span class="keywordflow">if</span> (names)
-<a name="l00199"></a>00199         lcc-&gt;names = names;
-<a name="l00200"></a>00200     <span class="keywordflow">else</span>
-<a name="l00201"></a>00201         perror(<span class="stringliteral">"could not realloc 'names'"</span>);
-<a name="l00202"></a>00202 
-<a name="l00203"></a>00203     <span class="keywordflow">return</span> 0;
-<a name="l00204"></a>00204 }
-<a name="l00205"></a>00205 
-<a name="l00206"></a>00206 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00207"></a>00207 _check(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *istr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ilen, <span class="keywordtype">char</span> *ostr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> olen)
-<a name="l00208"></a>00208 {
-<a name="l00209"></a>00209     <span class="keywordtype">char</span> *inbuf, *outbuf;
-<a name="l00210"></a>00210     <span class="keywordtype">size_t</span> r, inlen, outlen;
-<a name="l00211"></a>00211 
-<a name="l00212"></a>00212     inbuf = (<span class="keywordtype">char</span> *)istr;
-<a name="l00213"></a>00213     inlen = ilen;
-<a name="l00214"></a>00214     outbuf = ostr;
-<a name="l00215"></a>00215     outlen = olen;
+<a name="l00173"></a>00173     names = realloc(lcc-&gt;names, ns * <span class="keyword">sizeof</span>(*names));
+<a name="l00174"></a>00174     <span class="keywordflow">if</span> (!names)
+<a name="l00175"></a>00175         <span class="keywordflow">goto</span> realloc_error;
+<a name="l00176"></a>00176     lcc-&gt;names = names;
+<a name="l00177"></a>00177     lcc-&gt;names[idx] = strdup(charset);
+<a name="l00178"></a>00178     <span class="keywordflow">if</span> (!lcc-&gt;names[idx])
+<a name="l00179"></a>00179         <span class="keywordflow">goto</span> realloc_error;
+<a name="l00180"></a>00180 
+<a name="l00181"></a>00181     lcc-&gt;size = ns;
+<a name="l00182"></a>00182     <span class="keywordflow">return</span> 0;
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184   realloc_error:
+<a name="l00185"></a>00185     perror(<span class="stringliteral">"realloc"</span>);
+<a name="l00186"></a>00186     iconv_close(cd);
+<a name="l00187"></a>00187     <span class="keywordflow">return</span> -4;
+<a name="l00188"></a>00188 }
+<a name="l00189"></a>00189 
+<a name="l00190"></a>00190 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00191"></a>00191 _find(<span class="keyword">const</span> <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
+<a name="l00192"></a>00192 {
+<a name="l00193"></a>00193     <span class="keywordtype">int</span> i;
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195     <span class="keywordflow">for</span> (i = 0; i &lt; lcc-&gt;size; i++)
+<a name="l00196"></a>00196         <span class="keywordflow">if</span> (strcmp(lcc-&gt;names[i], charset) == 0)
+<a name="l00197"></a>00197             <span class="keywordflow">return</span> i;
+<a name="l00198"></a>00198 
+<a name="l00199"></a>00199     <span class="keywordflow">return</span> -1;
+<a name="l00200"></a>00200 }
+<a name="l00201"></a>00201 
+<a name="l00210"></a>00210 <span class="keywordtype">int</span>
+<a name="l00211"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">00211</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lms_charset_conv_del</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *charset)
+<a name="l00212"></a>00212 {
+<a name="l00213"></a>00213     iconv_t *convs;
+<a name="l00214"></a>00214     <span class="keywordtype">char</span> **names;
+<a name="l00215"></a>00215     <span class="keywordtype">int</span> idx;
 <a name="l00216"></a>00216 
-<a name="l00217"></a>00217     iconv(lcc-&gt;check, NULL, NULL, NULL, NULL);
-<a name="l00218"></a>00218     r = iconv(lcc-&gt;check, &amp;inbuf, &amp;inlen, &amp;outbuf, &amp;outlen);
-<a name="l00219"></a>00219     <span class="keywordflow">if</span> (r == (<span class="keywordtype">size_t</span>)-1)
-<a name="l00220"></a>00220         <span class="keywordflow">return</span> -1;
-<a name="l00221"></a>00221     <span class="keywordflow">else</span>
-<a name="l00222"></a>00222         <span class="keywordflow">return</span> 0;
-<a name="l00223"></a>00223 }
-<a name="l00224"></a>00224 
-<a name="l00225"></a>00225 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00226"></a>00226 _conv(iconv_t cd, <span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len, <span class="keywordtype">char</span> *ostr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> olen)
-<a name="l00227"></a>00227 {
-<a name="l00228"></a>00228     <span class="keywordtype">char</span> *inbuf, *outbuf;
-<a name="l00229"></a>00229     <span class="keywordtype">size_t</span> r, inlen, outlen;
-<a name="l00230"></a>00230 
-<a name="l00231"></a>00231     inbuf = *p_str;
-<a name="l00232"></a>00232     inlen = *p_len;
-<a name="l00233"></a>00233     outbuf = ostr;
-<a name="l00234"></a>00234     outlen = olen;
-<a name="l00235"></a>00235 
-<a name="l00236"></a>00236     iconv(cd, NULL, NULL, NULL, NULL);
-<a name="l00237"></a>00237     r = iconv(cd, &amp;inbuf, &amp;inlen, &amp;outbuf, &amp;outlen);
-<a name="l00238"></a>00238     <span class="keywordflow">if</span> (r == (<span class="keywordtype">size_t</span>)-1)
-<a name="l00239"></a>00239         <span class="keywordflow">return</span> -1;
-<a name="l00240"></a>00240 
-<a name="l00241"></a>00241     *p_len = olen - outlen;
-<a name="l00242"></a>00242     free(*p_str);
-<a name="l00243"></a>00243     *p_str = ostr;
-<a name="l00244"></a>00244 
-<a name="l00245"></a>00245     outbuf = realloc(*p_str, *p_len + 1);
-<a name="l00246"></a>00246     <span class="keywordflow">if</span> (!outbuf)
-<a name="l00247"></a>00247         perror(<span class="stringliteral">"realloc"</span>);
-<a name="l00248"></a>00248     <span class="keywordflow">else</span>
-<a name="l00249"></a>00249         *p_str = outbuf;
-<a name="l00250"></a>00250 
-<a name="l00251"></a>00251     (*p_str)[*p_len] = <span class="charliteral">'\0'</span>;
+<a name="l00217"></a>00217     <span class="keywordflow">if</span> (!lcc)
+<a name="l00218"></a>00218         <span class="keywordflow">return</span> -1;
+<a name="l00219"></a>00219 
+<a name="l00220"></a>00220     <span class="keywordflow">if</span> (!charset)
+<a name="l00221"></a>00221         <span class="keywordflow">return</span> -2;
+<a name="l00222"></a>00222 
+<a name="l00223"></a>00223     idx = _find(lcc, charset);
+<a name="l00224"></a>00224     <span class="keywordflow">if</span> (idx &lt; 0) {
+<a name="l00225"></a>00225         fprintf(stderr, <span class="stringliteral">"ERROR: could not find charset '%s'\n"</span>, charset);
+<a name="l00226"></a>00226         <span class="keywordflow">return</span> -3;
+<a name="l00227"></a>00227     }
+<a name="l00228"></a>00228 
+<a name="l00229"></a>00229     iconv_close(lcc-&gt;convs[idx]);
+<a name="l00230"></a>00230     free(lcc-&gt;names[idx]);
+<a name="l00231"></a>00231 
+<a name="l00232"></a>00232     lcc-&gt;size--;
+<a name="l00233"></a>00233     <span class="keywordflow">for</span> (; idx &lt; lcc-&gt;size; idx++) {
+<a name="l00234"></a>00234         lcc-&gt;convs[idx] = lcc-&gt;convs[idx + 1];
+<a name="l00235"></a>00235         lcc-&gt;names[idx] = lcc-&gt;names[idx + 1];
+<a name="l00236"></a>00236     }
+<a name="l00237"></a>00237 
+<a name="l00238"></a>00238     convs = realloc(lcc-&gt;convs, lcc-&gt;size * <span class="keyword">sizeof</span>(*convs));
+<a name="l00239"></a>00239     <span class="keywordflow">if</span> (convs)
+<a name="l00240"></a>00240         lcc-&gt;convs = convs;
+<a name="l00241"></a>00241     <span class="keywordflow">else</span>
+<a name="l00242"></a>00242         perror(<span class="stringliteral">"could not realloc 'convs'"</span>);
+<a name="l00243"></a>00243 
+<a name="l00244"></a>00244     names = realloc(lcc-&gt;names, lcc-&gt;size * <span class="keyword">sizeof</span>(*names));
+<a name="l00245"></a>00245     <span class="keywordflow">if</span> (names)
+<a name="l00246"></a>00246         lcc-&gt;names = names;
+<a name="l00247"></a>00247     <span class="keywordflow">else</span>
+<a name="l00248"></a>00248         perror(<span class="stringliteral">"could not realloc 'names'"</span>);
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250     <span class="keywordflow">return</span> 0;
+<a name="l00251"></a>00251 }
 <a name="l00252"></a>00252 
-<a name="l00253"></a>00253     <span class="keywordflow">return</span> 0;
-<a name="l00254"></a>00254 }
-<a name="l00255"></a>00255 
-<a name="l00265"></a>00265 <span class="keywordtype">int</span>
-<a name="l00266"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">00266</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len)
-<a name="l00267"></a>00267 {
-<a name="l00268"></a>00268     <span class="keywordtype">char</span> *outstr;
-<a name="l00269"></a>00269     <span class="keywordtype">int</span> i, outlen;
-<a name="l00270"></a>00270 
-<a name="l00271"></a>00271     <span class="keywordflow">if</span> (!lcc)
-<a name="l00272"></a>00272         <span class="keywordflow">return</span> -1;
-<a name="l00273"></a>00273     <span class="keywordflow">if</span> (!p_str)
-<a name="l00274"></a>00274         <span class="keywordflow">return</span> -2;
-<a name="l00275"></a>00275     <span class="keywordflow">if</span> (!p_len)
-<a name="l00276"></a>00276         <span class="keywordflow">return</span> -3;
-<a name="l00277"></a>00277     <span class="keywordflow">if</span> (!*p_str || !*p_len)
-<a name="l00278"></a>00278         <span class="keywordflow">return</span> 0;
-<a name="l00279"></a>00279 
-<a name="l00280"></a>00280     outlen = 2 * *p_len;
-<a name="l00281"></a>00281     outstr = malloc(outlen + 1);
-<a name="l00282"></a>00282     <span class="keywordflow">if</span> (!outstr) {
-<a name="l00283"></a>00283         perror(<span class="stringliteral">"malloc"</span>);
-<a name="l00284"></a>00284         <span class="keywordflow">return</span> -4;
-<a name="l00285"></a>00285     }
-<a name="l00286"></a>00286 
-<a name="l00287"></a>00287     <span class="keywordflow">if</span> (_check(lcc, *p_str, *p_len, outstr, outlen) == 0) {
-<a name="l00288"></a>00288         free(outstr);
-<a name="l00289"></a>00289         <span class="keywordflow">return</span> 0;
-<a name="l00290"></a>00290     }
-<a name="l00291"></a>00291 
-<a name="l00292"></a>00292     <span class="keywordflow">for</span> (i = 0; i &lt; lcc-&gt;size; i++)
-<a name="l00293"></a>00293         <span class="keywordflow">if</span> (_conv(lcc-&gt;convs[i], p_str, p_len, outstr, outlen) == 0)
-<a name="l00294"></a>00294             <span class="keywordflow">return</span> 0;
-<a name="l00295"></a>00295 
-<a name="l00296"></a>00296     fprintf(stderr,
-<a name="l00297"></a>00297             <span class="stringliteral">"WARNING: could not convert '%*s' to any charset, use fallback\n"</span>,
-<a name="l00298"></a>00298             *p_len, *p_str);
-<a name="l00299"></a>00299     i = _conv(lcc-&gt;fallback, p_str, p_len, outstr, outlen);
-<a name="l00300"></a>00300     <span class="keywordflow">if</span> (i &lt; 0) {
-<a name="l00301"></a>00301         memset(*p_str, <span class="charliteral">'?'</span>, *p_len);
-<a name="l00302"></a>00302         free(outstr);
-<a name="l00303"></a>00303     }
-<a name="l00304"></a>00304     <span class="keywordflow">return</span> i;
-<a name="l00305"></a>00305 }
-<a name="l00306"></a>00306 
-<a name="l00316"></a>00316 <span class="keywordtype">int</span>
-<a name="l00317"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">00317</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lms_charset_conv_check</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len)
-<a name="l00318"></a>00318 {
-<a name="l00319"></a>00319     <span class="keywordtype">char</span> *outstr;
-<a name="l00320"></a>00320     <span class="keywordtype">int</span> r, outlen;
-<a name="l00321"></a>00321 
-<a name="l00322"></a>00322     <span class="keywordflow">if</span> (!lcc)
-<a name="l00323"></a>00323         <span class="keywordflow">return</span> -1;
-<a name="l00324"></a>00324     <span class="keywordflow">if</span> (!str || !len)
-<a name="l00325"></a>00325         <span class="keywordflow">return</span> 0;
-<a name="l00326"></a>00326 
-<a name="l00327"></a>00327     outlen = 2 * len;
-<a name="l00328"></a>00328     outstr = malloc(outlen);
-<a name="l00329"></a>00329     <span class="keywordflow">if</span> (!outstr) {
-<a name="l00330"></a>00330         perror(<span class="stringliteral">"malloc"</span>);
-<a name="l00331"></a>00331         <span class="keywordflow">return</span> -2;
-<a name="l00332"></a>00332     }
-<a name="l00333"></a>00333 
-<a name="l00334"></a>00334     r = _check(lcc, str, len, outstr, outlen);
-<a name="l00335"></a>00335     free(outstr);
-<a name="l00336"></a>00336     <span class="keywordflow">return</span> r;
-<a name="l00337"></a>00337 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00253"></a>00253 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00254"></a>00254 _check(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *istr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ilen, <span class="keywordtype">char</span> *ostr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> olen)
+<a name="l00255"></a>00255 {
+<a name="l00256"></a>00256     <span class="keywordtype">char</span> *inbuf, *outbuf;
+<a name="l00257"></a>00257     <span class="keywordtype">size_t</span> r, inlen, outlen;
+<a name="l00258"></a>00258 
+<a name="l00259"></a>00259     <span class="keywordflow">if</span> (lcc-&gt;check == (iconv_t)-1)
+<a name="l00260"></a>00260         <span class="keywordflow">return</span> -1;
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262     inbuf = (<span class="keywordtype">char</span> *)istr;
+<a name="l00263"></a>00263     inlen = ilen;
+<a name="l00264"></a>00264     outbuf = ostr;
+<a name="l00265"></a>00265     outlen = olen;
+<a name="l00266"></a>00266 
+<a name="l00267"></a>00267     iconv(lcc-&gt;check, NULL, NULL, NULL, NULL);
+<a name="l00268"></a>00268     r = iconv(lcc-&gt;check, &amp;inbuf, &amp;inlen, &amp;outbuf, &amp;outlen);
+<a name="l00269"></a>00269     <span class="keywordflow">if</span> (r == (<span class="keywordtype">size_t</span>)-1)
+<a name="l00270"></a>00270         <span class="keywordflow">return</span> -1;
+<a name="l00271"></a>00271     <span class="keywordflow">else</span>
+<a name="l00272"></a>00272         <span class="keywordflow">return</span> 0;
+<a name="l00273"></a>00273 }
+<a name="l00274"></a>00274 
+<a name="l00275"></a>00275 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00276"></a>00276 _conv(iconv_t cd, <span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len, <span class="keywordtype">char</span> *ostr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> olen)
+<a name="l00277"></a>00277 {
+<a name="l00278"></a>00278     <span class="keywordtype">char</span> *inbuf, *outbuf;
+<a name="l00279"></a>00279     <span class="keywordtype">size_t</span> r, inlen, outlen;
+<a name="l00280"></a>00280 
+<a name="l00281"></a>00281     inbuf = *p_str;
+<a name="l00282"></a>00282     inlen = *p_len;
+<a name="l00283"></a>00283     outbuf = ostr;
+<a name="l00284"></a>00284     outlen = olen;
+<a name="l00285"></a>00285 
+<a name="l00286"></a>00286     iconv(cd, NULL, NULL, NULL, NULL);
+<a name="l00287"></a>00287     r = iconv(cd, &amp;inbuf, &amp;inlen, &amp;outbuf, &amp;outlen);
+<a name="l00288"></a>00288     <span class="keywordflow">if</span> (r == (<span class="keywordtype">size_t</span>)-1)
+<a name="l00289"></a>00289         <span class="keywordflow">return</span> -1;
+<a name="l00290"></a>00290 
+<a name="l00291"></a>00291     *p_len = olen - outlen;
+<a name="l00292"></a>00292     free(*p_str);
+<a name="l00293"></a>00293     *p_str = ostr;
+<a name="l00294"></a>00294 
+<a name="l00295"></a>00295     outbuf = realloc(*p_str, *p_len + 1);
+<a name="l00296"></a>00296     <span class="keywordflow">if</span> (!outbuf)
+<a name="l00297"></a>00297         perror(<span class="stringliteral">"realloc"</span>);
+<a name="l00298"></a>00298     <span class="keywordflow">else</span>
+<a name="l00299"></a>00299         *p_str = outbuf;
+<a name="l00300"></a>00300 
+<a name="l00301"></a>00301     (*p_str)[*p_len] = <span class="charliteral">'\0'</span>;
+<a name="l00302"></a>00302 
+<a name="l00303"></a>00303     <span class="keywordflow">return</span> 0;
+<a name="l00304"></a>00304 }
+<a name="l00305"></a>00305 
+<a name="l00306"></a>00306 <span class="keyword">static</span> <span class="keywordtype">void</span>
+<a name="l00307"></a>00307 _fix_non_ascii(<span class="keywordtype">char</span> *s, <span class="keywordtype">int</span> len)
+<a name="l00308"></a>00308 {
+<a name="l00309"></a>00309     <span class="keywordflow">for</span> (; len &gt; 0; len--, s++)
+<a name="l00310"></a>00310         <span class="keywordflow">if</span> (!isprint(*s))
+<a name="l00311"></a>00311             *s = <span class="charliteral">'?'</span>;
+<a name="l00312"></a>00312 }
+<a name="l00313"></a>00313 
+<a name="l00327"></a>00327 <span class="keywordtype">int</span>
+<a name="l00328"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">00328</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len)
+<a name="l00329"></a>00329 {
+<a name="l00330"></a>00330     <span class="keywordtype">char</span> *outstr;
+<a name="l00331"></a>00331     <span class="keywordtype">int</span> i, outlen;
+<a name="l00332"></a>00332 
+<a name="l00333"></a>00333     <span class="keywordflow">if</span> (!lcc)
+<a name="l00334"></a>00334         <span class="keywordflow">return</span> -1;
+<a name="l00335"></a>00335     <span class="keywordflow">if</span> (!p_str)
+<a name="l00336"></a>00336         <span class="keywordflow">return</span> -2;
+<a name="l00337"></a>00337     <span class="keywordflow">if</span> (!p_len)
+<a name="l00338"></a>00338         <span class="keywordflow">return</span> -3;
+<a name="l00339"></a>00339     <span class="keywordflow">if</span> (!*p_str || !*p_len)
+<a name="l00340"></a>00340         <span class="keywordflow">return</span> 0;
+<a name="l00341"></a>00341 
+<a name="l00342"></a>00342     outlen = 2 * *p_len;
+<a name="l00343"></a>00343     outstr = malloc(outlen + 1);
+<a name="l00344"></a>00344     <span class="keywordflow">if</span> (!outstr) {
+<a name="l00345"></a>00345         perror(<span class="stringliteral">"malloc"</span>);
+<a name="l00346"></a>00346         <span class="keywordflow">return</span> -4;
+<a name="l00347"></a>00347     }
+<a name="l00348"></a>00348 
+<a name="l00349"></a>00349     <span class="keywordflow">if</span> (_check(lcc, *p_str, *p_len, outstr, outlen) == 0) {
+<a name="l00350"></a>00350         free(outstr);
+<a name="l00351"></a>00351         <span class="keywordflow">return</span> 0;
+<a name="l00352"></a>00352     }
+<a name="l00353"></a>00353 
+<a name="l00354"></a>00354     <span class="keywordflow">for</span> (i = 0; i &lt; lcc-&gt;size; i++)
+<a name="l00355"></a>00355         <span class="keywordflow">if</span> (_conv(lcc-&gt;convs[i], p_str, p_len, outstr, outlen) == 0)
+<a name="l00356"></a>00356             <span class="keywordflow">return</span> 0;
+<a name="l00357"></a>00357 
+<a name="l00358"></a>00358     <span class="keywordflow">if</span> (lcc-&gt;fallback == (iconv_t)-1)
+<a name="l00359"></a>00359         <span class="keywordflow">return</span> -5;
+<a name="l00360"></a>00360 
+<a name="l00361"></a>00361     fprintf(stderr,
+<a name="l00362"></a>00362             <span class="stringliteral">"WARNING: could not convert '%*s' to any charset, use fallback\n"</span>,
+<a name="l00363"></a>00363             *p_len, *p_str);
+<a name="l00364"></a>00364     i = _conv(lcc-&gt;fallback, p_str, p_len, outstr, outlen);
+<a name="l00365"></a>00365     <span class="keywordflow">if</span> (i &lt; 0) {
+<a name="l00366"></a>00366         _fix_non_ascii(*p_str, *p_len);
+<a name="l00367"></a>00367         free(outstr);
+<a name="l00368"></a>00368     }
+<a name="l00369"></a>00369     <span class="keywordflow">return</span> i;
+<a name="l00370"></a>00370 }
+<a name="l00371"></a>00371 
+<a name="l00385"></a>00385 <span class="keywordtype">int</span>
+<a name="l00386"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#8ea844f16120ba4000b7b142192e91e4">00386</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#8ea844f16120ba4000b7b142192e91e4">lms_charset_conv_force</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len)
+<a name="l00387"></a>00387 {
+<a name="l00388"></a>00388     <span class="keywordtype">char</span> *outstr;
+<a name="l00389"></a>00389     <span class="keywordtype">int</span> i, outlen;
+<a name="l00390"></a>00390 
+<a name="l00391"></a>00391     <span class="keywordflow">if</span> (!lcc)
+<a name="l00392"></a>00392         <span class="keywordflow">return</span> -1;
+<a name="l00393"></a>00393     <span class="keywordflow">if</span> (!p_str)
+<a name="l00394"></a>00394         <span class="keywordflow">return</span> -2;
+<a name="l00395"></a>00395     <span class="keywordflow">if</span> (!p_len)
+<a name="l00396"></a>00396         <span class="keywordflow">return</span> -3;
+<a name="l00397"></a>00397     <span class="keywordflow">if</span> (!*p_str || !*p_len)
+<a name="l00398"></a>00398         <span class="keywordflow">return</span> 0;
+<a name="l00399"></a>00399 
+<a name="l00400"></a>00400     outlen = 2 * *p_len;
+<a name="l00401"></a>00401     outstr = malloc(outlen + 1);
+<a name="l00402"></a>00402     <span class="keywordflow">if</span> (!outstr) {
+<a name="l00403"></a>00403         perror(<span class="stringliteral">"malloc"</span>);
+<a name="l00404"></a>00404         <span class="keywordflow">return</span> -4;
+<a name="l00405"></a>00405     }
+<a name="l00406"></a>00406 
+<a name="l00407"></a>00407     <span class="keywordflow">for</span> (i = 0; i &lt; lcc-&gt;size; i++)
+<a name="l00408"></a>00408         <span class="keywordflow">if</span> (_conv(lcc-&gt;convs[i], p_str, p_len, outstr, outlen) == 0)
+<a name="l00409"></a>00409             <span class="keywordflow">return</span> 0;
+<a name="l00410"></a>00410 
+<a name="l00411"></a>00411     <span class="keywordflow">if</span> (lcc-&gt;fallback == (iconv_t)-1)
+<a name="l00412"></a>00412         <span class="keywordflow">return</span> -5;
+<a name="l00413"></a>00413 
+<a name="l00414"></a>00414     fprintf(stderr,
+<a name="l00415"></a>00415             <span class="stringliteral">"WARNING: could not convert '%*s' to any charset, use fallback\n"</span>,
+<a name="l00416"></a>00416             *p_len, *p_str);
+<a name="l00417"></a>00417     i = _conv(lcc-&gt;fallback, p_str, p_len, outstr, outlen);
+<a name="l00418"></a>00418     <span class="keywordflow">if</span> (i &lt; 0) {
+<a name="l00419"></a>00419         _fix_non_ascii(*p_str, *p_len);
+<a name="l00420"></a>00420         free(outstr);
+<a name="l00421"></a>00421     }
+<a name="l00422"></a>00422     <span class="keywordflow">return</span> i;
+<a name="l00423"></a>00423 }
+<a name="l00424"></a>00424 
+<a name="l00439"></a>00439 <span class="keywordtype">int</span>
+<a name="l00440"></a><a class="code" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">00440</a> <a class="code" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lms_charset_conv_check</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len)
+<a name="l00441"></a>00441 {
+<a name="l00442"></a>00442     <span class="keywordtype">char</span> *outstr;
+<a name="l00443"></a>00443     <span class="keywordtype">int</span> r, outlen;
+<a name="l00444"></a>00444 
+<a name="l00445"></a>00445     <span class="keywordflow">if</span> (!lcc)
+<a name="l00446"></a>00446         <span class="keywordflow">return</span> -1;
+<a name="l00447"></a>00447     <span class="keywordflow">if</span> (!str || !len)
+<a name="l00448"></a>00448         <span class="keywordflow">return</span> 0;
+<a name="l00449"></a>00449 
+<a name="l00450"></a>00450     outlen = 2 * len;
+<a name="l00451"></a>00451     outstr = malloc(outlen);
+<a name="l00452"></a>00452     <span class="keywordflow">if</span> (!outstr) {
+<a name="l00453"></a>00453         perror(<span class="stringliteral">"malloc"</span>);
+<a name="l00454"></a>00454         <span class="keywordflow">return</span> -2;
+<a name="l00455"></a>00455     }
+<a name="l00456"></a>00456 
+<a name="l00457"></a>00457     r = _check(lcc, str, len, outstr, outlen);
+<a name="l00458"></a>00458     free(outstr);
+<a name="l00459"></a>00459     <span class="keywordflow">return</span> r;
+<a name="l00460"></a>00460 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 6fae642..d28d271 100644 (file)
@@ -4,37 +4,41 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_charset_conv.c File Reference</h1><code>#include &quot;<a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>&quot;</code><br>
 <code>#include &lt;iconv.h&gt;</code><br>
 <code>#include &lt;stdio.h&gt;</code><br>
 <code>#include &lt;stdlib.h&gt;</code><br>
 <code>#include &lt;string.h&gt;</code><br>
 <code>#include &lt;errno.h&gt;</code><br>
+<code>#include &lt;ctype.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_charset_conv.c:<p><center><img src="lightmediascanner__charset__conv_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_charset_conv.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_charset_conv.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__charset__conv_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_charset_conv.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_charset_conv.c_map">
-<area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="297,5,503,32"></map>
+<area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="5,84,259,110"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__charset__conv_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lms_charset_conv_new_full</a> (int use_check, int use_fallback)</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lms_charset_conv_new</a> (void)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc)</td></tr>
@@ -45,6 +49,8 @@ Include dependency graph for lightmediascanner_charset_conv.c:<p><center><img sr
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, char **p_str, unsigned int *p_len)</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8c.html#8ea844f16120ba4000b7b142192e91e4">lms_charset_conv_force</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, char **p_str, unsigned int *p_len)</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lms_charset_conv_check</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const char *str, unsigned int len)</td></tr>
 
 </table>
@@ -74,7 +80,7 @@ Include dependency graph for lightmediascanner_charset_conv.c:<p><center><img sr
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -89,10 +95,12 @@ If required, do charset conversion to UTF-8.<p>
     <tr><td valign="top"></td><td valign="top"><em>p_len</em>&nbsp;</td><td>string size.</td></tr>
   </table>
 </dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>the check for string being already UTF-8 is not reliable, some cases might show false positives (UTF-16 is considered UTF-8). </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lms_charset_conv_check()</a></dd></dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00266">266</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00328">328</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="0a3006beae6fc8c59eca75468c1bc000"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv_add" ref="0a3006beae6fc8c59eca75468c1bc000" args="(lms_charset_conv_t *lcc, const char *charset)" -->
@@ -114,7 +122,7 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-sourc
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -130,10 +138,10 @@ Register new charset to conversion tool.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00098">98</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00451">lms_charset_add()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00145">145</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00480">lms_charset_add()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f069b89e828896690fdd919e5b042c7d"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv_check" ref="f069b89e828896690fdd919e5b042c7d" args="(lms_charset_conv_t *lcc, const char *str, unsigned int len)" -->
@@ -161,7 +169,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00451">lms_c
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -176,10 +184,11 @@ Check if strings is not UTF-8 and conversion is required.<p>
     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>string size.</td></tr>
   </table>
 </dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>current implementation is not reliable, it tries to convert from UTF-8 to UTF-8. Some cases, like ISO-8859-1 will work, but some like UTF-16 to UTF-8 will say it's already in the correct charset, even if it's not.</dd></dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if string is already UTF-8. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00317">317</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00440">440</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="ad60dd3a2c2ebcf9ee1100986fc572e4"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv_del" ref="ad60dd3a2c2ebcf9ee1100986fc572e4" args="(lms_charset_conv_t *lcc, const char *charset)" -->
@@ -201,7 +210,7 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-sourc
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -217,14 +226,62 @@ Forget about previously registered charset in conversion tool.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00211">211</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00503">lms_charset_del()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="8ea844f16120ba4000b7b142192e91e4"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv_force" ref="8ea844f16120ba4000b7b142192e91e4" args="(lms_charset_conv_t *lcc, char **p_str, unsigned int *p_len)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lms_charset_conv_force           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lcc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>p_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int *&nbsp;</td>
+          <td class="paramname"> <em>p_len</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00164">164</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00474">lms_charset_del()</a>.
+Forcefully do charset conversion to UTF-8.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>lcc</em>&nbsp;</td><td>existing Light Media Scanner charset conversion. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>p_str</em>&nbsp;</td><td>string to be converted. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>p_len</em>&nbsp;</td><td>string size.</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>This function does not check for the string being in UTF-8 before doing the conversion, use it if you are sure about the charset. In this case you'll usually have just one charset added.</dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00386">386</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:54 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 85b1a85..abb20e4 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="297,5,503,32">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="5,84,259,110">
index ab00d3e..369075c 100644 (file)
@@ -1 +1 @@
-a9fb93c4b14d546e8218fa70f21420bb
\ No newline at end of file
+8966d27edf5a5baa5f6b80360ed4e80a
\ No newline at end of file
index fdfc10c..d408e13 100644 (file)
Binary files a/www/api/lightmediascanner__charset__conv_8c__incl.png and b/www/api/lightmediascanner__charset__conv_8c__incl.png differ
index f31eccd..36da37a 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner_charset_conv.h</h1><a href="lightmediascanner__charset__conv_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_CHARSET_CONV_H_</span>
 <a name="l00022"></a><a class="code" href="lightmediascanner__charset__conv_8h.html#79f872f99949ecde4c1661e4b78b4c2b">00022</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_CHARSET_CONV_H_ 1</span>
 <a name="l00063"></a>00063 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
 <a name="l00064"></a>00064 <span class="preprocessor">#endif</span>
 <a name="l00065"></a>00065 <span class="preprocessor"></span>
-<a name="l00072"></a><a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">00072</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a> lms_charset_conv_t;
+<a name="l00072"></a><a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">00072</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a> <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a>;
 <a name="l00073"></a>00073 
-<a name="l00074"></a>00074     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> lms_charset_conv_t *<a class="code" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lms_charset_conv_new</a>(<span class="keywordtype">void</span>) <a class="code" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">GNUC_MALLOC</a> <a class="code" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">GNUC_WARN_UNUSED_RESULT</a>;
-<a name="l00075"></a>00075     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a>(lms_charset_conv_t *lcc) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00076"></a>00076     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add</a>(lms_charset_conv_t *lcc, const <span class="keywordtype">char</span> *charset) GNUC_NON_NULL(1, 2);
-<a name="l00077"></a>00077     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lms_charset_conv_del</a>(lms_charset_conv_t *lcc, const <span class="keywordtype">char</span> *charset) GNUC_NON_NULL(1, 2);
-<a name="l00078"></a>00078 
-<a name="l00079"></a>00079     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a>(lms_charset_conv_t *lcc, <span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len) GNUC_NON_NULL(1, 2, 3);
-<a name="l00080"></a>00080     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lms_charset_conv_check</a>(lms_charset_conv_t *lcc, const <span class="keywordtype">char</span> *str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len) GNUC_NON_NULL(1, 2);
-<a name="l00081"></a>00081 
-<a name="l00085"></a>00085 <span class="preprocessor">#ifdef __cplusplus</span>
-<a name="l00086"></a>00086 <span class="preprocessor"></span>}
-<a name="l00087"></a>00087 <span class="preprocessor">#endif</span>
-<a name="l00088"></a>00088 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_CHARSET_CONV_H_ */</span>
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00074"></a>00074     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *<a class="code" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lms_charset_conv_new_full</a>(<span class="keywordtype">int</span> use_check, <span class="keywordtype">int</span> use_fallback) <a class="code" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">GNUC_MALLOC</a> <a class="code" href="lightmediascanner_8h.html#34c563f40a0f86e597c51f1556669521">GNUC_WARN_UNUSED_RESULT</a>;
+<a name="l00075"></a>00075     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *<a class="code" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lms_charset_conv_new</a>(<span class="keywordtype">void</span>) <a class="code" href="lightmediascanner_8h.html#2213ea4dca0e242f957f63988caab768">GNUC_MALLOC</a> GNUC_WARN_UNUSED_RESULT;
+<a name="l00076"></a>00076     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00077"></a>00077     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const <span class="keywordtype">char</span> *charset) GNUC_NON_NULL(1, 2);
+<a name="l00078"></a>00078     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lms_charset_conv_del</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const <span class="keywordtype">char</span> *charset) GNUC_NON_NULL(1, 2);
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len) GNUC_NON_NULL(1, 2, 3);
+<a name="l00081"></a>00081     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#8ea844f16120ba4000b7b142192e91e4">lms_charset_conv_force</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, <span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len) GNUC_NON_NULL(1, 2, 3);
+<a name="l00082"></a>00082     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lms_charset_conv_check</a>(<a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const <span class="keywordtype">char</span> *str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len) GNUC_NON_NULL(1, 2);
+<a name="l00083"></a>00083 
+<a name="l00087"></a>00087 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00088"></a>00088 <span class="preprocessor"></span>}
+<a name="l00089"></a>00089 <span class="preprocessor">#endif</span>
+<a name="l00090"></a>00090 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_CHARSET_CONV_H_ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 7fa6cd5..704083c 100644 (file)
@@ -4,26 +4,27 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_charset_conv.h File Reference</h1>
 <p>
-This graph shows which files directly or indirectly include this file:<p><center><img src="lightmediascanner__charset__conv_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_charset_conv.hdep_map" alt=""></center>
+<div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__charset__conv_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_charset_conv.hdep_map" alt=""></center>
 <map name="src/lib/lightmediascanner_charset_conv.hdep_map">
-<area shape="rect" href="lightmediascanner__plugin_8h.html" title="src/lib/lightmediascanner_plugin.h" alt="" coords="315,145,520,172"><area shape="rect" href="lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="597,95,805,121"><area shape="rect" href="lightmediascanner__charset__conv_8c.html" title="src/lib/lightmediascanner_charset_conv.c" alt="" coords="296,196,539,223"><area shape="rect" href="lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="901,5,1067,32"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="587,183,816,209"><area shape="rect" href="lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="608,259,795,285"><area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="883,107,1085,133"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="879,56,1089,83"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="873,259,1095,285"><area shape="rect" href="lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="865,157,1103,184"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="872,309,1096,336"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="869,360,1099,387"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="873,208,1095,235"></map>
+<area shape="rect" href="lightmediascanner__plugin_8h.html" title="src/lib/lightmediascanner_plugin.h" alt="" coords="529,84,772,111"><area shape="rect" href="lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="365,161,619,188"><area shape="rect" href="lightmediascanner__charset__conv_8c.html" title="src/lib/lightmediascanner_charset_conv.c" alt="" coords="796,84,1092,111"><area shape="rect" href="lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="5,239,203,265"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="933,161,1208,188"><area shape="rect" href="lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="1405,161,1627,188"><area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="507,239,752,265"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="227,239,483,265"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="1672,239,1936,265"><area shape="rect" href="lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="776,239,1061,265"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="1960,239,2229,265"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="1085,239,1360,265"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="1384,239,1648,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__charset__conv_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -40,9 +41,11 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_charset_conv&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_charset_conv&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lms_charset_conv_new_full</a> (int use_check, int use_fallback) GNUC_MALLOC GNUC_WARN_UNUSED_RESULT</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lms_charset_conv_new</a> (void) GNUC_MALLOC GNUC_WARN_UNUSED_RESULT</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc) GNUC_NON_NULL(1)</td></tr>
@@ -53,8 +56,10 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#gd843f59abac208048f13437534d589fc">lms_charset_conv</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, char **p_str, unsigned int *p_len) GNUC_NON_NULL(1</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g9a610040a6380c745277effc5c4c9112">lms_charset_conv_force</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, char **p_str, unsigned int *p_len) GNUC_NON_NULL(1</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API int API int API int API <br>
-int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g3d6c281f7b3cf9fb0c299c0abe03f681">lms_charset_conv_check</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const char *str, unsigned int len) GNUC_NON_NULL(1</td></tr>
+int API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#gbc8903e67c3c7eefa902cbb2bd5e3338">lms_charset_conv_check</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const char *str, unsigned int len) GNUC_NON_NULL(1</td></tr>
 
 </table>
 <hr><h2>Define Documentation</h2>
@@ -73,11 +78,11 @@ int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group
 Copyright (C) 2007 by INdT<p>
 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>
 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>
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<p>
+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>
 <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>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="d8ce4efaa307683d3d763b37b4711c53"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::API" ref="d8ce4efaa307683d3d763b37b4711c53" args="" -->
@@ -93,8 +98,8 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00059">59</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00059">59</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="2213ea4dca0e242f957f63988caab768"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::GNUC_MALLOC" ref="2213ea4dca0e242f957f63988caab768" args="" -->
@@ -110,8 +115,8 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00056">56</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00056">56</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="6fe68cac0abf3e2ca61141920414e93a"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::GNUC_NON_NULL" ref="6fe68cac0abf3e2ca61141920414e93a" args="(...)" -->
@@ -124,7 +129,7 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
           <td class="paramtype"> <em>...</em>&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -132,8 +137,8 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00058">58</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00058">58</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="34c563f40a0f86e597c51f1556669521"></a><!-- doxytag: member="lightmediascanner_charset_conv.h::GNUC_WARN_UNUSED_RESULT" ref="34c563f40a0f86e597c51f1556669521" args="" -->
@@ -149,12 +154,13 @@ Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-sourc
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00057">57</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8h-source.html#l00057">57</a> of file <a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:54 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 36a45c5..6661341 100644 (file)
@@ -1,13 +1,13 @@
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="src/lib/lightmediascanner_plugin.h" alt="" coords="315,145,520,172">
-<area shape="rect" href="$lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="597,95,805,121">
-<area shape="rect" href="$lightmediascanner__charset__conv_8c.html" title="src/lib/lightmediascanner_charset_conv.c" alt="" coords="296,196,539,223">
-<area shape="rect" href="$lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="901,5,1067,32">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="587,183,816,209">
-<area shape="rect" href="$lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="608,259,795,285">
-<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="883,107,1085,133">
-<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="879,56,1089,83">
-<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="873,259,1095,285">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="865,157,1103,184">
-<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="872,309,1096,336">
-<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="869,360,1099,387">
-<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="873,208,1095,235">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="src/lib/lightmediascanner_plugin.h" alt="" coords="529,84,772,111">
+<area shape="rect" href="$lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="365,161,619,188">
+<area shape="rect" href="$lightmediascanner__charset__conv_8c.html" title="src/lib/lightmediascanner_charset_conv.c" alt="" coords="796,84,1092,111">
+<area shape="rect" href="$lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="5,239,203,265">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="933,161,1208,188">
+<area shape="rect" href="$lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="1405,161,1627,188">
+<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="507,239,752,265">
+<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="227,239,483,265">
+<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="1672,239,1936,265">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="776,239,1061,265">
+<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="1960,239,2229,265">
+<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="1085,239,1360,265">
+<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="1384,239,1648,265">
index 42dc467..b5b65a0 100644 (file)
@@ -1 +1 @@
-aa3d888691589f3b2f80ad8c0ab8be67
\ No newline at end of file
+daa75498a63084a89de988844aa048f8
\ No newline at end of file
index 182317f..09ebf4f 100644 (file)
Binary files a/www/api/lightmediascanner__charset__conv_8h__dep__incl.png and b/www/api/lightmediascanner__charset__conv_8h__dep__incl.png differ
index 4d8df4f..f718f5b 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner_check.c</h1><a href="lightmediascanner__check_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00021"></a>00021 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#include "config.h"</span>
 <a name="l00051"></a>00051     sqlite3_stmt *update_file_info;
 <a name="l00052"></a>00052 };
 <a name="l00053"></a>00053 
-<a name="l00054"></a>00054 
-<a name="l00055"></a>00055 <span class="comment">/***********************************************************************</span>
-<a name="l00056"></a>00056 <span class="comment"> * Master-Slave communication.</span>
-<a name="l00057"></a>00057 <span class="comment"> ***********************************************************************/</span>
-<a name="l00058"></a>00058 
-<a name="l00059"></a>00059 <span class="keyword">struct </span>comm_finfo {
-<a name="l00060"></a>00060     <span class="keywordtype">int</span> path_len;
-<a name="l00061"></a>00061     <span class="keywordtype">int</span> base;
-<a name="l00062"></a>00062     int64_t id;
-<a name="l00063"></a>00063     time_t mtime;
-<a name="l00064"></a>00064     time_t dtime;
-<a name="l00065"></a>00065     <span class="keywordtype">size_t</span> size;
-<a name="l00066"></a>00066     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags;
-<a name="l00067"></a><a class="code" href="lightmediascanner__check_8c.html#f8084f435d209d810eb33deaa35fab5e">00067</a> <span class="preprocessor">#define COMM_FINFO_FLAG_OUTDATED 1</span>
-<a name="l00068"></a>00068 <span class="preprocessor"></span>};
-<a name="l00069"></a>00069 
-<a name="l00070"></a>00070 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00071"></a>00071 _master_send_file(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *master, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> finfo, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags)
-<a name="l00072"></a>00072 {
-<a name="l00073"></a>00073     <span class="keyword">struct </span>comm_finfo ci;
-<a name="l00074"></a>00074 
-<a name="l00075"></a>00075     ci.path_len = finfo.<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>;
-<a name="l00076"></a>00076     ci.base = finfo.<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a>;
-<a name="l00077"></a>00077     ci.id = finfo.<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a>;
-<a name="l00078"></a>00078     ci.mtime = finfo.<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a>;
-<a name="l00079"></a>00079     ci.dtime = finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>;
-<a name="l00080"></a>00080     ci.size = finfo.<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a>;
-<a name="l00081"></a>00081     ci.flags = flags;
+<a name="l00054"></a>00054 <span class="keyword">struct </span>single_process_db {
+<a name="l00055"></a>00055     sqlite3 *handle;
+<a name="l00056"></a>00056     sqlite3_stmt *get_files;
+<a name="l00057"></a>00057     sqlite3_stmt *transaction_begin;
+<a name="l00058"></a>00058     sqlite3_stmt *transaction_commit;
+<a name="l00059"></a>00059     sqlite3_stmt *delete_file_info;
+<a name="l00060"></a>00060     sqlite3_stmt *update_file_info;
+<a name="l00061"></a>00061 };
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 <span class="comment">/***********************************************************************</span>
+<a name="l00064"></a>00064 <span class="comment"> * Master-Slave communication.</span>
+<a name="l00065"></a>00065 <span class="comment"> ***********************************************************************/</span>
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067 <span class="keyword">struct </span>comm_finfo {
+<a name="l00068"></a>00068     <span class="keywordtype">int</span> path_len;
+<a name="l00069"></a>00069     <span class="keywordtype">int</span> base;
+<a name="l00070"></a>00070     int64_t id;
+<a name="l00071"></a>00071     time_t mtime;
+<a name="l00072"></a>00072     time_t dtime;
+<a name="l00073"></a>00073     <span class="keywordtype">size_t</span> size;
+<a name="l00074"></a>00074     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags;
+<a name="l00075"></a><a class="code" href="lightmediascanner__check_8c.html#f8084f435d209d810eb33deaa35fab5e">00075</a> <span class="preprocessor">#define COMM_FINFO_FLAG_OUTDATED 1</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span>};
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00079"></a>00079 _master_send_file(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *master, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> finfo, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags)
+<a name="l00080"></a>00080 {
+<a name="l00081"></a>00081     <span class="keyword">struct </span>comm_finfo ci;
 <a name="l00082"></a>00082 
-<a name="l00083"></a>00083     <span class="keywordflow">if</span> (write(master-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>, &amp;ci, <span class="keyword">sizeof</span>(ci)) &lt; 0) {
-<a name="l00084"></a>00084         perror(<span class="stringliteral">"write"</span>);
-<a name="l00085"></a>00085         <span class="keywordflow">return</span> -1;
-<a name="l00086"></a>00086     }
-<a name="l00087"></a>00087 
-<a name="l00088"></a>00088     <span class="keywordflow">if</span> (write(master-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>, finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, finfo.<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>) &lt; 0) {
-<a name="l00089"></a>00089         perror(<span class="stringliteral">"write"</span>);
-<a name="l00090"></a>00090         <span class="keywordflow">return</span> -1;
-<a name="l00091"></a>00091     }
-<a name="l00092"></a>00092 
-<a name="l00093"></a>00093     <span class="keywordflow">return</span> 0;
-<a name="l00094"></a>00094 }
+<a name="l00083"></a>00083     ci.path_len = finfo.<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>;
+<a name="l00084"></a>00084     ci.base = finfo.<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a>;
+<a name="l00085"></a>00085     ci.id = finfo.<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a>;
+<a name="l00086"></a>00086     ci.mtime = finfo.<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a>;
+<a name="l00087"></a>00087     ci.dtime = finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>;
+<a name="l00088"></a>00088     ci.size = finfo.<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a>;
+<a name="l00089"></a>00089     ci.flags = flags;
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091     <span class="keywordflow">if</span> (write(master-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>, &amp;ci, <span class="keyword">sizeof</span>(ci)) &lt; 0) {
+<a name="l00092"></a>00092         perror(<span class="stringliteral">"write"</span>);
+<a name="l00093"></a>00093         <span class="keywordflow">return</span> -1;
+<a name="l00094"></a>00094     }
 <a name="l00095"></a>00095 
-<a name="l00096"></a>00096 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00097"></a>00097 _master_send_finish(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *master)
-<a name="l00098"></a>00098 {
-<a name="l00099"></a>00099     <span class="keyword">struct </span>comm_finfo ci = {-1, -1, -1, -1, -1, -1, 0};
+<a name="l00096"></a>00096     <span class="keywordflow">if</span> (write(master-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>, finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, finfo.<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>) &lt; 0) {
+<a name="l00097"></a>00097         perror(<span class="stringliteral">"write"</span>);
+<a name="l00098"></a>00098         <span class="keywordflow">return</span> -1;
+<a name="l00099"></a>00099     }
 <a name="l00100"></a>00100 
-<a name="l00101"></a>00101     <span class="keywordflow">if</span> (write(master-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>, &amp;ci, <span class="keyword">sizeof</span>(ci)) &lt; 0) {
-<a name="l00102"></a>00102         perror(<span class="stringliteral">"write"</span>);
-<a name="l00103"></a>00103         <span class="keywordflow">return</span> -1;
-<a name="l00104"></a>00104     }
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106     <span class="keywordflow">return</span> 0;
-<a name="l00107"></a>00107 }
+<a name="l00101"></a>00101     <span class="keywordflow">return</span> 0;
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00105"></a>00105 _master_send_finish(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *master)
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107     <span class="keyword">struct </span>comm_finfo ci = {-1, -1, -1, -1, -1, -1, 0};
 <a name="l00108"></a>00108 
-<a name="l00109"></a>00109 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00110"></a>00110 _master_recv_reply(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *master, <span class="keyword">struct</span> pollfd *pfd, <span class="keywordtype">int</span> *reply, <span class="keywordtype">int</span> timeout)
-<a name="l00111"></a>00111 {
-<a name="l00112"></a>00112     <span class="keywordtype">int</span> r;
+<a name="l00109"></a>00109     <span class="keywordflow">if</span> (write(master-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>, &amp;ci, <span class="keyword">sizeof</span>(ci)) &lt; 0) {
+<a name="l00110"></a>00110         perror(<span class="stringliteral">"write"</span>);
+<a name="l00111"></a>00111         <span class="keywordflow">return</span> -1;
+<a name="l00112"></a>00112     }
 <a name="l00113"></a>00113 
-<a name="l00114"></a>00114     r = poll(pfd, 1, timeout);
-<a name="l00115"></a>00115     <span class="keywordflow">if</span> (r &lt; 0) {
-<a name="l00116"></a>00116         perror(<span class="stringliteral">"poll"</span>);
-<a name="l00117"></a>00117         <span class="keywordflow">return</span> -1;
-<a name="l00118"></a>00118     }
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120     <span class="keywordflow">if</span> (r == 0)
-<a name="l00121"></a>00121         <span class="keywordflow">return</span> 1;
-<a name="l00122"></a>00122 
-<a name="l00123"></a>00123     <span class="keywordflow">if</span> (read(master-&gt;<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>, reply, <span class="keyword">sizeof</span>(*reply)) != <span class="keyword">sizeof</span>(*reply)) {
-<a name="l00124"></a>00124         perror(<span class="stringliteral">"read"</span>);
-<a name="l00125"></a>00125         <span class="keywordflow">return</span> -2;
+<a name="l00114"></a>00114     <span class="keywordflow">return</span> 0;
+<a name="l00115"></a>00115 }
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00118"></a>00118 _master_recv_reply(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *master, <span class="keyword">struct</span> pollfd *pfd, <span class="keywordtype">int</span> *reply, <span class="keywordtype">int</span> timeout)
+<a name="l00119"></a>00119 {
+<a name="l00120"></a>00120     <span class="keywordtype">int</span> r;
+<a name="l00121"></a>00121 
+<a name="l00122"></a>00122     r = poll(pfd, 1, timeout);
+<a name="l00123"></a>00123     <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00124"></a>00124         perror(<span class="stringliteral">"poll"</span>);
+<a name="l00125"></a>00125         <span class="keywordflow">return</span> -1;
 <a name="l00126"></a>00126     }
 <a name="l00127"></a>00127 
-<a name="l00128"></a>00128     <span class="keywordflow">return</span> 0;
-<a name="l00129"></a>00129 }
+<a name="l00128"></a>00128     <span class="keywordflow">if</span> (r == 0)
+<a name="l00129"></a>00129         <span class="keywordflow">return</span> 1;
 <a name="l00130"></a>00130 
-<a name="l00131"></a>00131 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00132"></a>00132 _slave_send_reply(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *slave, <span class="keywordtype">int</span> reply)
-<a name="l00133"></a>00133 {
-<a name="l00134"></a>00134     <span class="keywordflow">if</span> (write(slave-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>, &amp;reply, <span class="keyword">sizeof</span>(reply)) == 0) {
-<a name="l00135"></a>00135         perror(<span class="stringliteral">"write"</span>);
-<a name="l00136"></a>00136         <span class="keywordflow">return</span> -1;
-<a name="l00137"></a>00137     }
-<a name="l00138"></a>00138     <span class="keywordflow">return</span> 0;
-<a name="l00139"></a>00139 }
-<a name="l00140"></a>00140 
-<a name="l00141"></a>00141 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00142"></a>00142 _slave_recv_file(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *slave, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *flags)
-<a name="l00143"></a>00143 {
-<a name="l00144"></a>00144     <span class="keyword">struct </span>comm_finfo ci;
-<a name="l00145"></a>00145     <span class="keyword">static</span> <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a> + 1];
-<a name="l00146"></a>00146     <span class="keywordtype">int</span> r;
-<a name="l00147"></a>00147 
-<a name="l00148"></a>00148     r = read(slave-&gt;<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>, &amp;ci, <span class="keyword">sizeof</span>(ci));
-<a name="l00149"></a>00149     <span class="keywordflow">if</span> (r != <span class="keyword">sizeof</span>(ci)) {
-<a name="l00150"></a>00150         perror(<span class="stringliteral">"read"</span>);
-<a name="l00151"></a>00151         <span class="keywordflow">return</span> -1;
-<a name="l00152"></a>00152     }
-<a name="l00153"></a>00153 
-<a name="l00154"></a>00154     finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> = ci.path_len;
-<a name="l00155"></a>00155     finfo-&gt;<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a> = ci.base;
-<a name="l00156"></a>00156     finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = ci.id;
-<a name="l00157"></a>00157     finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> = ci.mtime;
-<a name="l00158"></a>00158     finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = ci.dtime;
-<a name="l00159"></a>00159     finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a> = ci.size;
-<a name="l00160"></a>00160     finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a> = NULL;
-<a name="l00161"></a>00161     *flags = ci.flags;
-<a name="l00162"></a>00162 
-<a name="l00163"></a>00163     <span class="keywordflow">if</span> (ci.path_len == -1)
-<a name="l00164"></a>00164         <span class="keywordflow">return</span> 0;
-<a name="l00165"></a>00165 
-<a name="l00166"></a>00166     <span class="keywordflow">if</span> (ci.path_len &gt; <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>) {
-<a name="l00167"></a>00167         fprintf(stderr, <span class="stringliteral">"ERROR: path too long (%d/%d)\n"</span>,
-<a name="l00168"></a>00168                 ci.path_len, <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>);
-<a name="l00169"></a>00169         <span class="keywordflow">return</span> -2;
-<a name="l00170"></a>00170     }
-<a name="l00171"></a>00171 
-<a name="l00172"></a>00172     r = read(slave-&gt;<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>, path, ci.path_len);
-<a name="l00173"></a>00173     <span class="keywordflow">if</span> (r != ci.path_len) {
-<a name="l00174"></a>00174         fprintf(stderr, <span class="stringliteral">"ERROR: could not read whole path %d/%d\n"</span>,
-<a name="l00175"></a>00175                 r, ci.path_len);
-<a name="l00176"></a>00176         <span class="keywordflow">return</span> -3;
-<a name="l00177"></a>00177     }
-<a name="l00178"></a>00178 
-<a name="l00179"></a>00179     path[ci.path_len] = 0;
-<a name="l00180"></a>00180     finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a> = path;
-<a name="l00181"></a>00181     <span class="keywordflow">return</span> 0;
-<a name="l00182"></a>00182 }
-<a name="l00183"></a>00183 
-<a name="l00184"></a>00184 
-<a name="l00185"></a>00185 <span class="comment">/***********************************************************************</span>
-<a name="l00186"></a>00186 <span class="comment"> * Slave-side.</span>
-<a name="l00187"></a>00187 <span class="comment"> ***********************************************************************/</span>
-<a name="l00188"></a>00188 
-<a name="l00189"></a>00189 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00190"></a>00190 _slave_db_compile_all_stmts(<span class="keyword">struct</span> slave_db *db)
-<a name="l00191"></a>00191 {
-<a name="l00192"></a>00192     sqlite3 *handle;
-<a name="l00193"></a>00193 
-<a name="l00194"></a>00194     handle = db-&gt;handle;
-<a name="l00195"></a>00195 
-<a name="l00196"></a>00196     db-&gt;transaction_begin = <a class="code" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lms_db_compile_stmt_begin_transaction</a>(handle);
-<a name="l00197"></a>00197     <span class="keywordflow">if</span> (!db-&gt;transaction_begin)
-<a name="l00198"></a>00198         <span class="keywordflow">return</span> -1;
-<a name="l00199"></a>00199 
-<a name="l00200"></a>00200     db-&gt;transaction_commit = <a class="code" href="lightmediascanner__db__common_8c.html#bff1aa6077215f3d70d4d5b1a9b7a498">lms_db_compile_stmt_end_transaction</a>(handle);
-<a name="l00201"></a>00201     <span class="keywordflow">if</span> (!db-&gt;transaction_commit)
-<a name="l00202"></a>00202         <span class="keywordflow">return</span> -2;
+<a name="l00131"></a>00131     <span class="keywordflow">if</span> (read(master-&gt;<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>, reply, <span class="keyword">sizeof</span>(*reply)) != <span class="keyword">sizeof</span>(*reply)) {
+<a name="l00132"></a>00132         perror(<span class="stringliteral">"read"</span>);
+<a name="l00133"></a>00133         <span class="keywordflow">return</span> -2;
+<a name="l00134"></a>00134     }
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136     <span class="keywordflow">return</span> 0;
+<a name="l00137"></a>00137 }
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00140"></a>00140 _slave_send_reply(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *slave, <span class="keywordtype">int</span> reply)
+<a name="l00141"></a>00141 {
+<a name="l00142"></a>00142     <span class="keywordflow">if</span> (write(slave-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>, &amp;reply, <span class="keyword">sizeof</span>(reply)) == 0) {
+<a name="l00143"></a>00143         perror(<span class="stringliteral">"write"</span>);
+<a name="l00144"></a>00144         <span class="keywordflow">return</span> -1;
+<a name="l00145"></a>00145     }
+<a name="l00146"></a>00146     <span class="keywordflow">return</span> 0;
+<a name="l00147"></a>00147 }
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00150"></a>00150 _slave_recv_file(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *slave, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *flags)
+<a name="l00151"></a>00151 {
+<a name="l00152"></a>00152     <span class="keyword">struct </span>comm_finfo ci;
+<a name="l00153"></a>00153     <span class="keyword">static</span> <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a> + 1];
+<a name="l00154"></a>00154     <span class="keywordtype">int</span> r;
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156     r = read(slave-&gt;<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>, &amp;ci, <span class="keyword">sizeof</span>(ci));
+<a name="l00157"></a>00157     <span class="keywordflow">if</span> (r != <span class="keyword">sizeof</span>(ci)) {
+<a name="l00158"></a>00158         perror(<span class="stringliteral">"read"</span>);
+<a name="l00159"></a>00159         <span class="keywordflow">return</span> -1;
+<a name="l00160"></a>00160     }
+<a name="l00161"></a>00161 
+<a name="l00162"></a>00162     finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> = ci.path_len;
+<a name="l00163"></a>00163     finfo-&gt;<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a> = ci.base;
+<a name="l00164"></a>00164     finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = ci.id;
+<a name="l00165"></a>00165     finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> = ci.mtime;
+<a name="l00166"></a>00166     finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = ci.dtime;
+<a name="l00167"></a>00167     finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a> = ci.size;
+<a name="l00168"></a>00168     finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a> = NULL;
+<a name="l00169"></a>00169     *flags = ci.flags;
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171     <span class="keywordflow">if</span> (ci.path_len == -1)
+<a name="l00172"></a>00172         <span class="keywordflow">return</span> 0;
+<a name="l00173"></a>00173 
+<a name="l00174"></a>00174     <span class="keywordflow">if</span> (ci.path_len &gt; <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>) {
+<a name="l00175"></a>00175         fprintf(stderr, <span class="stringliteral">"ERROR: path too long (%d/%d)\n"</span>,
+<a name="l00176"></a>00176                 ci.path_len, <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>);
+<a name="l00177"></a>00177         <span class="keywordflow">return</span> -2;
+<a name="l00178"></a>00178     }
+<a name="l00179"></a>00179 
+<a name="l00180"></a>00180     r = read(slave-&gt;<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>, path, ci.path_len);
+<a name="l00181"></a>00181     <span class="keywordflow">if</span> (r != ci.path_len) {
+<a name="l00182"></a>00182         fprintf(stderr, <span class="stringliteral">"ERROR: could not read whole path %d/%d\n"</span>,
+<a name="l00183"></a>00183                 r, ci.path_len);
+<a name="l00184"></a>00184         <span class="keywordflow">return</span> -3;
+<a name="l00185"></a>00185     }
+<a name="l00186"></a>00186 
+<a name="l00187"></a>00187     path[ci.path_len] = 0;
+<a name="l00188"></a>00188     finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a> = path;
+<a name="l00189"></a>00189     <span class="keywordflow">return</span> 0;
+<a name="l00190"></a>00190 }
+<a name="l00191"></a>00191 
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193 <span class="comment">/***********************************************************************</span>
+<a name="l00194"></a>00194 <span class="comment"> * Slave-side.</span>
+<a name="l00195"></a>00195 <span class="comment"> ***********************************************************************/</span>
+<a name="l00196"></a>00196 
+<a name="l00197"></a>00197 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00198"></a>00198 _slave_db_compile_all_stmts(<span class="keyword">struct</span> slave_db *db)
+<a name="l00199"></a>00199 {
+<a name="l00200"></a>00200     sqlite3 *handle;
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202     handle = db-&gt;handle;
 <a name="l00203"></a>00203 
-<a name="l00204"></a>00204     db-&gt;delete_file_info = <a class="code" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lms_db_compile_stmt_delete_file_info</a>(handle);
-<a name="l00205"></a>00205     <span class="keywordflow">if</span> (!db-&gt;delete_file_info)
-<a name="l00206"></a>00206         <span class="keywordflow">return</span> -3;
+<a name="l00204"></a>00204     db-&gt;transaction_begin = <a class="code" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lms_db_compile_stmt_begin_transaction</a>(handle);
+<a name="l00205"></a>00205     <span class="keywordflow">if</span> (!db-&gt;transaction_begin)
+<a name="l00206"></a>00206         <span class="keywordflow">return</span> -1;
 <a name="l00207"></a>00207 
-<a name="l00208"></a>00208     db-&gt;update_file_info = <a class="code" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lms_db_compile_stmt_update_file_info</a>(handle);
-<a name="l00209"></a>00209     <span class="keywordflow">if</span> (!db-&gt;update_file_info)
-<a name="l00210"></a>00210         <span class="keywordflow">return</span> -4;
+<a name="l00208"></a>00208     db-&gt;transaction_commit = <a class="code" href="lightmediascanner__db__common_8c.html#bff1aa6077215f3d70d4d5b1a9b7a498">lms_db_compile_stmt_end_transaction</a>(handle);
+<a name="l00209"></a>00209     <span class="keywordflow">if</span> (!db-&gt;transaction_commit)
+<a name="l00210"></a>00210         <span class="keywordflow">return</span> -2;
 <a name="l00211"></a>00211 
-<a name="l00212"></a>00212     <span class="keywordflow">return</span> 0;
-<a name="l00213"></a>00213 }
-<a name="l00214"></a>00214 
-<a name="l00215"></a>00215 <span class="keyword">static</span> <span class="keyword">struct </span>slave_db *
-<a name="l00216"></a>00216 _slave_db_open(<span class="keyword">const</span> <span class="keywordtype">char</span> *db_path)
-<a name="l00217"></a>00217 {
-<a name="l00218"></a>00218     <span class="keyword">struct </span>slave_db *db;
+<a name="l00212"></a>00212     db-&gt;delete_file_info = <a class="code" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lms_db_compile_stmt_delete_file_info</a>(handle);
+<a name="l00213"></a>00213     <span class="keywordflow">if</span> (!db-&gt;delete_file_info)
+<a name="l00214"></a>00214         <span class="keywordflow">return</span> -3;
+<a name="l00215"></a>00215 
+<a name="l00216"></a>00216     db-&gt;update_file_info = <a class="code" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lms_db_compile_stmt_update_file_info</a>(handle);
+<a name="l00217"></a>00217     <span class="keywordflow">if</span> (!db-&gt;update_file_info)
+<a name="l00218"></a>00218         <span class="keywordflow">return</span> -4;
 <a name="l00219"></a>00219 
-<a name="l00220"></a>00220     db = calloc(1, <span class="keyword">sizeof</span>(*db));
-<a name="l00221"></a>00221     <span class="keywordflow">if</span> (!db) {
-<a name="l00222"></a>00222         perror(<span class="stringliteral">"calloc"</span>);
-<a name="l00223"></a>00223         <span class="keywordflow">return</span> NULL;
-<a name="l00224"></a>00224     }
-<a name="l00225"></a>00225 
-<a name="l00226"></a>00226     <span class="keywordflow">if</span> (sqlite3_open(db_path, &amp;db-&gt;handle) != SQLITE_OK) {
-<a name="l00227"></a>00227         fprintf(stderr, <span class="stringliteral">"ERROR: could not open DB \"%s\": %s\n"</span>,
-<a name="l00228"></a>00228                 db_path, sqlite3_errmsg(db-&gt;handle));
-<a name="l00229"></a>00229         <span class="keywordflow">goto</span> error;
-<a name="l00230"></a>00230     }
-<a name="l00231"></a>00231 
-<a name="l00232"></a>00232     <span class="keywordflow">return</span> db;
+<a name="l00220"></a>00220     <span class="keywordflow">return</span> 0;
+<a name="l00221"></a>00221 }
+<a name="l00222"></a>00222 
+<a name="l00223"></a>00223 <span class="keyword">static</span> <span class="keyword">struct </span>slave_db *
+<a name="l00224"></a>00224 _slave_db_open(<span class="keyword">const</span> <span class="keywordtype">char</span> *db_path)
+<a name="l00225"></a>00225 {
+<a name="l00226"></a>00226     <span class="keyword">struct </span>slave_db *db;
+<a name="l00227"></a>00227 
+<a name="l00228"></a>00228     db = calloc(1, <span class="keyword">sizeof</span>(*db));
+<a name="l00229"></a>00229     <span class="keywordflow">if</span> (!db) {
+<a name="l00230"></a>00230         perror(<span class="stringliteral">"calloc"</span>);
+<a name="l00231"></a>00231         <span class="keywordflow">return</span> NULL;
+<a name="l00232"></a>00232     }
 <a name="l00233"></a>00233 
-<a name="l00234"></a>00234   error:
-<a name="l00235"></a>00235     sqlite3_close(db-&gt;handle);
-<a name="l00236"></a>00236     free(db);
-<a name="l00237"></a>00237     <span class="keywordflow">return</span> NULL;
-<a name="l00238"></a>00238 }
+<a name="l00234"></a>00234     <span class="keywordflow">if</span> (sqlite3_open(db_path, &amp;db-&gt;handle) != SQLITE_OK) {
+<a name="l00235"></a>00235         fprintf(stderr, <span class="stringliteral">"ERROR: could not open DB \"%s\": %s\n"</span>,
+<a name="l00236"></a>00236                 db_path, sqlite3_errmsg(db-&gt;handle));
+<a name="l00237"></a>00237         <span class="keywordflow">goto</span> error;
+<a name="l00238"></a>00238     }
 <a name="l00239"></a>00239 
-<a name="l00240"></a>00240 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00241"></a>00241 _slave_db_close(<span class="keyword">struct</span> slave_db *db)
-<a name="l00242"></a>00242 {
-<a name="l00243"></a>00243     <span class="keywordflow">if</span> (db-&gt;transaction_begin)
-<a name="l00244"></a>00244         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;transaction_begin, <span class="stringliteral">"transaction_begin"</span>);
-<a name="l00245"></a>00245 
-<a name="l00246"></a>00246     <span class="keywordflow">if</span> (db-&gt;transaction_commit)
-<a name="l00247"></a>00247         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;transaction_commit, <span class="stringliteral">"transaction_commit"</span>);
-<a name="l00248"></a>00248 
-<a name="l00249"></a>00249     <span class="keywordflow">if</span> (db-&gt;delete_file_info)
-<a name="l00250"></a>00250         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;delete_file_info, <span class="stringliteral">"delete_file_info"</span>);
-<a name="l00251"></a>00251 
-<a name="l00252"></a>00252     <span class="keywordflow">if</span> (db-&gt;update_file_info)
-<a name="l00253"></a>00253         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;update_file_info, <span class="stringliteral">"update_file_info"</span>);
-<a name="l00254"></a>00254 
-<a name="l00255"></a>00255     <span class="keywordflow">if</span> (sqlite3_close(db-&gt;handle) != SQLITE_OK) {
-<a name="l00256"></a>00256         fprintf(stderr, <span class="stringliteral">"ERROR: clould not close DB (slave): %s\n"</span>,
-<a name="l00257"></a>00257                 sqlite3_errmsg(db-&gt;handle));
-<a name="l00258"></a>00258         <span class="keywordflow">return</span> -1;
-<a name="l00259"></a>00259     }
-<a name="l00260"></a>00260     free(db);
-<a name="l00261"></a>00261 
-<a name="l00262"></a>00262     <span class="keywordflow">return</span> 0;
-<a name="l00263"></a>00263 }
-<a name="l00264"></a>00264 
-<a name="l00265"></a>00265 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00266"></a>00266 _init_sync_send(<span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)
-<a name="l00267"></a>00267 {
-<a name="l00268"></a>00268     <span class="keywordflow">return</span> _slave_send_reply(fds, 0);
-<a name="l00269"></a>00269 }
-<a name="l00270"></a>00270 
-<a name="l00271"></a>00271 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00272"></a>00272 _slave_work_int(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>, <span class="keyword">struct</span> slave_db *db)
-<a name="l00273"></a>00273 {
-<a name="l00274"></a>00274     <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> finfo;
-<a name="l00275"></a>00275     <span class="keywordtype">void</span> **parser_match;
-<a name="l00276"></a>00276     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> counter, flags;
-<a name="l00277"></a>00277     <span class="keywordtype">int</span> r;
-<a name="l00278"></a>00278 
-<a name="l00279"></a>00279     parser_match = malloc(lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> * <span class="keyword">sizeof</span>(*parser_match));
-<a name="l00280"></a>00280     <span class="keywordflow">if</span> (!parser_match) {
-<a name="l00281"></a>00281         perror(<span class="stringliteral">"malloc"</span>);
-<a name="l00282"></a>00282         <span class="keywordflow">return</span> -6;
-<a name="l00283"></a>00283     }
-<a name="l00284"></a>00284 
-<a name="l00285"></a>00285     _init_sync_send(fds);
-<a name="l00286"></a>00286 
-<a name="l00287"></a>00287     counter = 0;
-<a name="l00288"></a>00288     <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
-<a name="l00289"></a>00289 
-<a name="l00290"></a>00290     <span class="keywordflow">while</span> (((r = _slave_recv_file(fds, &amp;finfo, &amp;flags)) == 0) &amp;&amp;
-<a name="l00291"></a>00291            finfo.<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> &gt; 0) {
-<a name="l00292"></a>00292         r = <a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lms_db_update_file_info</a>(db-&gt;update_file_info, &amp;finfo);
-<a name="l00293"></a>00293         <span class="keywordflow">if</span> (r &lt; 0)
-<a name="l00294"></a>00294             fprintf(stderr, <span class="stringliteral">"ERROR: could not update path in DB\n"</span>);
-<a name="l00295"></a>00295         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (flags &amp; <a class="code" href="lightmediascanner__check_8c.html#f8084f435d209d810eb33deaa35fab5e">COMM_FINFO_FLAG_OUTDATED</a>) {
-<a name="l00296"></a>00296             <span class="keywordtype">int</span> used;
-<a name="l00297"></a>00297 
-<a name="l00298"></a>00298             used = <a class="code" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lms_parsers_check_using</a>(lms, parser_match, &amp;finfo);
-<a name="l00299"></a>00299             <span class="keywordflow">if</span> (!used)
-<a name="l00300"></a>00300                 r = 0;
-<a name="l00301"></a>00301             <span class="keywordflow">else</span> {
-<a name="l00302"></a>00302                 r = <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(lms, db-&gt;handle, parser_match, &amp;finfo);
-<a name="l00303"></a>00303                 <span class="keywordflow">if</span> (r &lt; 0) {
-<a name="l00304"></a>00304                     fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
-<a name="l00305"></a>00305                             getpid(), finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>);
-<a name="l00306"></a>00306                     <a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lms_db_delete_file_info</a>(db-&gt;delete_file_info, &amp;finfo);
-<a name="l00307"></a>00307                 }
-<a name="l00308"></a>00308             }
-<a name="l00309"></a>00309         }
-<a name="l00310"></a>00310 
-<a name="l00311"></a>00311         _slave_send_reply(fds, r);
-<a name="l00312"></a>00312         counter++;
-<a name="l00313"></a>00313         <span class="keywordflow">if</span> (counter &gt; lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>) {
-<a name="l00314"></a>00314             <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
-<a name="l00315"></a>00315             <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
-<a name="l00316"></a>00316             counter = 0;
-<a name="l00317"></a>00317         }
+<a name="l00240"></a>00240     <span class="keywordflow">return</span> db;
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242   error:
+<a name="l00243"></a>00243     sqlite3_close(db-&gt;handle);
+<a name="l00244"></a>00244     free(db);
+<a name="l00245"></a>00245     <span class="keywordflow">return</span> NULL;
+<a name="l00246"></a>00246 }
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00249"></a>00249 _slave_db_close(<span class="keyword">struct</span> slave_db *db)
+<a name="l00250"></a>00250 {
+<a name="l00251"></a>00251     <span class="keywordflow">if</span> (db-&gt;transaction_begin)
+<a name="l00252"></a>00252         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;transaction_begin, <span class="stringliteral">"transaction_begin"</span>);
+<a name="l00253"></a>00253 
+<a name="l00254"></a>00254     <span class="keywordflow">if</span> (db-&gt;transaction_commit)
+<a name="l00255"></a>00255         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;transaction_commit, <span class="stringliteral">"transaction_commit"</span>);
+<a name="l00256"></a>00256 
+<a name="l00257"></a>00257     <span class="keywordflow">if</span> (db-&gt;delete_file_info)
+<a name="l00258"></a>00258         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;delete_file_info, <span class="stringliteral">"delete_file_info"</span>);
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260     <span class="keywordflow">if</span> (db-&gt;update_file_info)
+<a name="l00261"></a>00261         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;update_file_info, <span class="stringliteral">"update_file_info"</span>);
+<a name="l00262"></a>00262 
+<a name="l00263"></a>00263     <span class="keywordflow">if</span> (sqlite3_close(db-&gt;handle) != SQLITE_OK) {
+<a name="l00264"></a>00264         fprintf(stderr, <span class="stringliteral">"ERROR: clould not close DB (slave): %s\n"</span>,
+<a name="l00265"></a>00265                 sqlite3_errmsg(db-&gt;handle));
+<a name="l00266"></a>00266         <span class="keywordflow">return</span> -1;
+<a name="l00267"></a>00267     }
+<a name="l00268"></a>00268     free(db);
+<a name="l00269"></a>00269 
+<a name="l00270"></a>00270     <span class="keywordflow">return</span> 0;
+<a name="l00271"></a>00271 }
+<a name="l00272"></a>00272 
+<a name="l00273"></a>00273 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00274"></a>00274 _single_process_db_compile_all_stmts(<span class="keyword">struct</span> single_process_db *db)
+<a name="l00275"></a>00275 {
+<a name="l00276"></a>00276     sqlite3 *handle;
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278     handle = db-&gt;handle;
+<a name="l00279"></a>00279 
+<a name="l00280"></a>00280     db-&gt;get_files = <a class="code" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lms_db_compile_stmt_get_files</a>(handle);
+<a name="l00281"></a>00281     <span class="keywordflow">if</span> (!db-&gt;get_files)
+<a name="l00282"></a>00282         <span class="keywordflow">return</span> -1;
+<a name="l00283"></a>00283 
+<a name="l00284"></a>00284     db-&gt;transaction_begin = <a class="code" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lms_db_compile_stmt_begin_transaction</a>(handle);
+<a name="l00285"></a>00285     <span class="keywordflow">if</span> (!db-&gt;transaction_begin)
+<a name="l00286"></a>00286         <span class="keywordflow">return</span> -2;
+<a name="l00287"></a>00287 
+<a name="l00288"></a>00288     db-&gt;transaction_commit = <a class="code" href="lightmediascanner__db__common_8c.html#bff1aa6077215f3d70d4d5b1a9b7a498">lms_db_compile_stmt_end_transaction</a>(handle);
+<a name="l00289"></a>00289     <span class="keywordflow">if</span> (!db-&gt;transaction_commit)
+<a name="l00290"></a>00290         <span class="keywordflow">return</span> -3;
+<a name="l00291"></a>00291 
+<a name="l00292"></a>00292     db-&gt;delete_file_info = <a class="code" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lms_db_compile_stmt_delete_file_info</a>(handle);
+<a name="l00293"></a>00293     <span class="keywordflow">if</span> (!db-&gt;delete_file_info)
+<a name="l00294"></a>00294         <span class="keywordflow">return</span> -4;
+<a name="l00295"></a>00295 
+<a name="l00296"></a>00296     db-&gt;update_file_info = <a class="code" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lms_db_compile_stmt_update_file_info</a>(handle);
+<a name="l00297"></a>00297     <span class="keywordflow">if</span> (!db-&gt;update_file_info)
+<a name="l00298"></a>00298         <span class="keywordflow">return</span> -5;
+<a name="l00299"></a>00299 
+<a name="l00300"></a>00300     <span class="keywordflow">return</span> 0;
+<a name="l00301"></a>00301 }
+<a name="l00302"></a>00302 
+<a name="l00303"></a>00303 <span class="keyword">static</span> <span class="keyword">struct </span>single_process_db *
+<a name="l00304"></a>00304 _single_process_db_open(<span class="keyword">const</span> <span class="keywordtype">char</span> *db_path)
+<a name="l00305"></a>00305 {
+<a name="l00306"></a>00306     <span class="keyword">struct </span>single_process_db *db;
+<a name="l00307"></a>00307 
+<a name="l00308"></a>00308     db = calloc(1, <span class="keyword">sizeof</span>(*db));
+<a name="l00309"></a>00309     <span class="keywordflow">if</span> (!db) {
+<a name="l00310"></a>00310         perror(<span class="stringliteral">"calloc"</span>);
+<a name="l00311"></a>00311         <span class="keywordflow">return</span> NULL;
+<a name="l00312"></a>00312     }
+<a name="l00313"></a>00313 
+<a name="l00314"></a>00314     <span class="keywordflow">if</span> (sqlite3_open(db_path, &amp;db-&gt;handle) != SQLITE_OK) {
+<a name="l00315"></a>00315         fprintf(stderr, <span class="stringliteral">"ERROR: could not open DB \"%s\": %s\n"</span>,
+<a name="l00316"></a>00316                 db_path, sqlite3_errmsg(db-&gt;handle));
+<a name="l00317"></a>00317         <span class="keywordflow">goto</span> error;
 <a name="l00318"></a>00318     }
 <a name="l00319"></a>00319 
-<a name="l00320"></a>00320     free(parser_match);
-<a name="l00321"></a>00321     <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
-<a name="l00322"></a>00322 
-<a name="l00323"></a>00323     <span class="keywordflow">return</span> r;
-<a name="l00324"></a>00324 }
-<a name="l00325"></a>00325 
-<a name="l00326"></a>00326 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00327"></a>00327 _slave_work(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">struct</span> fds *fds)
-<a name="l00328"></a>00328 {
-<a name="l00329"></a>00329     <span class="keyword">struct </span>slave_db *db;
-<a name="l00330"></a>00330     <span class="keywordtype">int</span> r;
+<a name="l00320"></a>00320     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#3798a46baaedc4d466879865456acc94">lms_db_create_core_tables_if_required</a>(db-&gt;handle) != 0) {
+<a name="l00321"></a>00321         fprintf(stderr, <span class="stringliteral">"ERROR: could not setup tables and indexes.\n"</span>);
+<a name="l00322"></a>00322         <span class="keywordflow">goto</span> error;
+<a name="l00323"></a>00323     }
+<a name="l00324"></a>00324 
+<a name="l00325"></a>00325     <span class="keywordflow">if</span> (_single_process_db_compile_all_stmts(db) != 0) {
+<a name="l00326"></a>00326         fprintf(stderr, <span class="stringliteral">"ERROR: could not compile statements.\n"</span>);
+<a name="l00327"></a>00327         <span class="keywordflow">goto</span> error;
+<a name="l00328"></a>00328     }
+<a name="l00329"></a>00329 
+<a name="l00330"></a>00330     <span class="keywordflow">return</span> db;
 <a name="l00331"></a>00331 
-<a name="l00332"></a>00332     db = _slave_db_open(lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
-<a name="l00333"></a>00333     <span class="keywordflow">if</span> (!db)
-<a name="l00334"></a>00334         <span class="keywordflow">return</span> -1;
-<a name="l00335"></a>00335 
-<a name="l00336"></a>00336     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lms_parsers_setup</a>(lms, db-&gt;handle) != 0) {
-<a name="l00337"></a>00337         fprintf(stderr, <span class="stringliteral">"ERROR: could not setup parsers.\n"</span>);
-<a name="l00338"></a>00338         r = -2;
-<a name="l00339"></a>00339         <span class="keywordflow">goto</span> end;
-<a name="l00340"></a>00340     }
-<a name="l00341"></a>00341 
-<a name="l00342"></a>00342     <span class="keywordflow">if</span> (_slave_db_compile_all_stmts(db) != 0) {
-<a name="l00343"></a>00343         fprintf(stderr, <span class="stringliteral">"ERROR: could not compile statements.\n"</span>);
-<a name="l00344"></a>00344         r = -3;
-<a name="l00345"></a>00345         <span class="keywordflow">goto</span> end;
-<a name="l00346"></a>00346     }
-<a name="l00347"></a>00347 
-<a name="l00348"></a>00348     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(lms, db-&gt;handle) != 0) {
-<a name="l00349"></a>00349         fprintf(stderr, <span class="stringliteral">"ERROR: could not start parsers.\n"</span>);
-<a name="l00350"></a>00350         r = -4;
-<a name="l00351"></a>00351         <span class="keywordflow">goto</span> end;
-<a name="l00352"></a>00352     }
-<a name="l00353"></a>00353     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> &lt; 1) {
-<a name="l00354"></a>00354         fprintf(stderr, <span class="stringliteral">"ERROR: no parser could be started, exit.\n"</span>);
-<a name="l00355"></a>00355         r = -5;
-<a name="l00356"></a>00356         <span class="keywordflow">goto</span> end;
-<a name="l00357"></a>00357     }
-<a name="l00358"></a>00358 
-<a name="l00359"></a>00359     r = _slave_work_int(lms, fds, db);
-<a name="l00360"></a>00360 
-<a name="l00361"></a>00361   end:
-<a name="l00362"></a>00362     <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(lms, db-&gt;handle);
-<a name="l00363"></a>00363     _slave_db_close(db);
-<a name="l00364"></a>00364     _init_sync_send(fds);
+<a name="l00332"></a>00332   error:
+<a name="l00333"></a>00333     sqlite3_close(db-&gt;handle);
+<a name="l00334"></a>00334     free(db);
+<a name="l00335"></a>00335     <span class="keywordflow">return</span> NULL;
+<a name="l00336"></a>00336 }
+<a name="l00337"></a>00337 
+<a name="l00338"></a>00338 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00339"></a>00339 _single_process_db_close(<span class="keyword">struct</span> single_process_db *db)
+<a name="l00340"></a>00340 {
+<a name="l00341"></a>00341     <span class="keywordflow">if</span> (db-&gt;get_files)
+<a name="l00342"></a>00342         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;get_files, <span class="stringliteral">"get_files"</span>);
+<a name="l00343"></a>00343 
+<a name="l00344"></a>00344     <span class="keywordflow">if</span> (db-&gt;transaction_begin)
+<a name="l00345"></a>00345         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;transaction_begin, <span class="stringliteral">"transaction_begin"</span>);
+<a name="l00346"></a>00346 
+<a name="l00347"></a>00347     <span class="keywordflow">if</span> (db-&gt;transaction_commit)
+<a name="l00348"></a>00348         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;transaction_commit, <span class="stringliteral">"transaction_commit"</span>);
+<a name="l00349"></a>00349 
+<a name="l00350"></a>00350     <span class="keywordflow">if</span> (db-&gt;delete_file_info)
+<a name="l00351"></a>00351         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;delete_file_info, <span class="stringliteral">"delete_file_info"</span>);
+<a name="l00352"></a>00352 
+<a name="l00353"></a>00353     <span class="keywordflow">if</span> (db-&gt;update_file_info)
+<a name="l00354"></a>00354         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;update_file_info, <span class="stringliteral">"update_file_info"</span>);
+<a name="l00355"></a>00355 
+<a name="l00356"></a>00356     <span class="keywordflow">if</span> (sqlite3_close(db-&gt;handle) != SQLITE_OK) {
+<a name="l00357"></a>00357         fprintf(stderr, <span class="stringliteral">"ERROR: clould not close DB (slave): %s\n"</span>,
+<a name="l00358"></a>00358                 sqlite3_errmsg(db-&gt;handle));
+<a name="l00359"></a>00359         <span class="keywordflow">return</span> -1;
+<a name="l00360"></a>00360     }
+<a name="l00361"></a>00361     free(db);
+<a name="l00362"></a>00362 
+<a name="l00363"></a>00363     <span class="keywordflow">return</span> 0;
+<a name="l00364"></a>00364 }
 <a name="l00365"></a>00365 
-<a name="l00366"></a>00366     <span class="keywordflow">return</span> r;
-<a name="l00367"></a>00367 }
-<a name="l00368"></a>00368 
-<a name="l00369"></a>00369 
-<a name="l00370"></a>00370 <span class="comment">/***********************************************************************</span>
-<a name="l00371"></a>00371 <span class="comment"> * Master-side.</span>
-<a name="l00372"></a>00372 <span class="comment"> ***********************************************************************/</span>
-<a name="l00373"></a>00373 
-<a name="l00374"></a>00374 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00375"></a>00375 _master_db_compile_all_stmts(<span class="keyword">struct</span> master_db *db)
-<a name="l00376"></a>00376 {
-<a name="l00377"></a>00377     sqlite3 *handle;
-<a name="l00378"></a>00378 
-<a name="l00379"></a>00379     handle = db-&gt;handle;
-<a name="l00380"></a>00380 
-<a name="l00381"></a>00381     db-&gt;get_files = <a class="code" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lms_db_compile_stmt_get_files</a>(handle);
-<a name="l00382"></a>00382     <span class="keywordflow">if</span> (!db-&gt;get_files)
-<a name="l00383"></a>00383         <span class="keywordflow">return</span> -1;
-<a name="l00384"></a>00384 
-<a name="l00385"></a>00385     <span class="keywordflow">return</span> 0;
-<a name="l00386"></a>00386 }
+<a name="l00366"></a>00366 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00367"></a>00367 _init_sync_send(<span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)
+<a name="l00368"></a>00368 {
+<a name="l00369"></a>00369     <span class="keywordflow">return</span> _slave_send_reply(fds, 0);
+<a name="l00370"></a>00370 }
+<a name="l00371"></a>00371 
+<a name="l00372"></a>00372 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00373"></a>00373 _slave_work_int(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>, <span class="keyword">struct</span> slave_db *db)
+<a name="l00374"></a>00374 {
+<a name="l00375"></a>00375     <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> finfo;
+<a name="l00376"></a>00376     <span class="keywordtype">void</span> **parser_match;
+<a name="l00377"></a>00377     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> counter, flags;
+<a name="l00378"></a>00378     <span class="keywordtype">int</span> r;
+<a name="l00379"></a>00379 
+<a name="l00380"></a>00380     parser_match = malloc(lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> * <span class="keyword">sizeof</span>(*parser_match));
+<a name="l00381"></a>00381     <span class="keywordflow">if</span> (!parser_match) {
+<a name="l00382"></a>00382         perror(<span class="stringliteral">"malloc"</span>);
+<a name="l00383"></a>00383         <span class="keywordflow">return</span> -6;
+<a name="l00384"></a>00384     }
+<a name="l00385"></a>00385 
+<a name="l00386"></a>00386     _init_sync_send(fds);
 <a name="l00387"></a>00387 
-<a name="l00388"></a>00388 <span class="keyword">static</span> <span class="keyword">struct </span>master_db *
-<a name="l00389"></a>00389 _master_db_open(<span class="keyword">const</span> <span class="keywordtype">char</span> *db_path)
-<a name="l00390"></a>00390 {
-<a name="l00391"></a>00391     <span class="keyword">struct </span>master_db *db;
-<a name="l00392"></a>00392 
-<a name="l00393"></a>00393     db = calloc(1, <span class="keyword">sizeof</span>(*db));
-<a name="l00394"></a>00394     <span class="keywordflow">if</span> (!db) {
-<a name="l00395"></a>00395         perror(<span class="stringliteral">"calloc"</span>);
-<a name="l00396"></a>00396         <span class="keywordflow">return</span> NULL;
-<a name="l00397"></a>00397     }
+<a name="l00388"></a>00388     counter = 0;
+<a name="l00389"></a>00389     <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
+<a name="l00390"></a>00390 
+<a name="l00391"></a>00391     <span class="keywordflow">while</span> (((r = _slave_recv_file(fds, &amp;finfo, &amp;flags)) == 0) &amp;&amp;
+<a name="l00392"></a>00392            finfo.<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> &gt; 0) {
+<a name="l00393"></a>00393         r = <a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lms_db_update_file_info</a>(db-&gt;update_file_info, &amp;finfo);
+<a name="l00394"></a>00394         <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00395"></a>00395             fprintf(stderr, <span class="stringliteral">"ERROR: could not update path in DB\n"</span>);
+<a name="l00396"></a>00396         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (flags &amp; <a class="code" href="lightmediascanner__check_8c.html#f8084f435d209d810eb33deaa35fab5e">COMM_FINFO_FLAG_OUTDATED</a>) {
+<a name="l00397"></a>00397             <span class="keywordtype">int</span> used;
 <a name="l00398"></a>00398 
-<a name="l00399"></a>00399     <span class="keywordflow">if</span> (sqlite3_open(db_path, &amp;db-&gt;handle) != SQLITE_OK) {
-<a name="l00400"></a>00400         fprintf(stderr, <span class="stringliteral">"ERROR: could not open DB \"%s\": %s\n"</span>,
-<a name="l00401"></a>00401                 db_path, sqlite3_errmsg(db-&gt;handle));
-<a name="l00402"></a>00402         <span class="keywordflow">goto</span> error;
-<a name="l00403"></a>00403     }
-<a name="l00404"></a>00404 
-<a name="l00405"></a>00405     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#3798a46baaedc4d466879865456acc94">lms_db_create_core_tables_if_required</a>(db-&gt;handle) != 0) {
-<a name="l00406"></a>00406         fprintf(stderr, <span class="stringliteral">"ERROR: could not setup tables and indexes.\n"</span>);
-<a name="l00407"></a>00407         <span class="keywordflow">goto</span> error;
-<a name="l00408"></a>00408     }
-<a name="l00409"></a>00409 
-<a name="l00410"></a>00410     <span class="keywordflow">if</span> (_master_db_compile_all_stmts(db) != 0) {
-<a name="l00411"></a>00411         fprintf(stderr, <span class="stringliteral">"ERROR: could not compile statements.\n"</span>);
-<a name="l00412"></a>00412         <span class="keywordflow">goto</span> error;
-<a name="l00413"></a>00413     }
-<a name="l00414"></a>00414 
-<a name="l00415"></a>00415     <span class="keywordflow">return</span> db;
-<a name="l00416"></a>00416 
-<a name="l00417"></a>00417   error:
-<a name="l00418"></a>00418     sqlite3_close(db-&gt;handle);
-<a name="l00419"></a>00419     free(db);
-<a name="l00420"></a>00420     <span class="keywordflow">return</span> NULL;
-<a name="l00421"></a>00421 }
-<a name="l00422"></a>00422 
-<a name="l00423"></a>00423 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00424"></a>00424 _master_db_close(<span class="keyword">struct</span> master_db *db)
-<a name="l00425"></a>00425 {
-<a name="l00426"></a>00426     <span class="keywordflow">if</span> (db-&gt;get_files)
-<a name="l00427"></a>00427         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;get_files, <span class="stringliteral">"get_files"</span>);
-<a name="l00428"></a>00428 
-<a name="l00429"></a>00429     <span class="keywordflow">if</span> (sqlite3_close(db-&gt;handle) != SQLITE_OK) {
-<a name="l00430"></a>00430         fprintf(stderr, <span class="stringliteral">"ERROR: clould not close DB (master): %s\n"</span>,
-<a name="l00431"></a>00431                 sqlite3_errmsg(db-&gt;handle));
-<a name="l00432"></a>00432         <span class="keywordflow">return</span> -1;
-<a name="l00433"></a>00433     }
-<a name="l00434"></a>00434     free(db);
-<a name="l00435"></a>00435 
-<a name="l00436"></a>00436     <span class="keywordflow">return</span> 0;
-<a name="l00437"></a>00437 }
-<a name="l00438"></a>00438 
-<a name="l00439"></a>00439 <span class="keyword">static</span> <span class="keywordtype">void</span>
-<a name="l00440"></a>00440 _calc_base(<span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
-<a name="l00441"></a>00441 {
-<a name="l00442"></a>00442     <span class="keywordtype">int</span> i;
-<a name="l00443"></a>00443 
-<a name="l00444"></a>00444     <span class="keywordflow">for</span> (i = finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> - 1; i &gt;= 0; i--)
-<a name="l00445"></a>00445         <span class="keywordflow">if</span> (finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>[i] == <span class="charliteral">'/'</span>) {
-<a name="l00446"></a>00446             finfo-&gt;<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a> = i;
-<a name="l00447"></a>00447             <span class="keywordflow">return</span>;
-<a name="l00448"></a>00448         }
-<a name="l00449"></a>00449 }
-<a name="l00450"></a>00450 
-<a name="l00451"></a>00451 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>
-<a name="l00452"></a>00452 _update_finfo_from_stmt(<span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, sqlite3_stmt *stmt)
-<a name="l00453"></a>00453 {
-<a name="l00454"></a>00454     finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = sqlite3_column_int64(stmt, 0);
-<a name="l00455"></a>00455     finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a> = sqlite3_column_blob(stmt, 1);
-<a name="l00456"></a>00456     finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> = sqlite3_column_bytes(stmt, 1);
-<a name="l00457"></a>00457     finfo-&gt;<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a> = 0;
-<a name="l00458"></a>00458     finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> = sqlite3_column_int(stmt, 2);
-<a name="l00459"></a>00459     finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = sqlite3_column_int(stmt, 3);
-<a name="l00460"></a>00460     finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a> = sqlite3_column_int(stmt, 4);
-<a name="l00461"></a>00461 }
-<a name="l00462"></a>00462 
-<a name="l00463"></a>00463 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>
-<a name="l00464"></a>00464 _update_finfo_from_stat(<span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, <span class="keyword">const</span> <span class="keyword">struct</span> stat *st)
-<a name="l00465"></a>00465 {
-<a name="l00466"></a>00466     finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> = st-&gt;st_mtime;
-<a name="l00467"></a>00467     finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a> = st-&gt;st_size;
-<a name="l00468"></a>00468     finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = 0;
-<a name="l00469"></a>00469 }
+<a name="l00399"></a>00399             used = <a class="code" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lms_parsers_check_using</a>(lms, parser_match, &amp;finfo);
+<a name="l00400"></a>00400             <span class="keywordflow">if</span> (!used)
+<a name="l00401"></a>00401                 r = 0;
+<a name="l00402"></a>00402             <span class="keywordflow">else</span> {
+<a name="l00403"></a>00403                 r = <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(lms, db-&gt;handle, parser_match, &amp;finfo);
+<a name="l00404"></a>00404                 <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00405"></a>00405                     fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
+<a name="l00406"></a>00406                             getpid(), finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>);
+<a name="l00407"></a>00407                     <a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lms_db_delete_file_info</a>(db-&gt;delete_file_info, &amp;finfo);
+<a name="l00408"></a>00408                 }
+<a name="l00409"></a>00409             }
+<a name="l00410"></a>00410         }
+<a name="l00411"></a>00411 
+<a name="l00412"></a>00412         _slave_send_reply(fds, r);
+<a name="l00413"></a>00413         counter++;
+<a name="l00414"></a>00414         <span class="keywordflow">if</span> (counter &gt; lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>) {
+<a name="l00415"></a>00415             <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
+<a name="l00416"></a>00416             <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
+<a name="l00417"></a>00417             counter = 0;
+<a name="l00418"></a>00418         }
+<a name="l00419"></a>00419     }
+<a name="l00420"></a>00420 
+<a name="l00421"></a>00421     free(parser_match);
+<a name="l00422"></a>00422     <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
+<a name="l00423"></a>00423 
+<a name="l00424"></a>00424     <span class="keywordflow">return</span> r;
+<a name="l00425"></a>00425 }
+<a name="l00426"></a>00426 
+<a name="l00427"></a>00427 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00428"></a>00428 _slave_work(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">struct</span> fds *fds)
+<a name="l00429"></a>00429 {
+<a name="l00430"></a>00430     <span class="keyword">struct </span>slave_db *db;
+<a name="l00431"></a>00431     <span class="keywordtype">int</span> r;
+<a name="l00432"></a>00432 
+<a name="l00433"></a>00433     db = _slave_db_open(lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
+<a name="l00434"></a>00434     <span class="keywordflow">if</span> (!db)
+<a name="l00435"></a>00435         <span class="keywordflow">return</span> -1;
+<a name="l00436"></a>00436 
+<a name="l00437"></a>00437     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lms_parsers_setup</a>(lms, db-&gt;handle) != 0) {
+<a name="l00438"></a>00438         fprintf(stderr, <span class="stringliteral">"ERROR: could not setup parsers.\n"</span>);
+<a name="l00439"></a>00439         r = -2;
+<a name="l00440"></a>00440         <span class="keywordflow">goto</span> end;
+<a name="l00441"></a>00441     }
+<a name="l00442"></a>00442 
+<a name="l00443"></a>00443     <span class="keywordflow">if</span> (_slave_db_compile_all_stmts(db) != 0) {
+<a name="l00444"></a>00444         fprintf(stderr, <span class="stringliteral">"ERROR: could not compile statements.\n"</span>);
+<a name="l00445"></a>00445         r = -3;
+<a name="l00446"></a>00446         <span class="keywordflow">goto</span> end;
+<a name="l00447"></a>00447     }
+<a name="l00448"></a>00448 
+<a name="l00449"></a>00449     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(lms, db-&gt;handle) != 0) {
+<a name="l00450"></a>00450         fprintf(stderr, <span class="stringliteral">"ERROR: could not start parsers.\n"</span>);
+<a name="l00451"></a>00451         r = -4;
+<a name="l00452"></a>00452         <span class="keywordflow">goto</span> end;
+<a name="l00453"></a>00453     }
+<a name="l00454"></a>00454     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> &lt; 1) {
+<a name="l00455"></a>00455         fprintf(stderr, <span class="stringliteral">"ERROR: no parser could be started, exit.\n"</span>);
+<a name="l00456"></a>00456         r = -5;
+<a name="l00457"></a>00457         <span class="keywordflow">goto</span> end;
+<a name="l00458"></a>00458     }
+<a name="l00459"></a>00459 
+<a name="l00460"></a>00460     r = _slave_work_int(lms, fds, db);
+<a name="l00461"></a>00461 
+<a name="l00462"></a>00462   end:
+<a name="l00463"></a>00463     <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(lms, db-&gt;handle);
+<a name="l00464"></a>00464     _slave_db_close(db);
+<a name="l00465"></a>00465     _init_sync_send(fds);
+<a name="l00466"></a>00466 
+<a name="l00467"></a>00467     <span class="keywordflow">return</span> r;
+<a name="l00468"></a>00468 }
+<a name="l00469"></a>00469 
 <a name="l00470"></a>00470 
-<a name="l00471"></a>00471 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00472"></a>00472 _check_row(<span class="keyword">struct</span> master_db *db, <span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>)
-<a name="l00473"></a>00473 {
-<a name="l00474"></a>00474     <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> finfo;
-<a name="l00475"></a>00475     <span class="keyword">struct </span>stat st;
-<a name="l00476"></a>00476     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags;
-<a name="l00477"></a>00477     <span class="keywordtype">int</span> r, reply;
-<a name="l00478"></a>00478 
-<a name="l00479"></a>00479     _update_finfo_from_stmt(&amp;finfo, db-&gt;get_files);
-<a name="l00480"></a>00480 
-<a name="l00481"></a>00481     flags = 0;
-<a name="l00482"></a>00482     <span class="keywordflow">if</span> (stat(finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, &amp;st) == 0) {
-<a name="l00483"></a>00483         <span class="keywordflow">if</span> (st.st_mtime == finfo.<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> &amp;&amp; st.st_size == finfo.<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a>) {
-<a name="l00484"></a>00484             <span class="keywordflow">if</span> (finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> == 0)
-<a name="l00485"></a>00485                 <span class="keywordflow">return</span> 0;
-<a name="l00486"></a>00486             <span class="keywordflow">else</span>
-<a name="l00487"></a>00487                 finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = 0;
-<a name="l00488"></a>00488         } <span class="keywordflow">else</span> {
-<a name="l00489"></a>00489             _update_finfo_from_stat(&amp;finfo, &amp;st);
-<a name="l00490"></a>00490             flags |= COMM_FINFO_FLAG_OUTDATED;
-<a name="l00491"></a>00491         }
-<a name="l00492"></a>00492     } <span class="keywordflow">else</span> {
-<a name="l00493"></a>00493         <span class="keywordflow">if</span> (finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>)
-<a name="l00494"></a>00494             <span class="keywordflow">return</span> 0;
-<a name="l00495"></a>00495         <span class="keywordflow">else</span>
-<a name="l00496"></a>00496             finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = time(NULL);
-<a name="l00497"></a>00497     }
-<a name="l00498"></a>00498 
-<a name="l00499"></a>00499     _calc_base(&amp;finfo);
-<a name="l00500"></a>00500 
-<a name="l00501"></a>00501     <span class="keywordflow">if</span> (_master_send_file(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, finfo, flags) != 0)
-<a name="l00502"></a>00502         <span class="keywordflow">return</span> -1;
-<a name="l00503"></a>00503 
-<a name="l00504"></a>00504     r = _master_recv_reply(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, &amp;pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>, &amp;reply,
-<a name="l00505"></a>00505                            pinfo-&gt;<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>);
-<a name="l00506"></a>00506     <span class="keywordflow">if</span> (r &lt; 0)
-<a name="l00507"></a>00507         <span class="keywordflow">return</span> -2;
-<a name="l00508"></a>00508     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r == 1) {
-<a name="l00509"></a>00509         fprintf(stderr, <span class="stringliteral">"ERROR: slave took too long, restart %d\n"</span>,
-<a name="l00510"></a>00510                 pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
-<a name="l00511"></a>00511         <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(pinfo, _slave_work) != 0)
-<a name="l00512"></a>00512             <span class="keywordflow">return</span> -3;
-<a name="l00513"></a>00513         <span class="keywordflow">return</span> 1;
-<a name="l00514"></a>00514     } <span class="keywordflow">else</span> {
-<a name="l00515"></a>00515         <span class="keywordflow">if</span> (reply &lt; 0) {
-<a name="l00516"></a>00516             <span class="comment">/* XXX callback library users to inform error. */</span>
-<a name="l00517"></a>00517             fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
-<a name="l00518"></a>00518                     getpid(), finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>);
-<a name="l00519"></a>00519             <span class="keywordflow">return</span> (-reply) &lt;&lt; 8;
-<a name="l00520"></a>00520         } <span class="keywordflow">else</span>
-<a name="l00521"></a>00521             <span class="keywordflow">return</span> reply;
-<a name="l00522"></a>00522     }
-<a name="l00523"></a>00523 }
-<a name="l00524"></a>00524 
-<a name="l00525"></a>00525 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00526"></a>00526 _init_sync_wait(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> restart)
-<a name="l00527"></a>00527 {
-<a name="l00528"></a>00528     <span class="keywordtype">int</span> r, reply;
+<a name="l00471"></a>00471 <span class="comment">/***********************************************************************</span>
+<a name="l00472"></a>00472 <span class="comment"> * Master-side.</span>
+<a name="l00473"></a>00473 <span class="comment"> ***********************************************************************/</span>
+<a name="l00474"></a>00474 
+<a name="l00475"></a>00475 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00476"></a>00476 _master_db_compile_all_stmts(<span class="keyword">struct</span> master_db *db)
+<a name="l00477"></a>00477 {
+<a name="l00478"></a>00478     sqlite3 *handle;
+<a name="l00479"></a>00479 
+<a name="l00480"></a>00480     handle = db-&gt;handle;
+<a name="l00481"></a>00481 
+<a name="l00482"></a>00482     db-&gt;get_files = <a class="code" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lms_db_compile_stmt_get_files</a>(handle);
+<a name="l00483"></a>00483     <span class="keywordflow">if</span> (!db-&gt;get_files)
+<a name="l00484"></a>00484         <span class="keywordflow">return</span> -1;
+<a name="l00485"></a>00485 
+<a name="l00486"></a>00486     <span class="keywordflow">return</span> 0;
+<a name="l00487"></a>00487 }
+<a name="l00488"></a>00488 
+<a name="l00489"></a>00489 <span class="keyword">static</span> <span class="keyword">struct </span>master_db *
+<a name="l00490"></a>00490 _master_db_open(<span class="keyword">const</span> <span class="keywordtype">char</span> *db_path)
+<a name="l00491"></a>00491 {
+<a name="l00492"></a>00492     <span class="keyword">struct </span>master_db *db;
+<a name="l00493"></a>00493 
+<a name="l00494"></a>00494     db = calloc(1, <span class="keyword">sizeof</span>(*db));
+<a name="l00495"></a>00495     <span class="keywordflow">if</span> (!db) {
+<a name="l00496"></a>00496         perror(<span class="stringliteral">"calloc"</span>);
+<a name="l00497"></a>00497         <span class="keywordflow">return</span> NULL;
+<a name="l00498"></a>00498     }
+<a name="l00499"></a>00499 
+<a name="l00500"></a>00500     <span class="keywordflow">if</span> (sqlite3_open(db_path, &amp;db-&gt;handle) != SQLITE_OK) {
+<a name="l00501"></a>00501         fprintf(stderr, <span class="stringliteral">"ERROR: could not open DB \"%s\": %s\n"</span>,
+<a name="l00502"></a>00502                 db_path, sqlite3_errmsg(db-&gt;handle));
+<a name="l00503"></a>00503         <span class="keywordflow">goto</span> error;
+<a name="l00504"></a>00504     }
+<a name="l00505"></a>00505 
+<a name="l00506"></a>00506     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#3798a46baaedc4d466879865456acc94">lms_db_create_core_tables_if_required</a>(db-&gt;handle) != 0) {
+<a name="l00507"></a>00507         fprintf(stderr, <span class="stringliteral">"ERROR: could not setup tables and indexes.\n"</span>);
+<a name="l00508"></a>00508         <span class="keywordflow">goto</span> error;
+<a name="l00509"></a>00509     }
+<a name="l00510"></a>00510 
+<a name="l00511"></a>00511     <span class="keywordflow">if</span> (_master_db_compile_all_stmts(db) != 0) {
+<a name="l00512"></a>00512         fprintf(stderr, <span class="stringliteral">"ERROR: could not compile statements.\n"</span>);
+<a name="l00513"></a>00513         <span class="keywordflow">goto</span> error;
+<a name="l00514"></a>00514     }
+<a name="l00515"></a>00515 
+<a name="l00516"></a>00516     <span class="keywordflow">return</span> db;
+<a name="l00517"></a>00517 
+<a name="l00518"></a>00518   error:
+<a name="l00519"></a>00519     sqlite3_close(db-&gt;handle);
+<a name="l00520"></a>00520     free(db);
+<a name="l00521"></a>00521     <span class="keywordflow">return</span> NULL;
+<a name="l00522"></a>00522 }
+<a name="l00523"></a>00523 
+<a name="l00524"></a>00524 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00525"></a>00525 _master_db_close(<span class="keyword">struct</span> master_db *db)
+<a name="l00526"></a>00526 {
+<a name="l00527"></a>00527     <span class="keywordflow">if</span> (db-&gt;get_files)
+<a name="l00528"></a>00528         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(db-&gt;get_files, <span class="stringliteral">"get_files"</span>);
 <a name="l00529"></a>00529 
-<a name="l00530"></a>00530     <span class="keywordflow">do</span> {
-<a name="l00531"></a>00531         r = _master_recv_reply(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, &amp;pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>, &amp;reply,
-<a name="l00532"></a>00532                                pinfo-&gt;<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>);
-<a name="l00533"></a>00533         <span class="keywordflow">if</span> (r &lt; 0)
-<a name="l00534"></a>00534             <span class="keywordflow">return</span> -1;
-<a name="l00535"></a>00535         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r == 1 &amp;&amp; restart) {
-<a name="l00536"></a>00536             fprintf(stderr, <span class="stringliteral">"ERROR: slave took too long, restart %d\n"</span>,
-<a name="l00537"></a>00537                     pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
-<a name="l00538"></a>00538             <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(pinfo, _slave_work) != 0)
-<a name="l00539"></a>00539                 <span class="keywordflow">return</span> -2;
-<a name="l00540"></a>00540         }
-<a name="l00541"></a>00541     } <span class="keywordflow">while</span> (r != 0 &amp;&amp; restart);
-<a name="l00542"></a>00542 
-<a name="l00543"></a>00543     <span class="keywordflow">return</span> r;
-<a name="l00544"></a>00544 }
-<a name="l00545"></a>00545 
-<a name="l00546"></a>00546 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00547"></a>00547 _master_dummy_send_finish(<span class="keyword">const</span> <span class="keyword">struct</span> fds *master)
-<a name="l00548"></a>00548 {
-<a name="l00549"></a>00549     <span class="keywordflow">return</span> 0;
+<a name="l00530"></a>00530     <span class="keywordflow">if</span> (sqlite3_close(db-&gt;handle) != SQLITE_OK) {
+<a name="l00531"></a>00531         fprintf(stderr, <span class="stringliteral">"ERROR: clould not close DB (master): %s\n"</span>,
+<a name="l00532"></a>00532                 sqlite3_errmsg(db-&gt;handle));
+<a name="l00533"></a>00533         <span class="keywordflow">return</span> -1;
+<a name="l00534"></a>00534     }
+<a name="l00535"></a>00535     free(db);
+<a name="l00536"></a>00536 
+<a name="l00537"></a>00537     <span class="keywordflow">return</span> 0;
+<a name="l00538"></a>00538 }
+<a name="l00539"></a>00539 
+<a name="l00540"></a>00540 <span class="keyword">static</span> <span class="keywordtype">void</span>
+<a name="l00541"></a>00541 _calc_base(<span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
+<a name="l00542"></a>00542 {
+<a name="l00543"></a>00543     <span class="keywordtype">int</span> i;
+<a name="l00544"></a>00544 
+<a name="l00545"></a>00545     <span class="keywordflow">for</span> (i = finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> - 1; i &gt;= 0; i--)
+<a name="l00546"></a>00546         <span class="keywordflow">if</span> (finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>[i] == <span class="charliteral">'/'</span>) {
+<a name="l00547"></a>00547             finfo-&gt;<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a> = i;
+<a name="l00548"></a>00548             <span class="keywordflow">return</span>;
+<a name="l00549"></a>00549         }
 <a name="l00550"></a>00550 }
 <a name="l00551"></a>00551 
-<a name="l00552"></a>00552 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00553"></a>00553 _check(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> len, <span class="keywordtype">char</span> *path)
+<a name="l00552"></a>00552 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>
+<a name="l00553"></a>00553 _update_finfo_from_stmt(<span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, sqlite3_stmt *stmt)
 <a name="l00554"></a>00554 {
-<a name="l00555"></a>00555     <span class="keywordtype">char</span> query[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a> + 2];
-<a name="l00556"></a>00556     <span class="keyword">struct </span>master_db *db;
-<a name="l00557"></a>00557     <span class="keywordtype">int</span> r, ret;
-<a name="l00558"></a>00558 
-<a name="l00559"></a>00559     db = _master_db_open(pinfo-&gt;<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
-<a name="l00560"></a>00560     <span class="keywordflow">if</span> (!db)
-<a name="l00561"></a>00561         <span class="keywordflow">return</span> -1;
-<a name="l00562"></a>00562 
-<a name="l00563"></a>00563     memcpy(query, path, len);
-<a name="l00564"></a>00564     query[len] = <span class="charliteral">'%'</span>;
-<a name="l00565"></a>00565     query[len + 1] = <span class="charliteral">'\0'</span>;
-<a name="l00566"></a>00566     ret = <a class="code" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">lms_db_get_files</a>(db-&gt;get_files, query, len + 1);
-<a name="l00567"></a>00567     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00568"></a>00568         <span class="keywordflow">goto</span> end;
-<a name="l00569"></a>00569 
-<a name="l00570"></a>00570     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(pinfo, _slave_work) != 0) {
-<a name="l00571"></a>00571         ret = -2;
-<a name="l00572"></a>00572         <span class="keywordflow">goto</span> end;
-<a name="l00573"></a>00573     }
-<a name="l00574"></a>00574     _init_sync_wait(pinfo, 1);
-<a name="l00575"></a>00575 
-<a name="l00576"></a>00576     <span class="keywordflow">do</span> {
-<a name="l00577"></a>00577         r = sqlite3_step(db-&gt;get_files);
-<a name="l00578"></a>00578         <span class="keywordflow">if</span> (r == SQLITE_ROW) {
-<a name="l00579"></a>00579             <span class="keywordflow">if</span> (_check_row(db, pinfo) &lt; 0) {
-<a name="l00580"></a>00580                 fprintf(stderr, <span class="stringliteral">"ERROR: could not check row.\n"</span>);
-<a name="l00581"></a>00581                 ret = -1;
-<a name="l00582"></a>00582                 <span class="keywordflow">goto</span> finish_slave;
-<a name="l00583"></a>00583             }
-<a name="l00584"></a>00584         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00585"></a>00585             fprintf(stderr, <span class="stringliteral">"ERROR: could not begin transaction: %s\n"</span>,
-<a name="l00586"></a>00586                     sqlite3_errmsg(db-&gt;handle));
-<a name="l00587"></a>00587             ret = -2;
-<a name="l00588"></a>00588             <span class="keywordflow">goto</span> finish_slave;
-<a name="l00589"></a>00589         }
-<a name="l00590"></a>00590     } <span class="keywordflow">while</span> (r != SQLITE_DONE);
-<a name="l00591"></a>00591     ret = 0;
+<a name="l00555"></a>00555     finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = sqlite3_column_int64(stmt, 0);
+<a name="l00556"></a>00556     finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a> = sqlite3_column_blob(stmt, 1);
+<a name="l00557"></a>00557     finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> = sqlite3_column_bytes(stmt, 1);
+<a name="l00558"></a>00558     finfo-&gt;<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a> = 0;
+<a name="l00559"></a>00559     finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> = sqlite3_column_int(stmt, 2);
+<a name="l00560"></a>00560     finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = sqlite3_column_int(stmt, 3);
+<a name="l00561"></a>00561     finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a> = sqlite3_column_int(stmt, 4);
+<a name="l00562"></a>00562 }
+<a name="l00563"></a>00563 
+<a name="l00564"></a>00564 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>
+<a name="l00565"></a>00565 _update_finfo_from_stat(<span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, <span class="keyword">const</span> <span class="keyword">struct</span> stat *st)
+<a name="l00566"></a>00566 {
+<a name="l00567"></a>00567     finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> = st-&gt;st_mtime;
+<a name="l00568"></a>00568     finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a> = st-&gt;st_size;
+<a name="l00569"></a>00569     finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = 0;
+<a name="l00570"></a>00570 }
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>
+<a name="l00573"></a>00573 _report_progress(<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lms_progress_status_t</a> status)
+<a name="l00574"></a>00574 {
+<a name="l00575"></a>00575     <a class="code" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> cb;
+<a name="l00576"></a>00576     <a class="code" href="structlms.html">lms_t</a> *lms = info-&gt;<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>;
+<a name="l00577"></a>00577 
+<a name="l00578"></a>00578     cb = lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#94615d22fba40d580a8a0055d28221c4">cb</a>;
+<a name="l00579"></a>00579     <span class="keywordflow">if</span> (!cb)
+<a name="l00580"></a>00580         <span class="keywordflow">return</span>;
+<a name="l00581"></a>00581 
+<a name="l00582"></a>00582     cb(lms, finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>, status, lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a>);
+<a name="l00583"></a>00583 }
+<a name="l00584"></a>00584 
+<a name="l00585"></a>00585 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00586"></a>00586 _finfo_update(<span class="keywordtype">void</span> *db_ptr, <span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *flags)
+<a name="l00587"></a>00587 {
+<a name="l00588"></a>00588     <span class="keyword">struct </span>master_db *db = db_ptr;
+<a name="l00589"></a>00589     <span class="keyword">struct </span>stat st;
+<a name="l00590"></a>00590 
+<a name="l00591"></a>00591     _update_finfo_from_stmt(finfo, db-&gt;get_files);
 <a name="l00592"></a>00592 
-<a name="l00593"></a>00593   finish_slave:
-<a name="l00594"></a>00594     _master_send_finish(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>);
-<a name="l00595"></a>00595     _init_sync_wait(pinfo, 0);
-<a name="l00596"></a>00596     <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(pinfo, _master_dummy_send_finish);
-<a name="l00597"></a>00597 
-<a name="l00598"></a>00598   end:
-<a name="l00599"></a>00599     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(db-&gt;get_files);
-<a name="l00600"></a>00600     _master_db_close(db);
-<a name="l00601"></a>00601 
-<a name="l00602"></a>00602     <span class="keywordflow">return</span> ret;
-<a name="l00603"></a>00603 }
-<a name="l00604"></a>00604 
-<a name="l00617"></a>00617 <span class="keywordtype">int</span>
-<a name="l00618"></a><a class="code" href="lightmediascanner__check_8c.html#859492d896e816498edb471315efced1">00618</a> <a class="code" href="lightmediascanner_8h.html#890f1af4c54c88a63abdbeff5ecd49a3">lms_check</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path)
+<a name="l00593"></a>00593     *flags = 0;
+<a name="l00594"></a>00594     <span class="keywordflow">if</span> (stat(finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, &amp;st) == 0) {
+<a name="l00595"></a>00595         <span class="keywordflow">if</span> (st.st_mtime == finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> &amp;&amp; st.st_size == finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a>) {
+<a name="l00596"></a>00596             <span class="keywordflow">if</span> (finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> == 0) {
+<a name="l00597"></a>00597                 _report_progress(info, finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370204315e58ce4b7dfa6421b4d1556655d">LMS_PROGRESS_STATUS_UP_TO_DATE</a>);
+<a name="l00598"></a>00598                 <span class="keywordflow">return</span> 0;
+<a name="l00599"></a>00599             } <span class="keywordflow">else</span>
+<a name="l00600"></a>00600                 finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = 0;
+<a name="l00601"></a>00601         } <span class="keywordflow">else</span> {
+<a name="l00602"></a>00602             _update_finfo_from_stat(finfo, &amp;st);
+<a name="l00603"></a>00603             *flags |= COMM_FINFO_FLAG_OUTDATED;
+<a name="l00604"></a>00604         }
+<a name="l00605"></a>00605     } <span class="keywordflow">else</span> {
+<a name="l00606"></a>00606         <span class="keywordflow">if</span> (finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>)
+<a name="l00607"></a>00607             <span class="keywordflow">return</span> 0;
+<a name="l00608"></a>00608         <span class="keywordflow">else</span>
+<a name="l00609"></a>00609             finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = time(NULL);
+<a name="l00610"></a>00610     }
+<a name="l00611"></a>00611 
+<a name="l00612"></a>00612     _calc_base(finfo);
+<a name="l00613"></a>00613 
+<a name="l00614"></a>00614     <span class="keywordflow">return</span> 1;
+<a name="l00615"></a>00615 }
+<a name="l00616"></a>00616 
+<a name="l00617"></a>00617 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00618"></a>00618 _check_row(<span class="keywordtype">void</span> *db_ptr, <span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info)
 <a name="l00619"></a>00619 {
-<a name="l00620"></a>00620     <span class="keyword">struct </span>pinfo pinfo;
-<a name="l00621"></a>00621     <span class="keywordtype">int</span> r;
-<a name="l00622"></a>00622     <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>];
-<a name="l00623"></a>00623 
-<a name="l00624"></a>00624     <span class="keywordflow">if</span> (!<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>) {
-<a name="l00625"></a>00625         r = -1;
-<a name="l00626"></a>00626         <span class="keywordflow">goto</span> end;
-<a name="l00627"></a>00627     }
-<a name="l00628"></a>00628 
-<a name="l00629"></a>00629     <span class="keywordflow">if</span> (!top_path) {
-<a name="l00630"></a>00630         r = -2;
-<a name="l00631"></a>00631         <span class="keywordflow">goto</span> end;
-<a name="l00632"></a>00632     }
-<a name="l00633"></a>00633 
-<a name="l00634"></a>00634     <span class="keywordflow">if</span> (<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>) {
-<a name="l00635"></a>00635         fprintf(stderr, <span class="stringliteral">"ERROR: is already processing.\n"</span>);
-<a name="l00636"></a>00636         r = -3;
-<a name="l00637"></a>00637         <span class="keywordflow">goto</span> end;
-<a name="l00638"></a>00638     }
-<a name="l00639"></a>00639 
-<a name="l00640"></a>00640     <span class="keywordflow">if</span> (!<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>) {
-<a name="l00641"></a>00641         fprintf(stderr, <span class="stringliteral">"ERROR: no plugins registered.\n"</span>);
-<a name="l00642"></a>00642         r = -4;
-<a name="l00643"></a>00643         <span class="keywordflow">goto</span> end;
-<a name="l00644"></a>00644     }
-<a name="l00645"></a>00645 
-<a name="l00646"></a>00646     pinfo.<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a> = <a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>;
-<a name="l00647"></a>00647 
-<a name="l00648"></a>00648     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(&amp;pinfo) != 0) {
-<a name="l00649"></a>00649         r = -5;
-<a name="l00650"></a>00650         <span class="keywordflow">goto</span> end;
-<a name="l00651"></a>00651     }
-<a name="l00652"></a>00652 
-<a name="l00653"></a>00653     <span class="keywordflow">if</span> (realpath(top_path, path) == NULL) {
-<a name="l00654"></a>00654         perror(<span class="stringliteral">"realpath"</span>);
-<a name="l00655"></a>00655         r = -6;
-<a name="l00656"></a>00656         <span class="keywordflow">goto</span> close_pipes;
-<a name="l00657"></a>00657     }
-<a name="l00658"></a>00658 
-<a name="l00659"></a>00659     <a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 1;
-<a name="l00660"></a>00660     r = _check(&amp;pinfo, strlen(path), path);
-<a name="l00661"></a>00661     <a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 0;
-<a name="l00662"></a>00662 
-<a name="l00663"></a>00663   close_pipes:
-<a name="l00664"></a>00664     <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(&amp;pinfo);
-<a name="l00665"></a>00665   end:
-<a name="l00666"></a>00666     <span class="keywordflow">return</span> r;
-<a name="l00667"></a>00667 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00620"></a>00620     <span class="keyword">struct </span><a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a> = (<span class="keyword">struct </span>pinfo *)info;
+<a name="l00621"></a>00621     <span class="keyword">struct </span>master_db *db = db_ptr;
+<a name="l00622"></a>00622     <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> finfo;
+<a name="l00623"></a>00623     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags;
+<a name="l00624"></a>00624     <span class="keywordtype">int</span> r, reply;
+<a name="l00625"></a>00625 
+<a name="l00626"></a>00626     r = _finfo_update(db, info, &amp;finfo, &amp;flags);
+<a name="l00627"></a>00627     <span class="keywordflow">if</span> (r == 0)
+<a name="l00628"></a>00628         <span class="keywordflow">return</span> r;
+<a name="l00629"></a>00629 
+<a name="l00630"></a>00630     <span class="keywordflow">if</span> (_master_send_file(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, finfo, flags) != 0)
+<a name="l00631"></a>00631         <span class="keywordflow">return</span> -1;
+<a name="l00632"></a>00632 
+<a name="l00633"></a>00633     r = _master_recv_reply(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, &amp;pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>, &amp;reply,
+<a name="l00634"></a>00634                            pinfo-&gt;<a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>);
+<a name="l00635"></a>00635     <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00636"></a>00636         _report_progress(info, &amp;finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082">LMS_PROGRESS_STATUS_ERROR_COMM</a>);
+<a name="l00637"></a>00637         <span class="keywordflow">return</span> -2;
+<a name="l00638"></a>00638     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r == 1) {
+<a name="l00639"></a>00639         fprintf(stderr, <span class="stringliteral">"ERROR: slave took too long, restart %d\n"</span>,
+<a name="l00640"></a>00640                 pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
+<a name="l00641"></a>00641         _report_progress(info, &amp;finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152">LMS_PROGRESS_STATUS_KILLED</a>);
+<a name="l00642"></a>00642         <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(pinfo, _slave_work) != 0)
+<a name="l00643"></a>00643             <span class="keywordflow">return</span> -3;
+<a name="l00644"></a>00644         <span class="keywordflow">return</span> 1;
+<a name="l00645"></a>00645     } <span class="keywordflow">else</span> {
+<a name="l00646"></a>00646         <span class="keywordflow">if</span> (reply &lt; 0) {
+<a name="l00647"></a>00647             fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
+<a name="l00648"></a>00648                     getpid(), finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>);
+<a name="l00649"></a>00649             _report_progress(info, &amp;finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">LMS_PROGRESS_STATUS_ERROR_PARSE</a>);
+<a name="l00650"></a>00650             <span class="keywordflow">return</span> (-reply) &lt;&lt; 8;
+<a name="l00651"></a>00651         } <span class="keywordflow">else</span> {
+<a name="l00652"></a>00652             <span class="keywordflow">if</span> (!finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>)
+<a name="l00653"></a>00653                 _report_progress(info, &amp;finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">LMS_PROGRESS_STATUS_PROCESSED</a>);
+<a name="l00654"></a>00654             <span class="keywordflow">else</span>
+<a name="l00655"></a>00655                 _report_progress(info, &amp;finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11">LMS_PROGRESS_STATUS_DELETED</a>);
+<a name="l00656"></a>00656             <span class="keywordflow">return</span> reply;
+<a name="l00657"></a>00657         }
+<a name="l00658"></a>00658     }
+<a name="l00659"></a>00659 }
+<a name="l00660"></a>00660 
+<a name="l00661"></a>00661 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00662"></a>00662 _check_row_single_process(<span class="keywordtype">void</span> *db_ptr, <span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info)
+<a name="l00663"></a>00663 {
+<a name="l00664"></a>00664     <span class="keyword">struct </span><a class="code" href="structsinfo.html">sinfo</a> *<a class="code" href="structsinfo.html">sinfo</a> = (<span class="keyword">struct </span>sinfo *)info;
+<a name="l00665"></a>00665     <span class="keyword">struct </span>single_process_db *db = db_ptr;
+<a name="l00666"></a>00666     <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> finfo;
+<a name="l00667"></a>00667     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags;
+<a name="l00668"></a>00668     <span class="keywordtype">int</span> r;
+<a name="l00669"></a>00669 
+<a name="l00670"></a>00670     <span class="keywordtype">void</span> **parser_match = sinfo-&gt;<a class="code" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">parser_match</a>;
+<a name="l00671"></a>00671     <a class="code" href="structlms.html">lms_t</a> *lms = info-&gt;<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>;
+<a name="l00672"></a>00672 
+<a name="l00673"></a>00673     r = _finfo_update(db, info, &amp;finfo, &amp;flags);
+<a name="l00674"></a>00674     <span class="keywordflow">if</span> (r == 0)
+<a name="l00675"></a>00675         <span class="keywordflow">return</span> r;
+<a name="l00676"></a>00676 
+<a name="l00677"></a>00677     r = <a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lms_db_update_file_info</a>(db-&gt;update_file_info, &amp;finfo);
+<a name="l00678"></a>00678     <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00679"></a>00679         fprintf(stderr, <span class="stringliteral">"ERROR: could not update path in DB\n"</span>);
+<a name="l00680"></a>00680     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (flags &amp; COMM_FINFO_FLAG_OUTDATED) {
+<a name="l00681"></a>00681         <span class="keywordtype">int</span> used;
+<a name="l00682"></a>00682 
+<a name="l00683"></a>00683         used = <a class="code" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lms_parsers_check_using</a>(lms, parser_match, &amp;finfo);
+<a name="l00684"></a>00684         <span class="keywordflow">if</span> (!used)
+<a name="l00685"></a>00685             r = 0;
+<a name="l00686"></a>00686         <span class="keywordflow">else</span> {
+<a name="l00687"></a>00687             r = <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(lms, db-&gt;handle, parser_match, &amp;finfo);
+<a name="l00688"></a>00688             <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00689"></a>00689                 fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
+<a name="l00690"></a>00690                         getpid(), finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>);
+<a name="l00691"></a>00691                 <a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lms_db_delete_file_info</a>(db-&gt;delete_file_info, &amp;finfo);
+<a name="l00692"></a>00692             }
+<a name="l00693"></a>00693         }
+<a name="l00694"></a>00694     }
+<a name="l00695"></a>00695 
+<a name="l00696"></a>00696     <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00697"></a>00697         _report_progress(info, &amp;finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">LMS_PROGRESS_STATUS_ERROR_PARSE</a>);
+<a name="l00698"></a>00698         <span class="keywordflow">return</span> (-r) &lt;&lt; 8;
+<a name="l00699"></a>00699     } <span class="keywordflow">else</span> {
+<a name="l00700"></a>00700         sinfo-&gt;<a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a>++;
+<a name="l00701"></a>00701         <span class="keywordflow">if</span> (sinfo-&gt;<a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a> &gt; lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>) {
+<a name="l00702"></a>00702             <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
+<a name="l00703"></a>00703             <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
+<a name="l00704"></a>00704             sinfo-&gt;<a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a> = 0;
+<a name="l00705"></a>00705         }
+<a name="l00706"></a>00706 
+<a name="l00707"></a>00707         <span class="keywordflow">if</span> (!finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>)
+<a name="l00708"></a>00708             _report_progress(info, &amp;finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">LMS_PROGRESS_STATUS_PROCESSED</a>);
+<a name="l00709"></a>00709         <span class="keywordflow">else</span>
+<a name="l00710"></a>00710             _report_progress(info, &amp;finfo, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370a6792f0bca81010621d898e105face11">LMS_PROGRESS_STATUS_DELETED</a>);
+<a name="l00711"></a>00711         <span class="keywordflow">return</span> r;
+<a name="l00712"></a>00712     }
+<a name="l00713"></a>00713 }
+<a name="l00714"></a>00714 
+<a name="l00715"></a>00715 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00716"></a>00716 _init_sync_wait(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> restart)
+<a name="l00717"></a>00717 {
+<a name="l00718"></a>00718     <span class="keywordtype">int</span> r, reply;
+<a name="l00719"></a>00719 
+<a name="l00720"></a>00720     <span class="keywordflow">do</span> {
+<a name="l00721"></a>00721         r = _master_recv_reply(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, &amp;pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>, &amp;reply,
+<a name="l00722"></a>00722                                pinfo-&gt;<a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>);
+<a name="l00723"></a>00723         <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00724"></a>00724             <span class="keywordflow">return</span> -1;
+<a name="l00725"></a>00725         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r == 1 &amp;&amp; restart) {
+<a name="l00726"></a>00726             fprintf(stderr, <span class="stringliteral">"ERROR: slave took too long, restart %d\n"</span>,
+<a name="l00727"></a>00727                     pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
+<a name="l00728"></a>00728             <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(pinfo, _slave_work) != 0)
+<a name="l00729"></a>00729                 <span class="keywordflow">return</span> -2;
+<a name="l00730"></a>00730         }
+<a name="l00731"></a>00731     } <span class="keywordflow">while</span> (r != 0 &amp;&amp; restart);
+<a name="l00732"></a>00732 
+<a name="l00733"></a>00733     <span class="keywordflow">return</span> r;
+<a name="l00734"></a>00734 }
+<a name="l00735"></a>00735 
+<a name="l00736"></a>00736 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00737"></a>00737 _master_dummy_send_finish(<span class="keyword">const</span> <span class="keyword">struct</span> fds *master)
+<a name="l00738"></a>00738 {
+<a name="l00739"></a>00739     <span class="keywordflow">return</span> 0;
+<a name="l00740"></a>00740 }
+<a name="l00741"></a>00741 
+<a name="l00742"></a>00742 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00743"></a>00743 _db_files_loop(<span class="keywordtype">void</span> *db_ptr, <span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <a class="code" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">check_row_callback_t</a> check_row)
+<a name="l00744"></a>00744 {
+<a name="l00745"></a>00745     <span class="keyword">struct </span>master_db *db = db_ptr;
+<a name="l00746"></a>00746     <a class="code" href="structlms.html">lms_t</a> *lms = info-&gt;<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>;
+<a name="l00747"></a>00747     <span class="keywordtype">int</span> r;
+<a name="l00748"></a>00748 
+<a name="l00749"></a>00749     <span class="keywordflow">do</span> {
+<a name="l00750"></a>00750         r = sqlite3_step(db-&gt;get_files);
+<a name="l00751"></a>00751         <span class="keywordflow">if</span> (r == SQLITE_ROW) {
+<a name="l00752"></a>00752             <span class="keywordflow">if</span> (check_row(db_ptr, info) &lt; 0) {
+<a name="l00753"></a>00753                 fprintf(stderr, <span class="stringliteral">"ERROR: could not check row.\n"</span>);
+<a name="l00754"></a>00754                 <span class="keywordflow">return</span> -1;
+<a name="l00755"></a>00755             }
+<a name="l00756"></a>00756         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00757"></a>00757             fprintf(stderr, <span class="stringliteral">"ERROR: could not begin transaction: %s\n"</span>,
+<a name="l00758"></a>00758                     sqlite3_errmsg(db-&gt;handle));
+<a name="l00759"></a>00759             <span class="keywordflow">return</span> -2;
+<a name="l00760"></a>00760         }
+<a name="l00761"></a>00761     } <span class="keywordflow">while</span> (r != SQLITE_DONE &amp;&amp; !lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a>);
+<a name="l00762"></a>00762 
+<a name="l00763"></a>00763     <span class="keywordflow">return</span> 0;
+<a name="l00764"></a>00764 }
+<a name="l00765"></a>00765 
+<a name="l00766"></a>00766 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00767"></a>00767 _check(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> len, <span class="keywordtype">char</span> *path)
+<a name="l00768"></a>00768 {
+<a name="l00769"></a>00769     <span class="keywordtype">char</span> query[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a> + 2];
+<a name="l00770"></a>00770     <span class="keyword">struct </span>master_db *db;
+<a name="l00771"></a>00771     <span class="keywordtype">int</span> ret;
+<a name="l00772"></a>00772 
+<a name="l00773"></a>00773     db = _master_db_open(pinfo-&gt;<a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
+<a name="l00774"></a>00774     <span class="keywordflow">if</span> (!db)
+<a name="l00775"></a>00775         <span class="keywordflow">return</span> -1;
+<a name="l00776"></a>00776 
+<a name="l00777"></a>00777     memcpy(query, path, len);
+<a name="l00778"></a>00778     query[len] = <span class="charliteral">'%'</span>;
+<a name="l00779"></a>00779     query[len + 1] = <span class="charliteral">'\0'</span>;
+<a name="l00780"></a>00780     ret = <a class="code" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">lms_db_get_files</a>(db-&gt;get_files, query, len + 1);
+<a name="l00781"></a>00781     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00782"></a>00782         <span class="keywordflow">goto</span> end;
+<a name="l00783"></a>00783 
+<a name="l00784"></a>00784     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(pinfo, _slave_work) != 0) {
+<a name="l00785"></a>00785         ret = -2;
+<a name="l00786"></a>00786         <span class="keywordflow">goto</span> end;
+<a name="l00787"></a>00787     }
+<a name="l00788"></a>00788 
+<a name="l00789"></a>00789     _init_sync_wait(pinfo, 1);
+<a name="l00790"></a>00790 
+<a name="l00791"></a>00791     ret = _db_files_loop(db, (<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *)pinfo, _check_row);
+<a name="l00792"></a>00792 
+<a name="l00793"></a>00793     _master_send_finish(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>);
+<a name="l00794"></a>00794     _init_sync_wait(pinfo, 0);
+<a name="l00795"></a>00795     <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(pinfo, _master_dummy_send_finish);
+<a name="l00796"></a>00796   end:
+<a name="l00797"></a>00797     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(db-&gt;get_files);
+<a name="l00798"></a>00798     _master_db_close(db);
+<a name="l00799"></a>00799 
+<a name="l00800"></a>00800     <span class="keywordflow">return</span> ret;
+<a name="l00801"></a>00801 }
+<a name="l00802"></a>00802 
+<a name="l00803"></a>00803 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00804"></a>00804 _check_single_process(<span class="keyword">struct</span> sinfo *sinfo, <span class="keywordtype">int</span> len, <span class="keywordtype">char</span> *path)
+<a name="l00805"></a>00805 {
+<a name="l00806"></a>00806     <span class="keyword">struct </span>single_process_db *db;
+<a name="l00807"></a>00807     <span class="keywordtype">char</span> query[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a> + 2];
+<a name="l00808"></a>00808     <span class="keywordtype">void</span> **parser_match;
+<a name="l00809"></a>00809     <a class="code" href="structlms.html">lms_t</a> *lms;
+<a name="l00810"></a>00810     <span class="keywordtype">int</span> ret;
+<a name="l00811"></a>00811 
+<a name="l00812"></a>00812     lms = sinfo-&gt;<a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>;
+<a name="l00813"></a>00813     db = _single_process_db_open(lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
+<a name="l00814"></a>00814     <span class="keywordflow">if</span> (!db)
+<a name="l00815"></a>00815         <span class="keywordflow">return</span> -1;
+<a name="l00816"></a>00816 
+<a name="l00817"></a>00817     memcpy(query, path, len);
+<a name="l00818"></a>00818     query[len] = <span class="charliteral">'%'</span>;
+<a name="l00819"></a>00819     query[len + 1] = <span class="charliteral">'\0'</span>;
+<a name="l00820"></a>00820     ret = <a class="code" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">lms_db_get_files</a>(db-&gt;get_files, query, len + 1);
+<a name="l00821"></a>00821     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00822"></a>00822         <span class="keywordflow">goto</span> end;
+<a name="l00823"></a>00823 
+<a name="l00824"></a>00824     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lms_parsers_setup</a>(lms, db-&gt;handle) != 0) {
+<a name="l00825"></a>00825         fprintf(stderr, <span class="stringliteral">"ERROR: could not setup parsers.\n"</span>);
+<a name="l00826"></a>00826         ret = -2;
+<a name="l00827"></a>00827         <span class="keywordflow">goto</span> end;
+<a name="l00828"></a>00828     }
+<a name="l00829"></a>00829 
+<a name="l00830"></a>00830     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(lms, db-&gt;handle) != 0) {
+<a name="l00831"></a>00831         fprintf(stderr, <span class="stringliteral">"ERROR: could not start parsers.\n"</span>);
+<a name="l00832"></a>00832         ret = -3;
+<a name="l00833"></a>00833         <span class="keywordflow">goto</span> end;
+<a name="l00834"></a>00834     }
+<a name="l00835"></a>00835 
+<a name="l00836"></a>00836     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> &lt; 1) {
+<a name="l00837"></a>00837         fprintf(stderr, <span class="stringliteral">"ERROR: no parser could be started, exit.\n"</span>);
+<a name="l00838"></a>00838         ret = -4;
+<a name="l00839"></a>00839         <span class="keywordflow">goto</span> end;
+<a name="l00840"></a>00840     }
+<a name="l00841"></a>00841 
+<a name="l00842"></a>00842     parser_match = malloc(lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> * <span class="keyword">sizeof</span>(*parser_match));
+<a name="l00843"></a>00843     <span class="keywordflow">if</span> (!parser_match) {
+<a name="l00844"></a>00844         perror(<span class="stringliteral">"malloc"</span>);
+<a name="l00845"></a>00845         ret = -5;
+<a name="l00846"></a>00846         <span class="keywordflow">goto</span> end;
+<a name="l00847"></a>00847     }
+<a name="l00848"></a>00848 
+<a name="l00849"></a>00849     sinfo-&gt;<a class="code" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">parser_match</a> = parser_match;
+<a name="l00850"></a>00850 
+<a name="l00851"></a>00851     <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
+<a name="l00852"></a>00852 
+<a name="l00853"></a>00853     ret = _db_files_loop(db, (<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *)sinfo, _check_row_single_process);
+<a name="l00854"></a>00854 
+<a name="l00855"></a>00855     free(parser_match);
+<a name="l00856"></a>00856     <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
+<a name="l00857"></a>00857   end:
+<a name="l00858"></a>00858     <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(lms, db-&gt;handle);
+<a name="l00859"></a>00859     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(db-&gt;get_files);
+<a name="l00860"></a>00860     _single_process_db_close(db);
+<a name="l00861"></a>00861 
+<a name="l00862"></a>00862     <span class="keywordflow">return</span> ret;
+<a name="l00863"></a>00863 }
+<a name="l00864"></a>00864 
+<a name="l00865"></a>00865 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00866"></a>00866 _lms_check_check_valid(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *path)
+<a name="l00867"></a>00867 {
+<a name="l00868"></a>00868     <span class="keywordflow">if</span> (!lms)
+<a name="l00869"></a>00869         <span class="keywordflow">return</span> -1;
+<a name="l00870"></a>00870 
+<a name="l00871"></a>00871     <span class="keywordflow">if</span> (!path)
+<a name="l00872"></a>00872         <span class="keywordflow">return</span> -2;
+<a name="l00873"></a>00873 
+<a name="l00874"></a>00874     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>) {
+<a name="l00875"></a>00875         fprintf(stderr, <span class="stringliteral">"ERROR: is already processing.\n"</span>);
+<a name="l00876"></a>00876         <span class="keywordflow">return</span> -3;
+<a name="l00877"></a>00877     }
+<a name="l00878"></a>00878 
+<a name="l00879"></a>00879     <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>) {
+<a name="l00880"></a>00880         fprintf(stderr, <span class="stringliteral">"ERROR: no plugins registered.\n"</span>);
+<a name="l00881"></a>00881         <span class="keywordflow">return</span> -4;
+<a name="l00882"></a>00882     }
+<a name="l00883"></a>00883 
+<a name="l00884"></a>00884     <span class="keywordflow">return</span> 0;
+<a name="l00885"></a>00885 }
+<a name="l00886"></a>00886 
+<a name="l00899"></a>00899 <span class="keywordtype">int</span>
+<a name="l00900"></a><a class="code" href="lightmediascanner__check_8c.html#859492d896e816498edb471315efced1">00900</a> <a class="code" href="lightmediascanner_8h.html#5b70063cf19648de70bb145404aa3d0b">lms_check</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path)
+<a name="l00901"></a>00901 {
+<a name="l00902"></a>00902     <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>];
+<a name="l00903"></a>00903     <span class="keyword">struct </span>pinfo pinfo;
+<a name="l00904"></a>00904     <span class="keywordtype">int</span> r;
+<a name="l00905"></a>00905 
+<a name="l00906"></a>00906     r = _lms_check_check_valid(lms, top_path);
+<a name="l00907"></a>00907     <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00908"></a>00908         <span class="keywordflow">return</span> r;
+<a name="l00909"></a>00909 
+<a name="l00910"></a>00910     pinfo.<a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a> = lms;
+<a name="l00911"></a>00911 
+<a name="l00912"></a>00912     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(&amp;pinfo) != 0) {
+<a name="l00913"></a>00913         r = -5;
+<a name="l00914"></a>00914         <span class="keywordflow">goto</span> end;
+<a name="l00915"></a>00915     }
+<a name="l00916"></a>00916 
+<a name="l00917"></a>00917     <span class="keywordflow">if</span> (realpath(top_path, path) == NULL) {
+<a name="l00918"></a>00918         perror(<span class="stringliteral">"realpath"</span>);
+<a name="l00919"></a>00919         r = -6;
+<a name="l00920"></a>00920         <span class="keywordflow">goto</span> close_pipes;
+<a name="l00921"></a>00921     }
+<a name="l00922"></a>00922 
+<a name="l00923"></a>00923     lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 1;
+<a name="l00924"></a>00924     lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a> = 0;
+<a name="l00925"></a>00925     r = _check(&amp;pinfo, strlen(path), path);
+<a name="l00926"></a>00926     lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 0;
+<a name="l00927"></a>00927     lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a> = 0;
+<a name="l00928"></a>00928 
+<a name="l00929"></a>00929   close_pipes:
+<a name="l00930"></a>00930     <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(&amp;pinfo);
+<a name="l00931"></a>00931   end:
+<a name="l00932"></a>00932     <span class="keywordflow">return</span> r;
+<a name="l00933"></a>00933 }
+<a name="l00934"></a>00934 
+<a name="l00948"></a>00948 <span class="keywordtype">int</span>
+<a name="l00949"></a><a class="code" href="lightmediascanner__check_8c.html#a56ce530328493e110054aa1eabf66c2">00949</a> <a class="code" href="lightmediascanner_8h.html#bfd6888e606654c585e41aa946637432">lms_check_single_process</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path)
+<a name="l00950"></a>00950 {
+<a name="l00951"></a>00951     <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>];
+<a name="l00952"></a>00952     <span class="keyword">struct </span>sinfo sinfo;
+<a name="l00953"></a>00953     <span class="keywordtype">int</span> r;
+<a name="l00954"></a>00954 
+<a name="l00955"></a>00955     r = _lms_check_check_valid(lms, top_path);
+<a name="l00956"></a>00956     <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00957"></a>00957         <span class="keywordflow">return</span> r;
+<a name="l00958"></a>00958 
+<a name="l00959"></a>00959     sinfo.<a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a> = lms;
+<a name="l00960"></a>00960     sinfo.<a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a> = 0;
+<a name="l00961"></a>00961 
+<a name="l00962"></a>00962     <span class="keywordflow">if</span> (realpath(top_path, path) == NULL) {
+<a name="l00963"></a>00963         perror(<span class="stringliteral">"realpath"</span>);
+<a name="l00964"></a>00964         <span class="keywordflow">return</span> -6;
+<a name="l00965"></a>00965     }
+<a name="l00966"></a>00966 
+<a name="l00967"></a>00967     lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 1;
+<a name="l00968"></a>00968     lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a> = 0;
+<a name="l00969"></a>00969     r = _check_single_process(&amp;sinfo, strlen(path), path);
+<a name="l00970"></a>00970     lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 0;
+<a name="l00971"></a>00971     lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a> = 0;
+<a name="l00972"></a>00972 
+<a name="l00973"></a>00973     <span class="keywordflow">return</span> r;
+<a name="l00974"></a>00974 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index a2da85b..263c3b4 100644 (file)
@@ -4,21 +4,18 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_check.c File Reference</h1><code>#include &lt;sys/wait.h&gt;</code><br>
 <code>#include &lt;sys/stat.h&gt;</code><br>
 <code>#include &lt;unistd.h&gt;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&quot;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_check.c:<p><center><img src="lightmediascanner__check_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_check.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_check.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__check_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_check.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_check.c_map">
-<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="757,512,885,539"><area shape="rect" href="lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="267,639,440,665"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="257,816,449,843"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="500,765,668,792"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="719,639,924,665"></map>
+<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="869,239,1024,265"><area shape="rect" href="lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="1004,84,1215,111"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="1313,84,1548,111"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="1261,161,1461,188"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="1048,239,1301,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__check_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -48,6 +49,8 @@ Include dependency graph for lightmediascanner_check.c:<p><center><img src="ligh
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__check_8c.html#859492d896e816498edb471315efced1">lms_check</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, const char *top_path)</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__check_8c.html#a56ce530328493e110054aa1eabf66c2">lms_check_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>
+
 </table>
 <hr><h2>Define Documentation</h2>
 <a class="anchor" name="369266c24eacffb87046522897a570d5"></a><!-- doxytag: member="lightmediascanner_check.c::_GNU_SOURCE" ref="369266c24eacffb87046522897a570d5" args="" -->
@@ -65,11 +68,11 @@ Include dependency graph for lightmediascanner_check.c:<p><center><img src="ligh
 Copyright (C) 2007 by INdT<p>
 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>
 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>
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<p>
+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>
 <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>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l00025">25</a> of file <a class="el" href="lightmediascanner__check_8c-source.html">lightmediascanner_check.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l00025">25</a> of file <a class="el" href="lightmediascanner__check_8c-source.html">lightmediascanner_check.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f8084f435d209d810eb33deaa35fab5e"></a><!-- doxytag: member="lightmediascanner_check.c::COMM_FINFO_FLAG_OUTDATED" ref="f8084f435d209d810eb33deaa35fab5e" args="" -->
@@ -85,8 +88,8 @@ Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l00067">67</a> of file <a class="el" href="lightmediascanner__check_8c-source.html">lightmediascanner_check.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l00075">75</a> of file <a class="el" href="lightmediascanner__check_8c-source.html">lightmediascanner_check.c</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -109,7 +112,7 @@ Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -126,19 +129,66 @@ This will update media in the given directory or its children. If files are miss
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l00900">900</a> of file <a class="el" href="lightmediascanner__check_8c-source.html">lightmediascanner_check.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__private_8h-source.html#l00055">pinfo::common</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00088">lms::is_processing</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-source.html#l00042">PATH_SIZE</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00089">lms::stop_processing</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l00618">618</a> of file <a class="el" href="lightmediascanner__check_8c-source.html">lightmediascanner_check.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00071">lms::is_processing</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00054">pinfo::lms</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00566">lms_close_pipes()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00577">lms_create_pipes()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00042">PATH_SIZE</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph.png" border="0" usemap="#lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph.png" border="0" usemap="#lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph_map" alt=""></center>
 <map name="lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph_map">
-<area shape="rect" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed" title="lms_close_pipes" alt="" coords="136,5,245,32"><area shape="rect" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4" title="lms_create_pipes" alt="" coords="135,56,247,83"></map>
+<area shape="rect" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed" title="lms_close_pipes" alt="" coords="153,5,281,32"><area shape="rect" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4" title="lms_create_pipes" alt="" coords="148,56,287,83"></map>
+</div>
+
+</div>
+</div><p>
+<a class="anchor" name="a56ce530328493e110054aa1eabf66c2"></a><!-- doxytag: member="lightmediascanner_check.c::lms_check_single_process" ref="a56ce530328493e110054aa1eabf66c2" args="(lms_t *lms, const char *top_path)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lms_check_single_process           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lms</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>top_path</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Check consistency of given directory *without fork()-ing* into child process.<p>
+This will update media in the given directory or its children. If files are missing, they'll be marked as deleted (dtime is set), if they were marked as deleted and are now present, they are unmarked (dtime is unset). Note that if a <a class="el" href="structparser.html">parser</a> hangs in the check process, this call will also hang.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <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>
+    <tr><td valign="top"></td><td valign="top"><em>top_path</em>&nbsp;</td><td>top directory to scan.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner__check_8c-source.html#l00949">949</a> of file <a class="el" href="lightmediascanner__check_8c-source.html">lightmediascanner_check.c</a>.</p>
+
+<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#l00088">lms::is_processing</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00050">cinfo::lms</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00042">PATH_SIZE</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00089">lms::stop_processing</a>.</p>
 
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:54 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index d5a36c7..25a916c 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed" title="lms_close_pipes" alt="" coords="136,5,245,32">
-<area shape="rect" href="$lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4" title="lms_create_pipes" alt="" coords="135,56,247,83">
+<area shape="rect" href="$lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed" title="lms_close_pipes" alt="" coords="153,5,281,32">
+<area shape="rect" href="$lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4" title="lms_create_pipes" alt="" coords="148,56,287,83">
index 126a44b..444f4d4 100644 (file)
Binary files a/www/api/lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph.png and b/www/api/lightmediascanner__check_8c_859492d896e816498edb471315efced1_cgraph.png differ
index 49a4069..e429421 100644 (file)
@@ -1,5 +1,5 @@
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="757,512,885,539">
-<area shape="rect" href="$lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="267,639,440,665">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="257,816,449,843">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="500,765,668,792">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="719,639,924,665">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="869,239,1024,265">
+<area shape="rect" href="$lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="1004,84,1215,111">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="1313,84,1548,111">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="1261,161,1461,188">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="1048,239,1301,265">
index 1d92cb1..c55d4d8 100644 (file)
@@ -1 +1 @@
-6cd5c7de94121a998b8300cf1a0a053a
\ No newline at end of file
+1124d8add2c7ebf48f595d5ff4c2a1f3
\ No newline at end of file
index f09ad05..5ef13f9 100644 (file)
Binary files a/www/api/lightmediascanner__check_8c__incl.png and b/www/api/lightmediascanner__check_8c__incl.png differ
index c67d1b4..b2990db 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner_db.h</h1><a href="lightmediascanner__db_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_DB_H_</span>
 <a name="l00022"></a><a class="code" href="lightmediascanner__db_8h.html#5360af19a6df2e8b0d326344bb27e151">00022</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_DB_H_ 1</span>
 <a name="l00075"></a><a class="code" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">00075</a>         <span class="keyword">struct </span><a class="code" href="structlms__gps__info.html">lms_gps_info</a> <a class="code" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a>;
 <a name="l00076"></a>00076     };
 <a name="l00077"></a>00077 
-<a name="l00078"></a><a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">00078</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>lms_db_image lms_db_image_t;
+<a name="l00078"></a><a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">00078</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>lms_db_image <a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a>;
 <a name="l00079"></a>00079 
-<a name="l00080"></a>00080     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> lms_db_image_t *<a class="code" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lms_db_image_new</a>(sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00081"></a>00081     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lms_db_image_start</a>(lms_db_image_t *ldi) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00082"></a>00082     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lms_db_image_free</a>(lms_db_image_t *ldi) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00083"></a>00083     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#gbf78dd3b90caa31e8901369211501200">lms_db_image_add</a>(lms_db_image_t *ldi, <span class="keyword">struct</span> <a class="code" href="structlms__image__info.html">lms_image_info</a> *info) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00080"></a>00080     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *<a class="code" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lms_db_image_new</a>(sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00081"></a>00081     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lms_db_image_start</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00082"></a>00082     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lms_db_image_free</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00083"></a>00083     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#gbf78dd3b90caa31e8901369211501200">lms_db_image_add</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi, <span class="keyword">struct</span> <a class="code" href="structlms__image__info.html">lms_image_info</a> *info) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
 <a name="l00084"></a>00084 
 <a name="l00085"></a>00085     <span class="comment">/* Audio Records */</span>
 <a name="l00086"></a><a class="code" href="structlms__audio__info.html">00086</a>     <span class="keyword">struct </span><a class="code" href="structlms__audio__info.html">lms_audio_info</a> {
 <a name="l00094"></a><a class="code" href="structlms__audio__info.html#932e73ccd8ff946831930be65d1ba2d2">00094</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structlms__audio__info.html#932e73ccd8ff946831930be65d1ba2d2">rating</a>;
 <a name="l00095"></a>00095     };
 <a name="l00096"></a>00096 
-<a name="l00097"></a><a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">00097</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>lms_db_audio lms_db_audio_t;
+<a name="l00097"></a><a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">00097</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>lms_db_audio <a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a>;
 <a name="l00098"></a>00098 
-<a name="l00099"></a>00099     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> lms_db_audio_t *<a class="code" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lms_db_audio_new</a>(sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00100"></a>00100     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lms_db_audio_start</a>(lms_db_audio_t *lda) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00101"></a>00101     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lms_db_audio_free</a>(lms_db_audio_t *lda) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00102"></a>00102     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g9b83f734ec4905778dec5494f39b7397">lms_db_audio_add</a>(lms_db_audio_t *lda, <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00099"></a>00099     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *<a class="code" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lms_db_audio_new</a>(sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00100"></a>00100     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lms_db_audio_start</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00101"></a>00101     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lms_db_audio_free</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00102"></a>00102     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g9b83f734ec4905778dec5494f39b7397">lms_db_audio_add</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
 <a name="l00103"></a>00103 
 <a name="l00104"></a>00104     <span class="comment">/* Video Records */</span>
 <a name="l00105"></a><a class="code" href="structlms__video__info.html">00105</a>     <span class="keyword">struct </span><a class="code" href="structlms__video__info.html">lms_video_info</a> {
 <a name="l00108"></a><a class="code" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">00108</a>         <span class="keyword">struct </span><a class="code" href="structlms__string__size.html">lms_string_size</a> <a class="code" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">artist</a>;
 <a name="l00109"></a>00109     };
 <a name="l00110"></a>00110 
-<a name="l00111"></a><a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">00111</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>lms_db_video lms_db_video_t;
+<a name="l00111"></a><a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">00111</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>lms_db_video <a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a>;
 <a name="l00112"></a>00112 
-<a name="l00113"></a>00113     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> lms_db_video_t *<a class="code" href="group__LMS__DB.html#ga206178e1f883c1bf7a3281f982109b2">lms_db_video_new</a>(sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00114"></a>00114     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">lms_db_video_start</a>(lms_db_video_t *ldv) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00115"></a>00115     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">lms_db_video_free</a>(lms_db_video_t *ldv) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00116"></a>00116     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#gb07d1e7fe962486b6e9d00581e8aac19">lms_db_video_add</a>(lms_db_video_t *ldv, <span class="keyword">struct</span> <a class="code" href="structlms__video__info.html">lms_video_info</a> *info) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00113"></a>00113     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *<a class="code" href="group__LMS__DB.html#ga206178e1f883c1bf7a3281f982109b2">lms_db_video_new</a>(sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00114"></a>00114     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">lms_db_video_start</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00115"></a>00115     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">lms_db_video_free</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00116"></a>00116     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#gb07d1e7fe962486b6e9d00581e8aac19">lms_db_video_add</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv, <span class="keyword">struct</span> <a class="code" href="structlms__video__info.html">lms_video_info</a> *info) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
 <a name="l00117"></a>00117 
 <a name="l00118"></a>00118     <span class="comment">/* Playlist Records */</span>
 <a name="l00119"></a><a class="code" href="structlms__playlist__info.html">00119</a>     <span class="keyword">struct </span><a class="code" href="structlms__playlist__info.html">lms_playlist_info</a> {
 <a name="l00122"></a><a class="code" href="structlms__playlist__info.html#81cc52f5b6ce04cd64cf3884cb774663">00122</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms__playlist__info.html#81cc52f5b6ce04cd64cf3884cb774663">n_entries</a>;
 <a name="l00123"></a>00123     };
 <a name="l00124"></a>00124 
-<a name="l00125"></a><a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">00125</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>lms_db_playlist lms_db_playlist_t;
+<a name="l00125"></a><a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">00125</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>lms_db_playlist <a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a>;
 <a name="l00126"></a>00126 
-<a name="l00127"></a>00127     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> lms_db_playlist_t *<a class="code" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lms_db_playlist_new</a>(sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00128"></a>00128     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lms_db_playlist_start</a>(lms_db_playlist_t *ldp) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00129"></a>00129     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lms_db_playlist_free</a>(lms_db_playlist_t *ldp) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00130"></a>00130     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g8864e532609191f07737c1d23c1bc65f">lms_db_playlist_add</a>(lms_db_playlist_t *ldp, <span class="keyword">struct</span> <a class="code" href="structlms__playlist__info.html">lms_playlist_info</a> *info) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00127"></a>00127     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *<a class="code" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lms_db_playlist_new</a>(sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00128"></a>00128     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lms_db_playlist_start</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00129"></a>00129     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lms_db_playlist_free</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00130"></a>00130     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="group__LMS__DB.html#g8864e532609191f07737c1d23c1bc65f">lms_db_playlist_add</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp, <span class="keyword">struct</span> <a class="code" href="structlms__playlist__info.html">lms_playlist_info</a> *info) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
 <a name="l00131"></a>00131 
 <a name="l00136"></a>00136 <span class="preprocessor">#ifdef __cplusplus</span>
 <a name="l00137"></a>00137 <span class="preprocessor"></span>}
 <a name="l00138"></a>00138 <span class="preprocessor">#endif</span>
 <a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_DB_H_ */</span>
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 7bfe1c9..707c2d2 100644 (file)
@@ -4,33 +4,38 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_db.h File Reference</h1><code>#include &lt;<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>&gt;</code><br>
 <code>#include &lt;<a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_db.h:<p><center><img src="lightmediascanner__db_8h__incl.png" border="0" usemap="#src/lib/lightmediascanner_db.h_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_db.h:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db_8h__incl.png" border="0" usemap="#src/lib/lightmediascanner_db.h_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db.h_map">
-<area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="241,81,409,108"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="247,132,404,159"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="499,5,627,32"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="460,56,665,83"></map>
+<area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="305,84,505,111"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="529,84,721,111"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="5,162,160,188"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="184,162,437,188"></map>
+</div>
 
 <p>
-This graph shows which files directly or indirectly include this file:<p><center><img src="lightmediascanner__db_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_db.hdep_map" alt=""></center>
+<div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_db.hdep_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db.hdep_map">
-<area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="245,5,467,32"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="244,56,468,83"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="241,107,471,133"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="245,157,467,184"></map>
+<area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="5,84,269,110"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="293,84,563,110"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="587,84,861,110"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="885,84,1149,110"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__db_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -54,13 +59,13 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(...)</td></tr>
 
 <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_db_image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_db_image&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_db_audio&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_db_audio&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_db_video&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_db_video&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef lms_db_playlist&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct lms_db_playlist&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API <a class="el" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lms_db_image_new</a> (sqlite3 *db) GNUC_NON_NULL(1)</td></tr>
@@ -112,11 +117,11 @@ This graph shows which files directly or indirectly include this file:<p><center
 Copyright (C) 2007 by INdT<p>
 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>
 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>
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<p>
+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>
 <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>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="d8ce4efaa307683d3d763b37b4711c53"></a><!-- doxytag: member="lightmediascanner_db.h::API" ref="d8ce4efaa307683d3d763b37b4711c53" args="" -->
@@ -132,8 +137,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00040">40</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00040">40</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="6fe68cac0abf3e2ca61141920414e93a"></a><!-- doxytag: member="lightmediascanner_db.h::GNUC_NON_NULL" ref="6fe68cac0abf3e2ca61141920414e93a" args="(...)" -->
@@ -146,7 +151,7 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
           <td class="paramtype"> <em>...</em>&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -154,12 +159,13 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00041">41</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00041">41</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:54 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 519c048..9e8230d 100644 (file)
@@ -1,4 +1,4 @@
-<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="245,5,467,32">
-<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="244,56,468,83">
-<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="241,107,471,133">
-<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="245,157,467,184">
+<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="5,84,269,110">
+<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="293,84,563,110">
+<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="587,84,861,110">
+<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="885,84,1149,110">
index 753a782..ca2b29e 100644 (file)
@@ -1 +1 @@
-754b6d086ad7fe3e71ecb28b280bf3a8
\ No newline at end of file
+f6604695541c988a48f21af4e4a879f3
\ No newline at end of file
index c2cedd2..ce795a2 100644 (file)
Binary files a/www/api/lightmediascanner__db_8h__dep__incl.png and b/www/api/lightmediascanner__db_8h__dep__incl.png differ
index 96a24ef..6689386 100644 (file)
@@ -1,4 +1,4 @@
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="241,81,409,108">
-<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="247,132,404,159">
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="499,5,627,32">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="460,56,665,83">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="305,84,505,111">
+<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="529,84,721,111">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="5,162,160,188">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="184,162,437,188">
index b359039..965df0a 100644 (file)
@@ -1 +1 @@
-86eae6935af25b0833e6ae400acdd942
\ No newline at end of file
+de5c68f43f1cd08d223ac9f37db48282
\ No newline at end of file
index 55b1e59..011fd0f 100644 (file)
Binary files a/www/api/lightmediascanner__db_8h__incl.png and b/www/api/lightmediascanner__db_8h__incl.png differ
index a429d81..7fe0ded 100644 (file)
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<h1>src/lib/lightmediascanner_db_audio.c</h1><a href="lightmediascanner__db__audio_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a>&gt;</span>
-<a name="l00002"></a>00002 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
-<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
-<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
-<a name="l00005"></a>00005 
-<a name="l00006"></a>00006 <span class="keyword">struct </span>lms_db_audio {
-<a name="l00007"></a>00007     sqlite3 *db;
-<a name="l00008"></a>00008     sqlite3_stmt *insert_audio;
-<a name="l00009"></a>00009     sqlite3_stmt *insert_artist;
-<a name="l00010"></a>00010     sqlite3_stmt *insert_album;
-<a name="l00011"></a>00011     sqlite3_stmt *insert_genre;
-<a name="l00012"></a>00012     sqlite3_stmt *get_artist;
-<a name="l00013"></a>00013     sqlite3_stmt *get_album;
-<a name="l00014"></a>00014     sqlite3_stmt *get_genre;
-<a name="l00015"></a>00015     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _references;
-<a name="l00016"></a>00016     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _is_started:1;
-<a name="l00017"></a>00017 };
-<a name="l00018"></a>00018 
-<a name="l00019"></a>00019 <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structlms__db__cache.html">lms_db_cache</a> _cache = {0, NULL};
-<a name="l00020"></a>00020 
-<a name="l00021"></a>00021 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00022"></a>00022 _db_create(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql)
-<a name="l00023"></a>00023 {
-<a name="l00024"></a>00024     <span class="keywordtype">char</span> *err;
-<a name="l00025"></a>00025     <span class="keywordtype">int</span> r;
-<a name="l00026"></a>00026 
-<a name="l00027"></a>00027     r = sqlite3_exec(db, sql, NULL, NULL, &amp;err);
-<a name="l00028"></a>00028     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00029"></a>00029         fprintf(stderr, <span class="stringliteral">"ERROR: could not create \"%s\": %s\n"</span>, name, err);
-<a name="l00030"></a>00030         sqlite3_free(err);
-<a name="l00031"></a>00031         <span class="keywordflow">return</span> -1;
-<a name="l00032"></a>00032     }
-<a name="l00033"></a>00033 
-<a name="l00034"></a>00034     <span class="keywordflow">return</span> 0;
-<a name="l00035"></a>00035 }
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00038"></a>00038 _db_table_updater_audios_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
-<a name="l00039"></a>00039     <span class="keywordtype">int</span> ret;
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>src/lib/lightmediascanner_db_audio.c</h1><a href="lightmediascanner__db__audio_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="keyword">struct </span>lms_db_audio {
+<a name="l00027"></a>00027     sqlite3 *db;
+<a name="l00028"></a>00028     sqlite3_stmt *insert_audio;
+<a name="l00029"></a>00029     sqlite3_stmt *insert_artist;
+<a name="l00030"></a>00030     sqlite3_stmt *insert_album;
+<a name="l00031"></a>00031     sqlite3_stmt *insert_genre;
+<a name="l00032"></a>00032     sqlite3_stmt *get_artist;
+<a name="l00033"></a>00033     sqlite3_stmt *get_album;
+<a name="l00034"></a>00034     sqlite3_stmt *get_genre;
+<a name="l00035"></a>00035     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _references;
+<a name="l00036"></a>00036     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _is_started:1;
+<a name="l00037"></a>00037 };
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structlms__db__cache.html">lms_db_cache</a> _cache = {0, NULL};
 <a name="l00040"></a>00040 
-<a name="l00041"></a>00041     ret = _db_create(db, <span class="stringliteral">"audios"</span>,
-<a name="l00042"></a>00042         <span class="stringliteral">"CREATE TABLE IF NOT EXISTS audios ("</span>
-<a name="l00043"></a>00043         <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
-<a name="l00044"></a>00044         <span class="stringliteral">"title TEXT, "</span>
-<a name="l00045"></a>00045         <span class="stringliteral">"album_id INTEGER, "</span>
-<a name="l00046"></a>00046         <span class="stringliteral">"genre_id INTEGER, "</span>
-<a name="l00047"></a>00047         <span class="stringliteral">"trackno INTEGER, "</span>
-<a name="l00048"></a>00048         <span class="stringliteral">"rating INTEGER, "</span>
-<a name="l00049"></a>00049         <span class="stringliteral">"playcnt INTEGER"</span>
-<a name="l00050"></a>00050         <span class="stringliteral">")"</span>);
-<a name="l00051"></a>00051     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00052"></a>00052         <span class="keywordflow">goto</span> done;
+<a name="l00041"></a>00041 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00042"></a>00042 _db_create(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql)
+<a name="l00043"></a>00043 {
+<a name="l00044"></a>00044     <span class="keywordtype">char</span> *err;
+<a name="l00045"></a>00045     <span class="keywordtype">int</span> r;
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047     r = sqlite3_exec(db, sql, NULL, NULL, &amp;err);
+<a name="l00048"></a>00048     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00049"></a>00049         fprintf(stderr, <span class="stringliteral">"ERROR: could not create \"%s\": %s\n"</span>, name, err);
+<a name="l00050"></a>00050         sqlite3_free(err);
+<a name="l00051"></a>00051         <span class="keywordflow">return</span> -1;
+<a name="l00052"></a>00052     }
 <a name="l00053"></a>00053 
-<a name="l00054"></a>00054     ret = _db_create(db, <span class="stringliteral">"audios_title_idx"</span>,
-<a name="l00055"></a>00055         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00056"></a>00056         <span class="stringliteral">"audios_title_idx ON audios (title)"</span>);
-<a name="l00057"></a>00057     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00058"></a>00058         <span class="keywordflow">goto</span> done;
-<a name="l00059"></a>00059 
-<a name="l00060"></a>00060     ret = _db_create(db, <span class="stringliteral">"audios_album_idx"</span>,
-<a name="l00061"></a>00061         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00062"></a>00062         <span class="stringliteral">"audios_album_idx ON audios (album_id)"</span>);
-<a name="l00063"></a>00063     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00064"></a>00064         <span class="keywordflow">goto</span> done;
-<a name="l00065"></a>00065 
-<a name="l00066"></a>00066     ret = _db_create(db, <span class="stringliteral">"audios_genre_idx"</span>,
-<a name="l00067"></a>00067         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00068"></a>00068         <span class="stringliteral">"audios_genre_idx ON audios (genre_id)"</span>);
-<a name="l00069"></a>00069     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00070"></a>00070         <span class="keywordflow">goto</span> done;
-<a name="l00071"></a>00071 
-<a name="l00072"></a>00072     ret = _db_create(db, <span class="stringliteral">"audios_trackno_idx"</span>,
-<a name="l00073"></a>00073         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00074"></a>00074         <span class="stringliteral">"audios_trackno_idx ON audios (trackno)"</span>);
-<a name="l00075"></a>00075     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00076"></a>00076         <span class="keywordflow">goto</span> done;
-<a name="l00077"></a>00077 
-<a name="l00078"></a>00078     ret = _db_create(db, <span class="stringliteral">"audios_playcnt_idx"</span>,
-<a name="l00079"></a>00079         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00080"></a>00080         <span class="stringliteral">"audios_playcnt_idx ON audios (playcnt)"</span>);
-<a name="l00081"></a>00081     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00082"></a>00082         <span class="keywordflow">goto</span> done;
-<a name="l00083"></a>00083 
-<a name="l00084"></a>00084     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00085"></a>00085         <span class="stringliteral">"delete_audios_on_files_deleted "</span>
-<a name="l00086"></a>00086         <span class="stringliteral">"DELETE ON files FOR EACH ROW BEGIN"</span>
-<a name="l00087"></a>00087         <span class="stringliteral">"   DELETE FROM audios WHERE id = OLD.id; END;"</span>);
-<a name="l00088"></a>00088     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00089"></a>00089         <span class="keywordflow">goto</span> done;
-<a name="l00090"></a>00090 
-<a name="l00091"></a>00091     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00092"></a>00092         <span class="stringliteral">"delete_files_on_audios_deleted "</span>
-<a name="l00093"></a>00093         <span class="stringliteral">"DELETE ON audios FOR EACH ROW BEGIN"</span>
-<a name="l00094"></a>00094         <span class="stringliteral">" DELETE FROM files WHERE id = OLD.id; END;"</span>);
-<a name="l00095"></a>00095 
-<a name="l00096"></a>00096   done:
-<a name="l00097"></a>00097     <span class="keywordflow">return</span> ret;
-<a name="l00098"></a>00098 }
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> _db_table_updater_audios[] = {
-<a name="l00101"></a>00101     _db_table_updater_audios_0
-<a name="l00102"></a>00102 };
-<a name="l00103"></a>00103 
-<a name="l00104"></a>00104 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00105"></a>00105 _db_table_updater_audio_artists_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
-<a name="l00106"></a>00106     <span class="keywordtype">int</span> ret;
-<a name="l00107"></a>00107 
-<a name="l00108"></a>00108     ret = _db_create(db, <span class="stringliteral">"audio_artists"</span>,
-<a name="l00109"></a>00109         <span class="stringliteral">"CREATE TABLE IF NOT EXISTS audio_artists ("</span>
-<a name="l00110"></a>00110         <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
-<a name="l00111"></a>00111         <span class="stringliteral">"name TEXT UNIQUE"</span>
-<a name="l00112"></a>00112         <span class="stringliteral">")"</span>);
-<a name="l00113"></a>00113     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00114"></a>00114         <span class="keywordflow">goto</span> done;
-<a name="l00115"></a>00115 
-<a name="l00116"></a>00116     ret = _db_create(db, <span class="stringliteral">"audio_artists_name_idx"</span>,
-<a name="l00117"></a>00117         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00118"></a>00118         <span class="stringliteral">"audio_artists_name_idx ON audio_artists (name)"</span>);
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120   done:
-<a name="l00121"></a>00121     <span class="keywordflow">return</span> ret;
-<a name="l00122"></a>00122 }
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> _db_table_updater_audio_artists[] = {
-<a name="l00125"></a>00125     _db_table_updater_audio_artists_0
-<a name="l00126"></a>00126 };
-<a name="l00127"></a>00127 
-<a name="l00128"></a>00128 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00129"></a>00129 _db_table_updater_audio_albums_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
-<a name="l00130"></a>00130     <span class="keywordtype">int</span> ret;
-<a name="l00131"></a>00131 
-<a name="l00132"></a>00132     ret = _db_create(db, <span class="stringliteral">"audio_albums"</span>,
-<a name="l00133"></a>00133         <span class="stringliteral">"CREATE TABLE IF NOT EXISTS audio_albums ("</span>
-<a name="l00134"></a>00134         <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
-<a name="l00135"></a>00135         <span class="stringliteral">"artist_id INTEGER, "</span>
-<a name="l00136"></a>00136         <span class="stringliteral">"name TEXT"</span>
-<a name="l00137"></a>00137         <span class="stringliteral">")"</span>);
-<a name="l00138"></a>00138     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00139"></a>00139         <span class="keywordflow">goto</span> done;
-<a name="l00140"></a>00140 
-<a name="l00141"></a>00141     ret = _db_create(db, <span class="stringliteral">"audio_albums_name_idx"</span>,
-<a name="l00142"></a>00142         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00143"></a>00143         <span class="stringliteral">"audio_albums_name_idx ON audio_albums (name)"</span>);
-<a name="l00144"></a>00144     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00145"></a>00145         <span class="keywordflow">goto</span> done;
-<a name="l00146"></a>00146 
-<a name="l00147"></a>00147     ret = _db_create(db, <span class="stringliteral">"audio_albums_artist_idx"</span>,
-<a name="l00148"></a>00148         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00149"></a>00149         <span class="stringliteral">"audio_albums_artist_idx ON audio_albums (artist_id)"</span>);
-<a name="l00150"></a>00150     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00151"></a>00151         <span class="keywordflow">goto</span> done;
-<a name="l00152"></a>00152 
-<a name="l00153"></a>00153     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00154"></a>00154         <span class="stringliteral">"delete_audios_on_albums_deleted "</span>
-<a name="l00155"></a>00155         <span class="stringliteral">"DELETE ON audio_albums FOR EACH ROW BEGIN"</span>
-<a name="l00156"></a>00156         <span class="stringliteral">" DELETE FROM audios WHERE album_id = OLD.id; END;"</span>);
-<a name="l00157"></a>00157     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00158"></a>00158         <span class="keywordflow">goto</span> done;
-<a name="l00159"></a>00159 
-<a name="l00160"></a>00160     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00161"></a>00161         <span class="stringliteral">"delete_audio_albums_on_artists_deleted "</span>
-<a name="l00162"></a>00162         <span class="stringliteral">"DELETE ON audio_artists FOR EACH ROW BEGIN"</span>
-<a name="l00163"></a>00163         <span class="stringliteral">" DELETE FROM audio_albums WHERE artist_id = OLD.id; END;"</span>);
-<a name="l00164"></a>00164 
-<a name="l00165"></a>00165   done:
-<a name="l00166"></a>00166     <span class="keywordflow">return</span> ret;
-<a name="l00167"></a>00167 }
-<a name="l00168"></a>00168 
-<a name="l00169"></a>00169 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> _db_table_updater_audio_albums[] = {
-<a name="l00170"></a>00170     _db_table_updater_audio_albums_0
-<a name="l00171"></a>00171 };
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00174"></a>00174 _db_table_updater_audio_genres_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
-<a name="l00175"></a>00175     <span class="keywordtype">int</span> ret;
-<a name="l00176"></a>00176 
-<a name="l00177"></a>00177     ret = _db_create(db, <span class="stringliteral">"audio_genres"</span>,
-<a name="l00178"></a>00178         <span class="stringliteral">"CREATE TABLE IF NOT EXISTS audio_genres ("</span>
-<a name="l00179"></a>00179         <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
-<a name="l00180"></a>00180         <span class="stringliteral">"name TEXT UNIQUE"</span>
-<a name="l00181"></a>00181         <span class="stringliteral">")"</span>);
-<a name="l00182"></a>00182     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00183"></a>00183         <span class="keywordflow">goto</span> done;
-<a name="l00184"></a>00184 
-<a name="l00185"></a>00185     ret = _db_create(db, <span class="stringliteral">"audio_genres_name_idx"</span>,
-<a name="l00186"></a>00186         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
-<a name="l00187"></a>00187         <span class="stringliteral">"audio_albums_name_idx ON audio_albums (name)"</span>);
+<a name="l00054"></a>00054     <span class="keywordflow">return</span> 0;
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00058"></a>00058 _db_table_updater_audios_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060     <span class="keywordflow">return</span> 0;
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00064"></a>00064 _db_table_updater_audios_1(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run)
+<a name="l00065"></a>00065 {
+<a name="l00066"></a>00066     <span class="keywordtype">char</span> *err;
+<a name="l00067"></a>00067     <span class="keywordtype">int</span> ret;
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069     ret = sqlite3_exec(db, <span class="stringliteral">"DELETE FROM files"</span>, NULL, NULL, &amp;err);
+<a name="l00070"></a>00070     <span class="keywordflow">if</span> (ret != SQLITE_OK) {
+<a name="l00071"></a>00071         fprintf(stderr, <span class="stringliteral">"ERROR: could not delete \"files\": %s\n"</span>, err);
+<a name="l00072"></a>00072         sqlite3_free(err);
+<a name="l00073"></a>00073         <span class="keywordflow">goto</span> done;
+<a name="l00074"></a>00074     }
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076     ret = sqlite3_exec(db, <span class="stringliteral">"DROP TABLE IF EXISTS audios"</span>, NULL, NULL, &amp;err);
+<a name="l00077"></a>00077     <span class="keywordflow">if</span> (ret != SQLITE_OK) {
+<a name="l00078"></a>00078         fprintf(stderr, <span class="stringliteral">"ERROR: could not drop \"audios\": %s\n"</span>, err);
+<a name="l00079"></a>00079         sqlite3_free(err);
+<a name="l00080"></a>00080         <span class="keywordflow">goto</span> done;
+<a name="l00081"></a>00081     }
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083     ret = _db_create(db, <span class="stringliteral">"audios"</span>,
+<a name="l00084"></a>00084         <span class="stringliteral">"CREATE TABLE IF NOT EXISTS audios ("</span>
+<a name="l00085"></a>00085         <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
+<a name="l00086"></a>00086         <span class="stringliteral">"title TEXT, "</span>
+<a name="l00087"></a>00087         <span class="stringliteral">"album_id INTEGER, "</span>
+<a name="l00088"></a>00088         <span class="stringliteral">"artist_id INTEGER, "</span>
+<a name="l00089"></a>00089         <span class="stringliteral">"genre_id INTEGER, "</span>
+<a name="l00090"></a>00090         <span class="stringliteral">"trackno INTEGER, "</span>
+<a name="l00091"></a>00091         <span class="stringliteral">"rating INTEGER, "</span>
+<a name="l00092"></a>00092         <span class="stringliteral">"playcnt INTEGER"</span>
+<a name="l00093"></a>00093         <span class="stringliteral">")"</span>);
+<a name="l00094"></a>00094     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00095"></a>00095         <span class="keywordflow">goto</span> done;
+<a name="l00096"></a>00096 
+<a name="l00097"></a>00097     ret = _db_create(db, <span class="stringliteral">"audios_title_idx"</span>,
+<a name="l00098"></a>00098         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00099"></a>00099         <span class="stringliteral">"audios_title_idx ON audios (title)"</span>);
+<a name="l00100"></a>00100     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00101"></a>00101         <span class="keywordflow">goto</span> done;
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103     ret = _db_create(db, <span class="stringliteral">"audios_album_idx"</span>,
+<a name="l00104"></a>00104         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00105"></a>00105         <span class="stringliteral">"audios_album_idx ON audios (album_id)"</span>);
+<a name="l00106"></a>00106     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00107"></a>00107         <span class="keywordflow">goto</span> done;
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109     ret = _db_create(db, <span class="stringliteral">"audios_artist_idx"</span>,
+<a name="l00110"></a>00110         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00111"></a>00111         <span class="stringliteral">"audios_artist_idx ON audios (artist_id)"</span>);
+<a name="l00112"></a>00112     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00113"></a>00113         <span class="keywordflow">goto</span> done;
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115     ret = _db_create(db, <span class="stringliteral">"audios_genre_idx"</span>,
+<a name="l00116"></a>00116         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00117"></a>00117         <span class="stringliteral">"audios_genre_idx ON audios (genre_id)"</span>);
+<a name="l00118"></a>00118     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00119"></a>00119         <span class="keywordflow">goto</span> done;
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121     ret = _db_create(db, <span class="stringliteral">"audios_trackno_idx"</span>,
+<a name="l00122"></a>00122         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00123"></a>00123         <span class="stringliteral">"audios_trackno_idx ON audios (trackno)"</span>);
+<a name="l00124"></a>00124     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00125"></a>00125         <span class="keywordflow">goto</span> done;
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127     ret = _db_create(db, <span class="stringliteral">"audios_playcnt_idx"</span>,
+<a name="l00128"></a>00128         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00129"></a>00129         <span class="stringliteral">"audios_playcnt_idx ON audios (playcnt)"</span>);
+<a name="l00130"></a>00130     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00131"></a>00131         <span class="keywordflow">goto</span> done;
+<a name="l00132"></a>00132 
+<a name="l00133"></a>00133     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00134"></a>00134         <span class="stringliteral">"delete_audios_on_files_deleted "</span>
+<a name="l00135"></a>00135         <span class="stringliteral">"DELETE ON files FOR EACH ROW BEGIN"</span>
+<a name="l00136"></a>00136         <span class="stringliteral">"   DELETE FROM audios WHERE id = OLD.id; END;"</span>);
+<a name="l00137"></a>00137     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00138"></a>00138         <span class="keywordflow">goto</span> done;
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00141"></a>00141         <span class="stringliteral">"delete_files_on_audios_deleted "</span>
+<a name="l00142"></a>00142         <span class="stringliteral">"DELETE ON audios FOR EACH ROW BEGIN"</span>
+<a name="l00143"></a>00143         <span class="stringliteral">" DELETE FROM files WHERE id = OLD.id; END;"</span>);
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145   done:
+<a name="l00146"></a>00146     <span class="keywordflow">return</span> ret;
+<a name="l00147"></a>00147 }
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> _db_table_updater_audios[] = {
+<a name="l00150"></a>00150     _db_table_updater_audios_0,
+<a name="l00151"></a>00151     _db_table_updater_audios_1
+<a name="l00152"></a>00152 };
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00155"></a>00155 _db_table_updater_audio_artists_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
+<a name="l00156"></a>00156     <span class="keywordtype">int</span> ret;
+<a name="l00157"></a>00157 
+<a name="l00158"></a>00158     ret = _db_create(db, <span class="stringliteral">"audio_artists"</span>,
+<a name="l00159"></a>00159         <span class="stringliteral">"CREATE TABLE IF NOT EXISTS audio_artists ("</span>
+<a name="l00160"></a>00160         <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
+<a name="l00161"></a>00161         <span class="stringliteral">"name TEXT UNIQUE"</span>
+<a name="l00162"></a>00162         <span class="stringliteral">")"</span>);
+<a name="l00163"></a>00163     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00164"></a>00164         <span class="keywordflow">goto</span> done;
+<a name="l00165"></a>00165 
+<a name="l00166"></a>00166     ret = _db_create(db, <span class="stringliteral">"audio_artists_name_idx"</span>,
+<a name="l00167"></a>00167         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00168"></a>00168         <span class="stringliteral">"audio_artists_name_idx ON audio_artists (name)"</span>);
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170   done:
+<a name="l00171"></a>00171     <span class="keywordflow">return</span> ret;
+<a name="l00172"></a>00172 }
+<a name="l00173"></a>00173 
+<a name="l00174"></a>00174 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> _db_table_updater_audio_artists[] = {
+<a name="l00175"></a>00175     _db_table_updater_audio_artists_0
+<a name="l00176"></a>00176 };
+<a name="l00177"></a>00177 
+<a name="l00178"></a>00178 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00179"></a>00179 _db_table_updater_audio_albums_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
+<a name="l00180"></a>00180     <span class="keywordtype">int</span> ret;
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182     ret = _db_create(db, <span class="stringliteral">"audio_albums"</span>,
+<a name="l00183"></a>00183         <span class="stringliteral">"CREATE TABLE IF NOT EXISTS audio_albums ("</span>
+<a name="l00184"></a>00184         <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
+<a name="l00185"></a>00185         <span class="stringliteral">"artist_id INTEGER, "</span>
+<a name="l00186"></a>00186         <span class="stringliteral">"name TEXT"</span>
+<a name="l00187"></a>00187         <span class="stringliteral">")"</span>);
 <a name="l00188"></a>00188     <span class="keywordflow">if</span> (ret != 0)
 <a name="l00189"></a>00189         <span class="keywordflow">goto</span> done;
 <a name="l00190"></a>00190 
-<a name="l00191"></a>00191     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00192"></a>00192         <span class="stringliteral">"delete_audios_on_genres_deleted "</span>
-<a name="l00193"></a>00193         <span class="stringliteral">"DELETE ON audio_genres FOR EACH ROW BEGIN"</span>
-<a name="l00194"></a>00194         <span class="stringliteral">" DELETE FROM audios WHERE genre_id = OLD.id; END;"</span>);
-<a name="l00195"></a>00195 
-<a name="l00196"></a>00196   done:
-<a name="l00197"></a>00197     <span class="keywordflow">return</span> ret;
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199 
-<a name="l00200"></a>00200 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> _db_table_updater_audio_genres[] = {
-<a name="l00201"></a>00201     _db_table_updater_audio_genres_0
-<a name="l00202"></a>00202 };
-<a name="l00203"></a>00203 
-<a name="l00204"></a><a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">00204</a> <span class="preprocessor">#define _DB_T_UPDATE(db, name, array)                                   \</span>
-<a name="l00205"></a>00205 <span class="preprocessor">    lms_db_table_update_if_required(db, name, LMS_ARRAY_SIZE(array), array)</span>
-<a name="l00206"></a>00206 <span class="preprocessor"></span>
-<a name="l00207"></a>00207 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00208"></a>00208 _db_create_tables_if_required(sqlite3 *db)
-<a name="l00209"></a>00209 {
-<a name="l00210"></a>00210     <span class="keywordtype">int</span> ret;
-<a name="l00211"></a>00211 
-<a name="l00212"></a>00212     ret = <a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">_DB_T_UPDATE</a>(db, <span class="stringliteral">"audios"</span>, _db_table_updater_audios);
-<a name="l00213"></a>00213     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00214"></a>00214         <span class="keywordflow">goto</span> done;
-<a name="l00215"></a>00215 
-<a name="l00216"></a>00216     ret = <a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">_DB_T_UPDATE</a>(db, <span class="stringliteral">"audio_artists"</span>, _db_table_updater_audio_artists);
-<a name="l00217"></a>00217     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00218"></a>00218         <span class="keywordflow">goto</span> done;
-<a name="l00219"></a>00219 
-<a name="l00220"></a>00220     ret = <a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">_DB_T_UPDATE</a>(db, <span class="stringliteral">"audio_albums"</span>, _db_table_updater_audio_albums);
-<a name="l00221"></a>00221     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00222"></a>00222         <span class="keywordflow">goto</span> done;
-<a name="l00223"></a>00223 
-<a name="l00224"></a>00224     ret = <a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">_DB_T_UPDATE</a>(db, <span class="stringliteral">"audio_genres"</span>, _db_table_updater_audio_genres);
-<a name="l00225"></a>00225 
-<a name="l00226"></a>00226   done:
-<a name="l00227"></a>00227     <span class="keywordflow">return</span> ret;
-<a name="l00228"></a>00228 }
-<a name="l00229"></a>00229 
-<a name="l00230"></a>00230 <span class="preprocessor">#undef _DB_T_UPDATE</span>
-<a name="l00231"></a>00231 <span class="preprocessor"></span>
-<a name="l00246"></a>00246 <a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *
-<a name="l00247"></a><a class="code" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">00247</a> <a class="code" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lms_db_audio_new</a>(sqlite3 *db)
-<a name="l00248"></a>00248 {
-<a name="l00249"></a>00249     <a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda;
-<a name="l00250"></a>00250     <span class="keywordtype">void</span> *p;
-<a name="l00251"></a>00251 
-<a name="l00252"></a>00252     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(&amp;_cache, db, &amp;p) == 0) {
-<a name="l00253"></a>00253         lda = p;
-<a name="l00254"></a>00254         lda-&gt;_references++;
-<a name="l00255"></a>00255         <span class="keywordflow">return</span> lda;
-<a name="l00256"></a>00256     }
-<a name="l00257"></a>00257 
-<a name="l00258"></a>00258     <span class="keywordflow">if</span> (!db)
-<a name="l00259"></a>00259         <span class="keywordflow">return</span> NULL;
-<a name="l00260"></a>00260 
-<a name="l00261"></a>00261     <span class="keywordflow">if</span> (_db_create_tables_if_required(db) != 0) {
-<a name="l00262"></a>00262         fprintf(stderr, <span class="stringliteral">"ERROR: could not create tables.\n"</span>);
-<a name="l00263"></a>00263         <span class="keywordflow">return</span> NULL;
-<a name="l00264"></a>00264     }
+<a name="l00191"></a>00191     ret = _db_create(db, <span class="stringliteral">"audio_albums_name_idx"</span>,
+<a name="l00192"></a>00192         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00193"></a>00193         <span class="stringliteral">"audio_albums_name_idx ON audio_albums (name)"</span>);
+<a name="l00194"></a>00194     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00195"></a>00195         <span class="keywordflow">goto</span> done;
+<a name="l00196"></a>00196 
+<a name="l00197"></a>00197     ret = _db_create(db, <span class="stringliteral">"audio_albums_artist_idx"</span>,
+<a name="l00198"></a>00198         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00199"></a>00199         <span class="stringliteral">"audio_albums_artist_idx ON audio_albums (artist_id)"</span>);
+<a name="l00200"></a>00200     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00201"></a>00201         <span class="keywordflow">goto</span> done;
+<a name="l00202"></a>00202 
+<a name="l00203"></a>00203     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00204"></a>00204         <span class="stringliteral">"delete_audios_on_albums_deleted "</span>
+<a name="l00205"></a>00205         <span class="stringliteral">"DELETE ON audio_albums FOR EACH ROW BEGIN"</span>
+<a name="l00206"></a>00206         <span class="stringliteral">" DELETE FROM audios WHERE album_id = OLD.id; END;"</span>);
+<a name="l00207"></a>00207     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00208"></a>00208         <span class="keywordflow">goto</span> done;
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00211"></a>00211         <span class="stringliteral">"delete_audio_albums_on_artists_deleted "</span>
+<a name="l00212"></a>00212         <span class="stringliteral">"DELETE ON audio_artists FOR EACH ROW BEGIN"</span>
+<a name="l00213"></a>00213         <span class="stringliteral">" DELETE FROM audio_albums WHERE artist_id = OLD.id; END;"</span>);
+<a name="l00214"></a>00214 
+<a name="l00215"></a>00215   done:
+<a name="l00216"></a>00216     <span class="keywordflow">return</span> ret;
+<a name="l00217"></a>00217 }
+<a name="l00218"></a>00218 
+<a name="l00219"></a>00219 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> _db_table_updater_audio_albums[] = {
+<a name="l00220"></a>00220     _db_table_updater_audio_albums_0
+<a name="l00221"></a>00221 };
+<a name="l00222"></a>00222 
+<a name="l00223"></a>00223 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00224"></a>00224 _db_table_updater_audio_genres_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
+<a name="l00225"></a>00225     <span class="keywordtype">int</span> ret;
+<a name="l00226"></a>00226 
+<a name="l00227"></a>00227     ret = _db_create(db, <span class="stringliteral">"audio_genres"</span>,
+<a name="l00228"></a>00228         <span class="stringliteral">"CREATE TABLE IF NOT EXISTS audio_genres ("</span>
+<a name="l00229"></a>00229         <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
+<a name="l00230"></a>00230         <span class="stringliteral">"name TEXT UNIQUE"</span>
+<a name="l00231"></a>00231         <span class="stringliteral">")"</span>);
+<a name="l00232"></a>00232     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00233"></a>00233         <span class="keywordflow">goto</span> done;
+<a name="l00234"></a>00234 
+<a name="l00235"></a>00235     ret = _db_create(db, <span class="stringliteral">"audio_genres_name_idx"</span>,
+<a name="l00236"></a>00236         <span class="stringliteral">"CREATE INDEX IF NOT EXISTS "</span>
+<a name="l00237"></a>00237         <span class="stringliteral">"audio_albums_name_idx ON audio_albums (name)"</span>);
+<a name="l00238"></a>00238     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00239"></a>00239         <span class="keywordflow">goto</span> done;
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00242"></a>00242         <span class="stringliteral">"delete_audios_on_genres_deleted "</span>
+<a name="l00243"></a>00243         <span class="stringliteral">"DELETE ON audio_genres FOR EACH ROW BEGIN"</span>
+<a name="l00244"></a>00244         <span class="stringliteral">" DELETE FROM audios WHERE genre_id = OLD.id; END;"</span>);
+<a name="l00245"></a>00245 
+<a name="l00246"></a>00246   done:
+<a name="l00247"></a>00247     <span class="keywordflow">return</span> ret;
+<a name="l00248"></a>00248 }
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> _db_table_updater_audio_genres[] = {
+<a name="l00251"></a>00251     _db_table_updater_audio_genres_0
+<a name="l00252"></a>00252 };
+<a name="l00253"></a>00253 
+<a name="l00254"></a><a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">00254</a> <span class="preprocessor">#define _DB_T_UPDATE(db, name, array)                                   \</span>
+<a name="l00255"></a>00255 <span class="preprocessor">    lms_db_table_update_if_required(db, name, LMS_ARRAY_SIZE(array), array)</span>
+<a name="l00256"></a>00256 <span class="preprocessor"></span>
+<a name="l00257"></a>00257 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00258"></a>00258 _db_create_tables_if_required(sqlite3 *db)
+<a name="l00259"></a>00259 {
+<a name="l00260"></a>00260     <span class="keywordtype">int</span> ret;
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262     ret = <a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">_DB_T_UPDATE</a>(db, <span class="stringliteral">"audios"</span>, _db_table_updater_audios);
+<a name="l00263"></a>00263     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00264"></a>00264         <span class="keywordflow">goto</span> done;
 <a name="l00265"></a>00265 
-<a name="l00266"></a>00266     lda = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a>));
-<a name="l00267"></a>00267     lda-&gt;_references = 1;
-<a name="l00268"></a>00268     lda-&gt;db = db;
+<a name="l00266"></a>00266     ret = <a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">_DB_T_UPDATE</a>(db, <span class="stringliteral">"audio_artists"</span>, _db_table_updater_audio_artists);
+<a name="l00267"></a>00267     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00268"></a>00268         <span class="keywordflow">goto</span> done;
 <a name="l00269"></a>00269 
-<a name="l00270"></a>00270     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(&amp;_cache, db, lda) != 0) {
-<a name="l00271"></a>00271         <a class="code" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lms_db_audio_free</a>(lda);
-<a name="l00272"></a>00272         <span class="keywordflow">return</span> NULL;
-<a name="l00273"></a>00273     }
-<a name="l00274"></a>00274 
-<a name="l00275"></a>00275     <span class="keywordflow">return</span> lda;
-<a name="l00276"></a>00276 }
-<a name="l00277"></a>00277 
-<a name="l00290"></a>00290 <span class="keywordtype">int</span>
-<a name="l00291"></a><a class="code" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">00291</a> <a class="code" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lms_db_audio_start</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda)
-<a name="l00292"></a>00292 {
-<a name="l00293"></a>00293     <span class="keywordflow">if</span> (!lda)
-<a name="l00294"></a>00294         <span class="keywordflow">return</span> -1;
-<a name="l00295"></a>00295     <span class="keywordflow">if</span> (lda-&gt;_is_started)
-<a name="l00296"></a>00296         <span class="keywordflow">return</span> 0;
-<a name="l00297"></a>00297 
-<a name="l00298"></a>00298     lda-&gt;insert_audio = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
-<a name="l00299"></a>00299         <span class="stringliteral">"INSERT OR REPLACE INTO audios "</span>
-<a name="l00300"></a>00300         <span class="stringliteral">"(id, title, album_id, genre_id, trackno, rating, playcnt) "</span>
-<a name="l00301"></a>00301         <span class="stringliteral">"VALUES (?, ?, ?, ?, ?, ?, ?)"</span>);
-<a name="l00302"></a>00302     <span class="keywordflow">if</span> (!lda-&gt;insert_audio)
-<a name="l00303"></a>00303         <span class="keywordflow">return</span> -2;
-<a name="l00304"></a>00304 
-<a name="l00305"></a>00305     lda-&gt;insert_artist = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
-<a name="l00306"></a>00306         <span class="stringliteral">"INSERT INTO audio_artists (name) VALUES (?)"</span>);
-<a name="l00307"></a>00307     <span class="keywordflow">if</span> (!lda-&gt;insert_artist)
-<a name="l00308"></a>00308         <span class="keywordflow">return</span> -3;
-<a name="l00309"></a>00309 
-<a name="l00310"></a>00310     lda-&gt;insert_album = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
-<a name="l00311"></a>00311         <span class="stringliteral">"INSERT INTO audio_albums (artist_id, name) VALUES (?, ?)"</span>);
-<a name="l00312"></a>00312     <span class="keywordflow">if</span> (!lda-&gt;insert_album)
-<a name="l00313"></a>00313         <span class="keywordflow">return</span> -4;
-<a name="l00314"></a>00314 
-<a name="l00315"></a>00315     lda-&gt;insert_genre = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
-<a name="l00316"></a>00316         <span class="stringliteral">"INSERT INTO audio_genres (name) VALUES (?)"</span>);
-<a name="l00317"></a>00317     <span class="keywordflow">if</span> (!lda-&gt;insert_genre)
-<a name="l00318"></a>00318         <span class="keywordflow">return</span> -5;
+<a name="l00270"></a>00270     ret = <a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">_DB_T_UPDATE</a>(db, <span class="stringliteral">"audio_albums"</span>, _db_table_updater_audio_albums);
+<a name="l00271"></a>00271     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00272"></a>00272         <span class="keywordflow">goto</span> done;
+<a name="l00273"></a>00273 
+<a name="l00274"></a>00274     ret = <a class="code" href="lightmediascanner__db__audio_8c.html#d2a4e90aa49af7291552e6ac172aaa51">_DB_T_UPDATE</a>(db, <span class="stringliteral">"audio_genres"</span>, _db_table_updater_audio_genres);
+<a name="l00275"></a>00275 
+<a name="l00276"></a>00276   done:
+<a name="l00277"></a>00277     <span class="keywordflow">return</span> ret;
+<a name="l00278"></a>00278 }
+<a name="l00279"></a>00279 
+<a name="l00280"></a>00280 <span class="preprocessor">#undef _DB_T_UPDATE</span>
+<a name="l00281"></a>00281 <span class="preprocessor"></span>
+<a name="l00296"></a>00296 <a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *
+<a name="l00297"></a><a class="code" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">00297</a> <a class="code" href="group__LMS__DB.html#g09c4349148be1bdf02f069f8acb191ee">lms_db_audio_new</a>(sqlite3 *db)
+<a name="l00298"></a>00298 {
+<a name="l00299"></a>00299     <a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda;
+<a name="l00300"></a>00300     <span class="keywordtype">void</span> *p;
+<a name="l00301"></a>00301 
+<a name="l00302"></a>00302     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(&amp;_cache, db, &amp;p) == 0) {
+<a name="l00303"></a>00303         lda = p;
+<a name="l00304"></a>00304         lda-&gt;_references++;
+<a name="l00305"></a>00305         <span class="keywordflow">return</span> lda;
+<a name="l00306"></a>00306     }
+<a name="l00307"></a>00307 
+<a name="l00308"></a>00308     <span class="keywordflow">if</span> (!db)
+<a name="l00309"></a>00309         <span class="keywordflow">return</span> NULL;
+<a name="l00310"></a>00310 
+<a name="l00311"></a>00311     <span class="keywordflow">if</span> (_db_create_tables_if_required(db) != 0) {
+<a name="l00312"></a>00312         fprintf(stderr, <span class="stringliteral">"ERROR: could not create tables.\n"</span>);
+<a name="l00313"></a>00313         <span class="keywordflow">return</span> NULL;
+<a name="l00314"></a>00314     }
+<a name="l00315"></a>00315 
+<a name="l00316"></a>00316     lda = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a>));
+<a name="l00317"></a>00317     lda-&gt;_references = 1;
+<a name="l00318"></a>00318     lda-&gt;db = db;
 <a name="l00319"></a>00319 
-<a name="l00320"></a>00320     lda-&gt;get_artist = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
-<a name="l00321"></a>00321         <span class="stringliteral">"SELECT id FROM audio_artists WHERE name = ? LIMIT 1"</span>);
-<a name="l00322"></a>00322     <span class="keywordflow">if</span> (!lda-&gt;get_artist)
-<a name="l00323"></a>00323         <span class="keywordflow">return</span> -6;
+<a name="l00320"></a>00320     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(&amp;_cache, db, lda) != 0) {
+<a name="l00321"></a>00321         <a class="code" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lms_db_audio_free</a>(lda);
+<a name="l00322"></a>00322         <span class="keywordflow">return</span> NULL;
+<a name="l00323"></a>00323     }
 <a name="l00324"></a>00324 
-<a name="l00325"></a>00325     lda-&gt;get_album = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
-<a name="l00326"></a>00326         <span class="stringliteral">"SELECT id FROM audio_albums WHERE name = ? AND artist_id = ? LIMIT 1"</span>);
-<a name="l00327"></a>00327     <span class="keywordflow">if</span> (!lda-&gt;get_album)
-<a name="l00328"></a>00328         <span class="keywordflow">return</span> -7;
-<a name="l00329"></a>00329 
-<a name="l00330"></a>00330     lda-&gt;get_genre = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
-<a name="l00331"></a>00331         <span class="stringliteral">"SELECT id FROM audio_genres WHERE name = ? LIMIT 1"</span>);
-<a name="l00332"></a>00332     <span class="keywordflow">if</span> (!lda-&gt;get_genre)
-<a name="l00333"></a>00333         <span class="keywordflow">return</span> -8;
-<a name="l00334"></a>00334 
-<a name="l00335"></a>00335     lda-&gt;_is_started = 1;
-<a name="l00336"></a>00336     <span class="keywordflow">return</span> 0;
-<a name="l00337"></a>00337 }
-<a name="l00338"></a>00338 
-<a name="l00351"></a>00351 <span class="keywordtype">int</span>
-<a name="l00352"></a><a class="code" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">00352</a> <a class="code" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lms_db_audio_free</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda)
-<a name="l00353"></a>00353 {
-<a name="l00354"></a>00354     <span class="keywordtype">int</span> r;
-<a name="l00355"></a>00355 
-<a name="l00356"></a>00356     <span class="keywordflow">if</span> (!lda)
-<a name="l00357"></a>00357         <span class="keywordflow">return</span> -1;
-<a name="l00358"></a>00358     <span class="keywordflow">if</span> (lda-&gt;_references == 0) {
-<a name="l00359"></a>00359         fprintf(stderr, <span class="stringliteral">"ERROR: over-called lms_db_audio_free(%p)\n"</span>, lda);
-<a name="l00360"></a>00360         <span class="keywordflow">return</span> -1;
-<a name="l00361"></a>00361     }
-<a name="l00362"></a>00362 
-<a name="l00363"></a>00363     lda-&gt;_references--;
-<a name="l00364"></a>00364     <span class="keywordflow">if</span> (lda-&gt;_references &gt; 0)
-<a name="l00365"></a>00365         <span class="keywordflow">return</span> 0;
-<a name="l00366"></a>00366 
-<a name="l00367"></a>00367     <span class="keywordflow">if</span> (lda-&gt;insert_audio)
-<a name="l00368"></a>00368         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;insert_audio, <span class="stringliteral">"insert_audio"</span>);
+<a name="l00325"></a>00325     <span class="keywordflow">return</span> lda;
+<a name="l00326"></a>00326 }
+<a name="l00327"></a>00327 
+<a name="l00340"></a>00340 <span class="keywordtype">int</span>
+<a name="l00341"></a><a class="code" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">00341</a> <a class="code" href="group__LMS__DB.html#g39731623b0bc5436858820a94487fdc1">lms_db_audio_start</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda)
+<a name="l00342"></a>00342 {
+<a name="l00343"></a>00343     <span class="keywordflow">if</span> (!lda)
+<a name="l00344"></a>00344         <span class="keywordflow">return</span> -1;
+<a name="l00345"></a>00345     <span class="keywordflow">if</span> (lda-&gt;_is_started)
+<a name="l00346"></a>00346         <span class="keywordflow">return</span> 0;
+<a name="l00347"></a>00347 
+<a name="l00348"></a>00348     lda-&gt;insert_audio = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
+<a name="l00349"></a>00349         <span class="stringliteral">"INSERT OR REPLACE INTO audios "</span>
+<a name="l00350"></a>00350         <span class="stringliteral">"(id, title, album_id, artist_id, genre_id, trackno, rating, playcnt) "</span>
+<a name="l00351"></a>00351         <span class="stringliteral">"VALUES (?, ?, ?, ?, ?, ?, ?, ?)"</span>);
+<a name="l00352"></a>00352     <span class="keywordflow">if</span> (!lda-&gt;insert_audio)
+<a name="l00353"></a>00353         <span class="keywordflow">return</span> -2;
+<a name="l00354"></a>00354 
+<a name="l00355"></a>00355     lda-&gt;insert_artist = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
+<a name="l00356"></a>00356         <span class="stringliteral">"INSERT INTO audio_artists (name) VALUES (?)"</span>);
+<a name="l00357"></a>00357     <span class="keywordflow">if</span> (!lda-&gt;insert_artist)
+<a name="l00358"></a>00358         <span class="keywordflow">return</span> -3;
+<a name="l00359"></a>00359 
+<a name="l00360"></a>00360     lda-&gt;insert_album = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
+<a name="l00361"></a>00361         <span class="stringliteral">"INSERT INTO audio_albums (artist_id, name) VALUES (?, ?)"</span>);
+<a name="l00362"></a>00362     <span class="keywordflow">if</span> (!lda-&gt;insert_album)
+<a name="l00363"></a>00363         <span class="keywordflow">return</span> -4;
+<a name="l00364"></a>00364 
+<a name="l00365"></a>00365     lda-&gt;insert_genre = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
+<a name="l00366"></a>00366         <span class="stringliteral">"INSERT INTO audio_genres (name) VALUES (?)"</span>);
+<a name="l00367"></a>00367     <span class="keywordflow">if</span> (!lda-&gt;insert_genre)
+<a name="l00368"></a>00368         <span class="keywordflow">return</span> -5;
 <a name="l00369"></a>00369 
-<a name="l00370"></a>00370     <span class="keywordflow">if</span> (lda-&gt;insert_artist)
-<a name="l00371"></a>00371         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;insert_artist, <span class="stringliteral">"insert_artist"</span>);
-<a name="l00372"></a>00372 
-<a name="l00373"></a>00373     <span class="keywordflow">if</span> (lda-&gt;insert_album)
-<a name="l00374"></a>00374         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;insert_album, <span class="stringliteral">"insert_album"</span>);
-<a name="l00375"></a>00375 
-<a name="l00376"></a>00376     <span class="keywordflow">if</span> (lda-&gt;insert_genre)
-<a name="l00377"></a>00377         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;insert_genre, <span class="stringliteral">"insert_genre"</span>);
-<a name="l00378"></a>00378 
-<a name="l00379"></a>00379     <span class="keywordflow">if</span> (lda-&gt;get_artist)
-<a name="l00380"></a>00380         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;get_artist, <span class="stringliteral">"get_artist"</span>);
-<a name="l00381"></a>00381 
-<a name="l00382"></a>00382     <span class="keywordflow">if</span> (lda-&gt;get_album)
-<a name="l00383"></a>00383         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;get_album, <span class="stringliteral">"get_album"</span>);
+<a name="l00370"></a>00370     lda-&gt;get_artist = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
+<a name="l00371"></a>00371         <span class="stringliteral">"SELECT id FROM audio_artists WHERE name = ? LIMIT 1"</span>);
+<a name="l00372"></a>00372     <span class="keywordflow">if</span> (!lda-&gt;get_artist)
+<a name="l00373"></a>00373         <span class="keywordflow">return</span> -6;
+<a name="l00374"></a>00374 
+<a name="l00375"></a>00375     lda-&gt;get_album = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
+<a name="l00376"></a>00376         <span class="stringliteral">"SELECT id FROM audio_albums WHERE name = ? AND artist_id = ? LIMIT 1"</span>);
+<a name="l00377"></a>00377     <span class="keywordflow">if</span> (!lda-&gt;get_album)
+<a name="l00378"></a>00378         <span class="keywordflow">return</span> -7;
+<a name="l00379"></a>00379 
+<a name="l00380"></a>00380     lda-&gt;get_genre = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(lda-&gt;db,
+<a name="l00381"></a>00381         <span class="stringliteral">"SELECT id FROM audio_genres WHERE name = ? LIMIT 1"</span>);
+<a name="l00382"></a>00382     <span class="keywordflow">if</span> (!lda-&gt;get_genre)
+<a name="l00383"></a>00383         <span class="keywordflow">return</span> -8;
 <a name="l00384"></a>00384 
-<a name="l00385"></a>00385     <span class="keywordflow">if</span> (lda-&gt;get_genre)
-<a name="l00386"></a>00386         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;get_genre, <span class="stringliteral">"get_genre"</span>);
-<a name="l00387"></a>00387 
-<a name="l00388"></a>00388     r = <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(&amp;_cache, lda-&gt;db, lda);
-<a name="l00389"></a>00389     free(lda);
-<a name="l00390"></a>00390 
-<a name="l00391"></a>00391     <span class="keywordflow">return</span> r;
-<a name="l00392"></a>00392 }
-<a name="l00393"></a>00393 
-<a name="l00394"></a>00394 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00395"></a>00395 _db_get_id_by_name(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *name, int64_t *<span class="keywordtype">id</span>)
-<a name="l00396"></a>00396 {
-<a name="l00397"></a>00397     <span class="keywordtype">int</span> r, ret;
-<a name="l00398"></a>00398 
-<a name="l00399"></a>00399     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, name-&gt;<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, name-&gt;<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00400"></a>00400     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00401"></a>00401         <span class="keywordflow">goto</span> done;
-<a name="l00402"></a>00402 
-<a name="l00403"></a>00403     r = sqlite3_step(stmt);
-<a name="l00404"></a>00404     <span class="keywordflow">if</span> (r == SQLITE_DONE) {
-<a name="l00405"></a>00405         ret = 1;
-<a name="l00406"></a>00406         <span class="keywordflow">goto</span> done;
-<a name="l00407"></a>00407     }
-<a name="l00408"></a>00408 
-<a name="l00409"></a>00409     <span class="keywordflow">if</span> (r != SQLITE_ROW) {
-<a name="l00410"></a>00410         fprintf(stderr, <span class="stringliteral">"ERROR: could not get id by name: %s\n"</span>,
-<a name="l00411"></a>00411                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00412"></a>00412         ret = -2;
-<a name="l00413"></a>00413         <span class="keywordflow">goto</span> done;
-<a name="l00414"></a>00414     }
-<a name="l00415"></a>00415 
-<a name="l00416"></a>00416     *<span class="keywordtype">id</span> = sqlite3_column_int64(stmt, 0);
-<a name="l00417"></a>00417     ret = 0;
-<a name="l00418"></a>00418 
-<a name="l00419"></a>00419   done:
-<a name="l00420"></a>00420     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00421"></a>00421 
-<a name="l00422"></a>00422     <span class="keywordflow">return</span> ret;
-<a name="l00423"></a>00423 
-<a name="l00424"></a>00424 }
-<a name="l00425"></a>00425 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00426"></a>00426 _db_insert_name(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *name, int64_t *<span class="keywordtype">id</span>)
-<a name="l00427"></a>00427 {
-<a name="l00428"></a>00428     <span class="keywordtype">int</span> r, ret;
-<a name="l00429"></a>00429 
-<a name="l00430"></a>00430     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, name-&gt;<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, name-&gt;<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00431"></a>00431     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00432"></a>00432         <span class="keywordflow">goto</span> done;
-<a name="l00433"></a>00433 
-<a name="l00434"></a>00434     r = sqlite3_step(stmt);
-<a name="l00435"></a>00435     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00436"></a>00436         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert name: %s\n"</span>,
-<a name="l00437"></a>00437                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00438"></a>00438         ret = -2;
-<a name="l00439"></a>00439         <span class="keywordflow">goto</span> done;
-<a name="l00440"></a>00440     }
-<a name="l00441"></a>00441 
-<a name="l00442"></a>00442     *<span class="keywordtype">id</span> = sqlite3_last_insert_rowid(sqlite3_db_handle(stmt));
-<a name="l00443"></a>00443     ret = 0;
-<a name="l00444"></a>00444 
-<a name="l00445"></a>00445   done:
-<a name="l00446"></a>00446     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00447"></a>00447 
-<a name="l00448"></a>00448     <span class="keywordflow">return</span> ret;
-<a name="l00449"></a>00449 }
-<a name="l00450"></a>00450 
-<a name="l00451"></a>00451 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00452"></a>00452 _db_get_artist(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *artist_id)
-<a name="l00453"></a>00453 {
-<a name="l00454"></a>00454     <span class="keywordflow">return</span> _db_get_id_by_name(lda-&gt;get_artist, &amp;info-&gt;<a class="code" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">artist</a>, artist_id);
-<a name="l00455"></a>00455 }
-<a name="l00456"></a>00456 
-<a name="l00457"></a>00457 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00458"></a>00458 _db_insert_artist(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *artist_id)
-<a name="l00459"></a>00459 {
-<a name="l00460"></a>00460     <span class="keywordtype">int</span> r;
-<a name="l00461"></a>00461 
-<a name="l00462"></a>00462     <span class="keywordflow">if</span> (!info-&gt;<a class="code" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">artist</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>) <span class="comment">/* fast path for unknown artist */</span>
-<a name="l00463"></a>00463         <span class="keywordflow">return</span> 1;
-<a name="l00464"></a>00464 
-<a name="l00465"></a>00465     r =_db_get_artist(lda, info, artist_id);
-<a name="l00466"></a>00466     <span class="keywordflow">if</span> (r == 0)
-<a name="l00467"></a>00467         <span class="keywordflow">return</span> 0;
-<a name="l00468"></a>00468     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 0)
-<a name="l00469"></a>00469         <span class="keywordflow">return</span> -1;
-<a name="l00470"></a>00470 
-<a name="l00471"></a>00471     <span class="keywordflow">return</span> _db_insert_name(lda-&gt;insert_artist, &amp;info-&gt;<a class="code" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">artist</a>, artist_id);
-<a name="l00472"></a>00472 }
+<a name="l00385"></a>00385     lda-&gt;_is_started = 1;
+<a name="l00386"></a>00386     <span class="keywordflow">return</span> 0;
+<a name="l00387"></a>00387 }
+<a name="l00388"></a>00388 
+<a name="l00401"></a>00401 <span class="keywordtype">int</span>
+<a name="l00402"></a><a class="code" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">00402</a> <a class="code" href="group__LMS__DB.html#g7560f9dab2ecd309290d200ea809375d">lms_db_audio_free</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda)
+<a name="l00403"></a>00403 {
+<a name="l00404"></a>00404     <span class="keywordtype">int</span> r;
+<a name="l00405"></a>00405 
+<a name="l00406"></a>00406     <span class="keywordflow">if</span> (!lda)
+<a name="l00407"></a>00407         <span class="keywordflow">return</span> -1;
+<a name="l00408"></a>00408     <span class="keywordflow">if</span> (lda-&gt;_references == 0) {
+<a name="l00409"></a>00409         fprintf(stderr, <span class="stringliteral">"ERROR: over-called lms_db_audio_free(%p)\n"</span>, lda);
+<a name="l00410"></a>00410         <span class="keywordflow">return</span> -1;
+<a name="l00411"></a>00411     }
+<a name="l00412"></a>00412 
+<a name="l00413"></a>00413     lda-&gt;_references--;
+<a name="l00414"></a>00414     <span class="keywordflow">if</span> (lda-&gt;_references &gt; 0)
+<a name="l00415"></a>00415         <span class="keywordflow">return</span> 0;
+<a name="l00416"></a>00416 
+<a name="l00417"></a>00417     <span class="keywordflow">if</span> (lda-&gt;insert_audio)
+<a name="l00418"></a>00418         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;insert_audio, <span class="stringliteral">"insert_audio"</span>);
+<a name="l00419"></a>00419 
+<a name="l00420"></a>00420     <span class="keywordflow">if</span> (lda-&gt;insert_artist)
+<a name="l00421"></a>00421         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;insert_artist, <span class="stringliteral">"insert_artist"</span>);
+<a name="l00422"></a>00422 
+<a name="l00423"></a>00423     <span class="keywordflow">if</span> (lda-&gt;insert_album)
+<a name="l00424"></a>00424         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;insert_album, <span class="stringliteral">"insert_album"</span>);
+<a name="l00425"></a>00425 
+<a name="l00426"></a>00426     <span class="keywordflow">if</span> (lda-&gt;insert_genre)
+<a name="l00427"></a>00427         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;insert_genre, <span class="stringliteral">"insert_genre"</span>);
+<a name="l00428"></a>00428 
+<a name="l00429"></a>00429     <span class="keywordflow">if</span> (lda-&gt;get_artist)
+<a name="l00430"></a>00430         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;get_artist, <span class="stringliteral">"get_artist"</span>);
+<a name="l00431"></a>00431 
+<a name="l00432"></a>00432     <span class="keywordflow">if</span> (lda-&gt;get_album)
+<a name="l00433"></a>00433         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;get_album, <span class="stringliteral">"get_album"</span>);
+<a name="l00434"></a>00434 
+<a name="l00435"></a>00435     <span class="keywordflow">if</span> (lda-&gt;get_genre)
+<a name="l00436"></a>00436         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(lda-&gt;get_genre, <span class="stringliteral">"get_genre"</span>);
+<a name="l00437"></a>00437 
+<a name="l00438"></a>00438     r = <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(&amp;_cache, lda-&gt;db, lda);
+<a name="l00439"></a>00439     free(lda);
+<a name="l00440"></a>00440 
+<a name="l00441"></a>00441     <span class="keywordflow">return</span> r;
+<a name="l00442"></a>00442 }
+<a name="l00443"></a>00443 
+<a name="l00444"></a>00444 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00445"></a>00445 _db_get_id_by_name(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *name, int64_t *<span class="keywordtype">id</span>)
+<a name="l00446"></a>00446 {
+<a name="l00447"></a>00447     <span class="keywordtype">int</span> r, ret;
+<a name="l00448"></a>00448 
+<a name="l00449"></a>00449     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, name-&gt;<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, name-&gt;<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00450"></a>00450     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00451"></a>00451         <span class="keywordflow">goto</span> done;
+<a name="l00452"></a>00452 
+<a name="l00453"></a>00453     r = sqlite3_step(stmt);
+<a name="l00454"></a>00454     <span class="keywordflow">if</span> (r == SQLITE_DONE) {
+<a name="l00455"></a>00455         ret = 1;
+<a name="l00456"></a>00456         <span class="keywordflow">goto</span> done;
+<a name="l00457"></a>00457     }
+<a name="l00458"></a>00458 
+<a name="l00459"></a>00459     <span class="keywordflow">if</span> (r != SQLITE_ROW) {
+<a name="l00460"></a>00460         fprintf(stderr, <span class="stringliteral">"ERROR: could not get id by name: %s\n"</span>,
+<a name="l00461"></a>00461                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00462"></a>00462         ret = -2;
+<a name="l00463"></a>00463         <span class="keywordflow">goto</span> done;
+<a name="l00464"></a>00464     }
+<a name="l00465"></a>00465 
+<a name="l00466"></a>00466     *<span class="keywordtype">id</span> = sqlite3_column_int64(stmt, 0);
+<a name="l00467"></a>00467     ret = 0;
+<a name="l00468"></a>00468 
+<a name="l00469"></a>00469   done:
+<a name="l00470"></a>00470     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00471"></a>00471 
+<a name="l00472"></a>00472     <span class="keywordflow">return</span> ret;
 <a name="l00473"></a>00473 
-<a name="l00474"></a>00474 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00475"></a>00475 _db_get_album(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *artist_id, int64_t *album_id)
-<a name="l00476"></a>00476 {
-<a name="l00477"></a>00477     sqlite3_stmt *stmt;
+<a name="l00474"></a>00474 }
+<a name="l00475"></a>00475 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00476"></a>00476 _db_insert_name(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *name, int64_t *<span class="keywordtype">id</span>)
+<a name="l00477"></a>00477 {
 <a name="l00478"></a>00478     <span class="keywordtype">int</span> r, ret;
 <a name="l00479"></a>00479 
-<a name="l00480"></a>00480     stmt = lda-&gt;get_album;
-<a name="l00481"></a>00481 
-<a name="l00482"></a>00482     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00483"></a>00483     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00484"></a>00484         <span class="keywordflow">goto</span> done;
-<a name="l00485"></a>00485 
-<a name="l00486"></a>00486     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 2, artist_id);
-<a name="l00487"></a>00487     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00488"></a>00488         <span class="keywordflow">goto</span> done;
-<a name="l00489"></a>00489 
-<a name="l00490"></a>00490     r = sqlite3_step(stmt);
-<a name="l00491"></a>00491     <span class="keywordflow">if</span> (r == SQLITE_DONE) {
-<a name="l00492"></a>00492         ret = 1;
-<a name="l00493"></a>00493         <span class="keywordflow">goto</span> done;
-<a name="l00494"></a>00494     }
-<a name="l00495"></a>00495 
-<a name="l00496"></a>00496     <span class="keywordflow">if</span> (r != SQLITE_ROW) {
-<a name="l00497"></a>00497         fprintf(stderr, <span class="stringliteral">"ERROR: could not get album from table: %s\n"</span>,
-<a name="l00498"></a>00498                 sqlite3_errmsg(lda-&gt;db));
-<a name="l00499"></a>00499         ret = -2;
-<a name="l00500"></a>00500         <span class="keywordflow">goto</span> done;
-<a name="l00501"></a>00501     }
-<a name="l00502"></a>00502 
-<a name="l00503"></a>00503     *album_id = sqlite3_column_int64(stmt, 0);
-<a name="l00504"></a>00504     ret = 0;
-<a name="l00505"></a>00505 
-<a name="l00506"></a>00506   done:
-<a name="l00507"></a>00507     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00508"></a>00508 
-<a name="l00509"></a>00509     <span class="keywordflow">return</span> ret;
-<a name="l00510"></a>00510 
-<a name="l00511"></a>00511 }
-<a name="l00512"></a>00512 
-<a name="l00513"></a>00513 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00514"></a>00514 _db_insert_album(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *album_id)
-<a name="l00515"></a>00515 {
-<a name="l00516"></a>00516     <span class="keywordtype">int</span> r, ret, ret_artist;
-<a name="l00517"></a>00517     int64_t artist_id;
-<a name="l00518"></a>00518     sqlite3_stmt *stmt;
-<a name="l00519"></a>00519 
-<a name="l00520"></a>00520     <span class="keywordflow">if</span> (!info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>) <span class="comment">/* fast path for unknown album */</span>
-<a name="l00521"></a>00521         <span class="keywordflow">return</span> 1;
-<a name="l00522"></a>00522 
-<a name="l00523"></a>00523     ret_artist = _db_insert_artist(lda, info, &amp;artist_id);
-<a name="l00524"></a>00524     <span class="keywordflow">if</span> (ret_artist &lt; 0)
-<a name="l00525"></a>00525         <span class="keywordflow">return</span> -1;
-<a name="l00526"></a>00526 
-<a name="l00527"></a>00527     r =_db_get_album(lda, info,
-<a name="l00528"></a>00528                      (ret_artist == 0) ? &amp;artist_id : NULL,
-<a name="l00529"></a>00529                      album_id);
-<a name="l00530"></a>00530     <span class="keywordflow">if</span> (r == 0)
-<a name="l00531"></a>00531         <span class="keywordflow">return</span> 0;
-<a name="l00532"></a>00532     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 0)
-<a name="l00533"></a>00533         <span class="keywordflow">return</span> -1;
-<a name="l00534"></a>00534 
-<a name="l00535"></a>00535     stmt = lda-&gt;insert_album;
-<a name="l00536"></a>00536     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 1,
-<a name="l00537"></a>00537                                     (ret_artist == 0) ? &amp;artist_id : NULL);
-<a name="l00538"></a>00538     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00539"></a>00539         <span class="keywordflow">goto</span> done;
-<a name="l00540"></a>00540 
-<a name="l00541"></a>00541     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00542"></a>00542     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00480"></a>00480     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, name-&gt;<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, name-&gt;<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00481"></a>00481     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00482"></a>00482         <span class="keywordflow">goto</span> done;
+<a name="l00483"></a>00483 
+<a name="l00484"></a>00484     r = sqlite3_step(stmt);
+<a name="l00485"></a>00485     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00486"></a>00486         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert name: %s\n"</span>,
+<a name="l00487"></a>00487                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00488"></a>00488         ret = -2;
+<a name="l00489"></a>00489         <span class="keywordflow">goto</span> done;
+<a name="l00490"></a>00490     }
+<a name="l00491"></a>00491 
+<a name="l00492"></a>00492     *<span class="keywordtype">id</span> = sqlite3_last_insert_rowid(sqlite3_db_handle(stmt));
+<a name="l00493"></a>00493     ret = 0;
+<a name="l00494"></a>00494 
+<a name="l00495"></a>00495   done:
+<a name="l00496"></a>00496     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00497"></a>00497 
+<a name="l00498"></a>00498     <span class="keywordflow">return</span> ret;
+<a name="l00499"></a>00499 }
+<a name="l00500"></a>00500 
+<a name="l00501"></a>00501 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00502"></a>00502 _db_get_artist(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *artist_id)
+<a name="l00503"></a>00503 {
+<a name="l00504"></a>00504     <span class="keywordflow">return</span> _db_get_id_by_name(lda-&gt;get_artist, &amp;info-&gt;<a class="code" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">artist</a>, artist_id);
+<a name="l00505"></a>00505 }
+<a name="l00506"></a>00506 
+<a name="l00507"></a>00507 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00508"></a>00508 _db_insert_artist(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *artist_id)
+<a name="l00509"></a>00509 {
+<a name="l00510"></a>00510     <span class="keywordtype">int</span> r;
+<a name="l00511"></a>00511 
+<a name="l00512"></a>00512     <span class="keywordflow">if</span> (!info-&gt;<a class="code" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">artist</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>) <span class="comment">/* fast path for unknown artist */</span>
+<a name="l00513"></a>00513         <span class="keywordflow">return</span> 1;
+<a name="l00514"></a>00514 
+<a name="l00515"></a>00515     r =_db_get_artist(lda, info, artist_id);
+<a name="l00516"></a>00516     <span class="keywordflow">if</span> (r == 0)
+<a name="l00517"></a>00517         <span class="keywordflow">return</span> 0;
+<a name="l00518"></a>00518     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00519"></a>00519         <span class="keywordflow">return</span> -1;
+<a name="l00520"></a>00520 
+<a name="l00521"></a>00521     <span class="keywordflow">return</span> _db_insert_name(lda-&gt;insert_artist, &amp;info-&gt;<a class="code" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">artist</a>, artist_id);
+<a name="l00522"></a>00522 }
+<a name="l00523"></a>00523 
+<a name="l00524"></a>00524 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00525"></a>00525 _db_get_album(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *artist_id, int64_t *album_id)
+<a name="l00526"></a>00526 {
+<a name="l00527"></a>00527     sqlite3_stmt *stmt;
+<a name="l00528"></a>00528     <span class="keywordtype">int</span> r, ret;
+<a name="l00529"></a>00529 
+<a name="l00530"></a>00530     stmt = lda-&gt;get_album;
+<a name="l00531"></a>00531 
+<a name="l00532"></a>00532     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00533"></a>00533     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00534"></a>00534         <span class="keywordflow">goto</span> done;
+<a name="l00535"></a>00535 
+<a name="l00536"></a>00536     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 2, artist_id);
+<a name="l00537"></a>00537     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00538"></a>00538         <span class="keywordflow">goto</span> done;
+<a name="l00539"></a>00539 
+<a name="l00540"></a>00540     r = sqlite3_step(stmt);
+<a name="l00541"></a>00541     <span class="keywordflow">if</span> (r == SQLITE_DONE) {
+<a name="l00542"></a>00542         ret = 1;
 <a name="l00543"></a>00543         <span class="keywordflow">goto</span> done;
-<a name="l00544"></a>00544 
-<a name="l00545"></a>00545     r = sqlite3_step(stmt);
-<a name="l00546"></a>00546     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00547"></a>00547         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert audio album: %s\n"</span>,
+<a name="l00544"></a>00544     }
+<a name="l00545"></a>00545 
+<a name="l00546"></a>00546     <span class="keywordflow">if</span> (r != SQLITE_ROW) {
+<a name="l00547"></a>00547         fprintf(stderr, <span class="stringliteral">"ERROR: could not get album from table: %s\n"</span>,
 <a name="l00548"></a>00548                 sqlite3_errmsg(lda-&gt;db));
-<a name="l00549"></a>00549         ret = -3;
+<a name="l00549"></a>00549         ret = -2;
 <a name="l00550"></a>00550         <span class="keywordflow">goto</span> done;
 <a name="l00551"></a>00551     }
 <a name="l00552"></a>00552 
-<a name="l00553"></a>00553     *album_id = sqlite3_last_insert_rowid(lda-&gt;db);
+<a name="l00553"></a>00553     *album_id = sqlite3_column_int64(stmt, 0);
 <a name="l00554"></a>00554     ret = 0;
 <a name="l00555"></a>00555 
 <a name="l00556"></a>00556   done:
 <a name="l00557"></a>00557     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
 <a name="l00558"></a>00558 
 <a name="l00559"></a>00559     <span class="keywordflow">return</span> ret;
-<a name="l00560"></a>00560 }
-<a name="l00561"></a>00561 
-<a name="l00562"></a>00562 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00563"></a>00563 _db_get_genre(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *genre_id)
-<a name="l00564"></a>00564 {
-<a name="l00565"></a>00565     <span class="keywordflow">return</span> _db_get_id_by_name(lda-&gt;get_genre, &amp;info-&gt;<a class="code" href="structlms__audio__info.html#72efb9991c5f49eabd62aa61ead91031">genre</a>, genre_id);
-<a name="l00566"></a>00566 }
-<a name="l00567"></a>00567 
-<a name="l00568"></a>00568 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00569"></a>00569 _db_insert_genre(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *genre_id)
-<a name="l00570"></a>00570 {
-<a name="l00571"></a>00571     <span class="keywordtype">int</span> r;
-<a name="l00572"></a>00572 
-<a name="l00573"></a>00573     <span class="keywordflow">if</span> (!info-&gt;<a class="code" href="structlms__audio__info.html#72efb9991c5f49eabd62aa61ead91031">genre</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>) <span class="comment">/* fast path for unknown genre */</span>
-<a name="l00574"></a>00574         <span class="keywordflow">return</span> 1;
-<a name="l00575"></a>00575 
-<a name="l00576"></a>00576     r =_db_get_genre(lda, info, genre_id);
-<a name="l00577"></a>00577     <span class="keywordflow">if</span> (r == 0)
-<a name="l00578"></a>00578         <span class="keywordflow">return</span> 0;
-<a name="l00579"></a>00579     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 0)
-<a name="l00580"></a>00580         <span class="keywordflow">return</span> -1;
-<a name="l00581"></a>00581 
-<a name="l00582"></a>00582     <span class="keywordflow">return</span> _db_insert_name(lda-&gt;insert_genre, &amp;info-&gt;<a class="code" href="structlms__audio__info.html#72efb9991c5f49eabd62aa61ead91031">genre</a>, genre_id);
-<a name="l00583"></a>00583 }
-<a name="l00584"></a>00584 
-<a name="l00585"></a>00585 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00586"></a>00586 _db_insert_audio(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *album_id, int64_t *genre_id)
-<a name="l00587"></a>00587 {
-<a name="l00588"></a>00588     sqlite3_stmt *stmt;
-<a name="l00589"></a>00589     <span class="keywordtype">int</span> r, ret;
-<a name="l00590"></a>00590 
-<a name="l00591"></a>00591     stmt = lda-&gt;insert_audio;
-<a name="l00592"></a>00592     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, info-&gt;<a class="code" href="structlms__audio__info.html#b59ffe210521786be5fe579167b24bc4">id</a>);
-<a name="l00593"></a>00593     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00594"></a>00594         <span class="keywordflow">goto</span> done;
-<a name="l00595"></a>00595 
-<a name="l00596"></a>00596     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">title</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">title</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00597"></a>00597     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00598"></a>00598         <span class="keywordflow">goto</span> done;
-<a name="l00599"></a>00599 
-<a name="l00600"></a>00600     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 3, album_id);
-<a name="l00601"></a>00601     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00602"></a>00602         <span class="keywordflow">goto</span> done;
+<a name="l00560"></a>00560 
+<a name="l00561"></a>00561 }
+<a name="l00562"></a>00562 
+<a name="l00563"></a>00563 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00564"></a>00564 _db_insert_album(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *album_id, int64_t *artist_id)
+<a name="l00565"></a>00565 {
+<a name="l00566"></a>00566     <span class="keywordtype">int</span> r, ret;
+<a name="l00567"></a>00567     sqlite3_stmt *stmt;
+<a name="l00568"></a>00568 
+<a name="l00569"></a>00569     <span class="keywordflow">if</span> (!info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>) <span class="comment">/* fast path for unknown album */</span>
+<a name="l00570"></a>00570         <span class="keywordflow">return</span> 1;
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572     r =_db_get_album(lda, info, artist_id, album_id);
+<a name="l00573"></a>00573     <span class="keywordflow">if</span> (r == 0)
+<a name="l00574"></a>00574         <span class="keywordflow">return</span> 0;
+<a name="l00575"></a>00575     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00576"></a>00576         <span class="keywordflow">return</span> -1;
+<a name="l00577"></a>00577 
+<a name="l00578"></a>00578     stmt = lda-&gt;insert_album;
+<a name="l00579"></a>00579     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 1, artist_id);
+<a name="l00580"></a>00580     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00581"></a>00581         <span class="keywordflow">goto</span> done;
+<a name="l00582"></a>00582 
+<a name="l00583"></a>00583     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00584"></a>00584     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00585"></a>00585         <span class="keywordflow">goto</span> done;
+<a name="l00586"></a>00586 
+<a name="l00587"></a>00587     r = sqlite3_step(stmt);
+<a name="l00588"></a>00588     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00589"></a>00589         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert audio album: %s\n"</span>,
+<a name="l00590"></a>00590                 sqlite3_errmsg(lda-&gt;db));
+<a name="l00591"></a>00591         ret = -3;
+<a name="l00592"></a>00592         <span class="keywordflow">goto</span> done;
+<a name="l00593"></a>00593     }
+<a name="l00594"></a>00594 
+<a name="l00595"></a>00595     *album_id = sqlite3_last_insert_rowid(lda-&gt;db);
+<a name="l00596"></a>00596     ret = 0;
+<a name="l00597"></a>00597 
+<a name="l00598"></a>00598   done:
+<a name="l00599"></a>00599     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00600"></a>00600 
+<a name="l00601"></a>00601     <span class="keywordflow">return</span> ret;
+<a name="l00602"></a>00602 }
 <a name="l00603"></a>00603 
-<a name="l00604"></a>00604     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 4, genre_id);
-<a name="l00605"></a>00605     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00606"></a>00606         <span class="keywordflow">goto</span> done;
-<a name="l00607"></a>00607 
-<a name="l00608"></a>00608     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 5, info-&gt;<a class="code" href="structlms__audio__info.html#d372f08ada955f75be8f218d90093242">trackno</a>);
-<a name="l00609"></a>00609     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00610"></a>00610         <span class="keywordflow">goto</span> done;
-<a name="l00611"></a>00611 
-<a name="l00612"></a>00612     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 6, info-&gt;<a class="code" href="structlms__audio__info.html#932e73ccd8ff946831930be65d1ba2d2">rating</a>);
-<a name="l00613"></a>00613     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00614"></a>00614         <span class="keywordflow">goto</span> done;
-<a name="l00615"></a>00615 
-<a name="l00616"></a>00616     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 7, info-&gt;<a class="code" href="structlms__audio__info.html#7197e471d313274c4e361b2ff9e60e8a">playcnt</a>);
-<a name="l00617"></a>00617     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00618"></a>00618         <span class="keywordflow">goto</span> done;
-<a name="l00619"></a>00619 
-<a name="l00620"></a>00620     r = sqlite3_step(stmt);
-<a name="l00621"></a>00621     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00622"></a>00622         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert audio info: %s\n"</span>,
-<a name="l00623"></a>00623                 sqlite3_errmsg(lda-&gt;db));
-<a name="l00624"></a>00624         ret = -8;
-<a name="l00625"></a>00625         <span class="keywordflow">goto</span> done;
-<a name="l00626"></a>00626     }
-<a name="l00627"></a>00627 
-<a name="l00628"></a>00628     ret = 0;
-<a name="l00629"></a>00629 
-<a name="l00630"></a>00630   done:
-<a name="l00631"></a>00631     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00604"></a>00604 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00605"></a>00605 _db_get_genre(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *genre_id)
+<a name="l00606"></a>00606 {
+<a name="l00607"></a>00607     <span class="keywordflow">return</span> _db_get_id_by_name(lda-&gt;get_genre, &amp;info-&gt;<a class="code" href="structlms__audio__info.html#72efb9991c5f49eabd62aa61ead91031">genre</a>, genre_id);
+<a name="l00608"></a>00608 }
+<a name="l00609"></a>00609 
+<a name="l00610"></a>00610 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00611"></a>00611 _db_insert_genre(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *genre_id)
+<a name="l00612"></a>00612 {
+<a name="l00613"></a>00613     <span class="keywordtype">int</span> r;
+<a name="l00614"></a>00614 
+<a name="l00615"></a>00615     <span class="keywordflow">if</span> (!info-&gt;<a class="code" href="structlms__audio__info.html#72efb9991c5f49eabd62aa61ead91031">genre</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>) <span class="comment">/* fast path for unknown genre */</span>
+<a name="l00616"></a>00616         <span class="keywordflow">return</span> 1;
+<a name="l00617"></a>00617 
+<a name="l00618"></a>00618     r =_db_get_genre(lda, info, genre_id);
+<a name="l00619"></a>00619     <span class="keywordflow">if</span> (r == 0)
+<a name="l00620"></a>00620         <span class="keywordflow">return</span> 0;
+<a name="l00621"></a>00621     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00622"></a>00622         <span class="keywordflow">return</span> -1;
+<a name="l00623"></a>00623 
+<a name="l00624"></a>00624     <span class="keywordflow">return</span> _db_insert_name(lda-&gt;insert_genre, &amp;info-&gt;<a class="code" href="structlms__audio__info.html#72efb9991c5f49eabd62aa61ead91031">genre</a>, genre_id);
+<a name="l00625"></a>00625 }
+<a name="l00626"></a>00626 
+<a name="l00627"></a>00627 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00628"></a>00628 _db_insert_audio(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info, int64_t *album_id, int64_t *artist_id, int64_t *genre_id)
+<a name="l00629"></a>00629 {
+<a name="l00630"></a>00630     sqlite3_stmt *stmt;
+<a name="l00631"></a>00631     <span class="keywordtype">int</span> r, ret;
 <a name="l00632"></a>00632 
-<a name="l00633"></a>00633     <span class="keywordflow">return</span> ret;
-<a name="l00634"></a>00634 }
-<a name="l00635"></a>00635 
-<a name="l00647"></a>00647 <span class="keywordtype">int</span>
-<a name="l00648"></a><a class="code" href="lightmediascanner__db__audio_8c.html#334b8c49f8dbf76024ee6b1d69f56c8c">00648</a> <a class="code" href="group__LMS__DB.html#g9b83f734ec4905778dec5494f39b7397">lms_db_audio_add</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info)
-<a name="l00649"></a>00649 {
-<a name="l00650"></a>00650     int64_t album_id, genre_id;
-<a name="l00651"></a>00651     <span class="keywordtype">int</span> ret_album, ret_genre;
-<a name="l00652"></a>00652 
-<a name="l00653"></a>00653     <span class="keywordflow">if</span> (!lda)
-<a name="l00654"></a>00654         <span class="keywordflow">return</span> -1;
-<a name="l00655"></a>00655     <span class="keywordflow">if</span> (!info)
-<a name="l00656"></a>00656         <span class="keywordflow">return</span> -2;
-<a name="l00657"></a>00657     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="structlms__audio__info.html#b59ffe210521786be5fe579167b24bc4">id</a> &lt; 1)
-<a name="l00658"></a>00658         <span class="keywordflow">return</span> -3;
-<a name="l00659"></a>00659 
-<a name="l00660"></a>00660     ret_album = _db_insert_album(lda, info, &amp;album_id);
-<a name="l00661"></a>00661     <span class="keywordflow">if</span> (ret_album &lt; 0)
-<a name="l00662"></a>00662         <span class="keywordflow">return</span> -4;
-<a name="l00663"></a>00663 
-<a name="l00664"></a>00664     ret_genre = _db_insert_genre(lda, info, &amp;genre_id);
-<a name="l00665"></a>00665     <span class="keywordflow">if</span> (ret_genre &lt; 0)
-<a name="l00666"></a>00666         <span class="keywordflow">return</span> -5;
-<a name="l00667"></a>00667 
-<a name="l00668"></a>00668     <span class="keywordflow">return</span> _db_insert_audio(lda, info,
-<a name="l00669"></a>00669                             (ret_album == 0) ? &amp;album_id : NULL,
-<a name="l00670"></a>00670                             (ret_genre == 0) ? &amp;genre_id : NULL);
-<a name="l00671"></a>00671 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00633"></a>00633     stmt = lda-&gt;insert_audio;
+<a name="l00634"></a>00634     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, info-&gt;<a class="code" href="structlms__audio__info.html#b59ffe210521786be5fe579167b24bc4">id</a>);
+<a name="l00635"></a>00635     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00636"></a>00636         <span class="keywordflow">goto</span> done;
+<a name="l00637"></a>00637 
+<a name="l00638"></a>00638     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">title</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">title</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00639"></a>00639     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00640"></a>00640         <span class="keywordflow">goto</span> done;
+<a name="l00641"></a>00641 
+<a name="l00642"></a>00642     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 3, album_id);
+<a name="l00643"></a>00643     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00644"></a>00644         <span class="keywordflow">goto</span> done;
+<a name="l00645"></a>00645 
+<a name="l00646"></a>00646     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 4, artist_id);
+<a name="l00647"></a>00647     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00648"></a>00648         <span class="keywordflow">goto</span> done;
+<a name="l00649"></a>00649 
+<a name="l00650"></a>00650     ret = <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(stmt, 5, genre_id);
+<a name="l00651"></a>00651     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00652"></a>00652         <span class="keywordflow">goto</span> done;
+<a name="l00653"></a>00653 
+<a name="l00654"></a>00654     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 6, info-&gt;<a class="code" href="structlms__audio__info.html#d372f08ada955f75be8f218d90093242">trackno</a>);
+<a name="l00655"></a>00655     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00656"></a>00656         <span class="keywordflow">goto</span> done;
+<a name="l00657"></a>00657 
+<a name="l00658"></a>00658     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 7, info-&gt;<a class="code" href="structlms__audio__info.html#932e73ccd8ff946831930be65d1ba2d2">rating</a>);
+<a name="l00659"></a>00659     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00660"></a>00660         <span class="keywordflow">goto</span> done;
+<a name="l00661"></a>00661 
+<a name="l00662"></a>00662     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 8, info-&gt;<a class="code" href="structlms__audio__info.html#7197e471d313274c4e361b2ff9e60e8a">playcnt</a>);
+<a name="l00663"></a>00663     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00664"></a>00664         <span class="keywordflow">goto</span> done;
+<a name="l00665"></a>00665 
+<a name="l00666"></a>00666     r = sqlite3_step(stmt);
+<a name="l00667"></a>00667     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00668"></a>00668         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert audio info: %s\n"</span>,
+<a name="l00669"></a>00669                 sqlite3_errmsg(lda-&gt;db));
+<a name="l00670"></a>00670         ret = -9;
+<a name="l00671"></a>00671         <span class="keywordflow">goto</span> done;
+<a name="l00672"></a>00672     }
+<a name="l00673"></a>00673 
+<a name="l00674"></a>00674     ret = 0;
+<a name="l00675"></a>00675 
+<a name="l00676"></a>00676   done:
+<a name="l00677"></a>00677     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00678"></a>00678 
+<a name="l00679"></a>00679     <span class="keywordflow">return</span> ret;
+<a name="l00680"></a>00680 }
+<a name="l00681"></a>00681 
+<a name="l00693"></a>00693 <span class="keywordtype">int</span>
+<a name="l00694"></a><a class="code" href="lightmediascanner__db__audio_8c.html#334b8c49f8dbf76024ee6b1d69f56c8c">00694</a> <a class="code" href="group__LMS__DB.html#g9b83f734ec4905778dec5494f39b7397">lms_db_audio_add</a>(<a class="code" href="group__LMS__DB.html#ge13e30aaedfabd6f1eec256649d9bc98">lms_db_audio_t</a> *lda, <span class="keyword">struct</span> <a class="code" href="structlms__audio__info.html">lms_audio_info</a> *info)
+<a name="l00695"></a>00695 {
+<a name="l00696"></a>00696     int64_t album_id, genre_id, artist_id;
+<a name="l00697"></a>00697     <span class="keywordtype">int</span> ret_album, ret_genre, ret_artist;
+<a name="l00698"></a>00698 
+<a name="l00699"></a>00699     <span class="keywordflow">if</span> (!lda)
+<a name="l00700"></a>00700         <span class="keywordflow">return</span> -1;
+<a name="l00701"></a>00701     <span class="keywordflow">if</span> (!info)
+<a name="l00702"></a>00702         <span class="keywordflow">return</span> -2;
+<a name="l00703"></a>00703     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="structlms__audio__info.html#b59ffe210521786be5fe579167b24bc4">id</a> &lt; 1)
+<a name="l00704"></a>00704         <span class="keywordflow">return</span> -3;
+<a name="l00705"></a>00705 
+<a name="l00706"></a>00706     ret_artist = _db_insert_artist(lda, info, &amp;artist_id);
+<a name="l00707"></a>00707     <span class="keywordflow">if</span> (ret_artist &lt; 0)
+<a name="l00708"></a>00708         <span class="keywordflow">return</span> -4;
+<a name="l00709"></a>00709 
+<a name="l00710"></a>00710     ret_album = _db_insert_album(lda, info, &amp;album_id,
+<a name="l00711"></a>00711                                  (ret_artist == 0) ? &amp;artist_id : NULL);
+<a name="l00712"></a>00712     <span class="keywordflow">if</span> (ret_album &lt; 0)
+<a name="l00713"></a>00713         <span class="keywordflow">return</span> -5;
+<a name="l00714"></a>00714 
+<a name="l00715"></a>00715     ret_genre = _db_insert_genre(lda, info, &amp;genre_id);
+<a name="l00716"></a>00716     <span class="keywordflow">if</span> (ret_genre &lt; 0)
+<a name="l00717"></a>00717         <span class="keywordflow">return</span> -6;
+<a name="l00718"></a>00718 
+<a name="l00719"></a>00719     <span class="keywordflow">return</span> _db_insert_audio(lda, info,
+<a name="l00720"></a>00720                             (ret_album == 0) ? &amp;album_id : NULL,
+<a name="l00721"></a>00721                             (ret_artist == 0) ? &amp;artist_id : NULL,
+<a name="l00722"></a>00722                             (ret_genre == 0) ? &amp;genre_id : NULL);
+<a name="l00723"></a>00723 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index cbf4fae..840fba1 100644 (file)
@@ -4,30 +4,31 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_db_audio.c File Reference</h1><code>#include &lt;<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>&gt;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&quot;</code><br>
 <code>#include &lt;stdlib.h&gt;</code><br>
 <code>#include &lt;stdio.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_db_audio.c:<p><center><img src="lightmediascanner__db__audio_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_audio.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_db_audio.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__audio_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_audio.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db_audio.c_map">
-<area shape="rect" href="lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="297,107,447,133"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="276,56,468,83"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="519,107,687,133"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="524,157,681,184"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="776,107,904,133"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="737,157,943,184"></map>
+<area shape="rect" href="lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="292,84,471,111"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="33,84,268,111"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="188,161,388,188"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="412,161,604,188"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__db__audio_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -62,7 +63,7 @@ Include dependency graph for lightmediascanner_db_audio.c:<p><center><img src="l
           <td class="paramtype">array&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%">&nbsp;&nbsp;&nbsp;lms_db_table_update_if_required(db, name, LMS_ARRAY_SIZE(array), array)</td>
+          <td>&nbsp;&nbsp;&nbsp;lms_db_table_update_if_required(db, name, LMS_ARRAY_SIZE(array), array)</td>
         </tr>
       </table>
 </div>
@@ -70,8 +71,8 @@ Include dependency graph for lightmediascanner_db_audio.c:<p><center><img src="l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00204">204</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00254">254</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -94,7 +95,7 @@ Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.ht
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -111,14 +112,15 @@ This is usually called from plugin's <b>parse()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00648">648</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db_8h-source.html#l00087">lms_audio_info::id</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00694">694</a> of file <a class="el" href="lightmediascanner__db__audio_8c-source.html">lightmediascanner_db_audio.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db_8h-source.html#l00087">lms_audio_info::id</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:54 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index ddf4717..5296cfa 100644 (file)
@@ -1,6 +1,6 @@
-<area shape="rect" href="$lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="297,107,447,133">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="276,56,468,83">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="519,107,687,133">
-<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="524,157,681,184">
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="776,107,904,133">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="737,157,943,184">
+<area shape="rect" href="$lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="292,84,471,111">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="33,84,268,111">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="188,161,388,188">
+<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="412,161,604,188">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265">
index 71f8bc2..1776001 100644 (file)
@@ -1 +1 @@
-4c77f05e70422b3473612da15f99cfc5
\ No newline at end of file
+fba223fd34d103f160fb0e5fe2521392
\ No newline at end of file
index bd1c10d..1632b08 100644 (file)
Binary files a/www/api/lightmediascanner__db__audio_8c__incl.png and b/www/api/lightmediascanner__db__audio_8c__incl.png differ
index 02eabde..cce0170 100644 (file)
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<h1>src/lib/lightmediascanner_db_common.c</h1><a href="lightmediascanner__db__common_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
-<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
-<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
-<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;string.h&gt;</span>
-<a name="l00005"></a>00005 
-<a name="l00006"></a>00006 <span class="preprocessor">#if SQLITE_VERSION_NUMBER &lt; 3003009</span>
-<a name="l00007"></a>00007 <span class="preprocessor"></span><span class="keywordtype">int</span>
-<a name="l00008"></a><a class="code" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405">00008</a> <a class="code" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405">sqlite3_prepare_v2</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql, <span class="keywordtype">int</span> len, sqlite3_stmt **stmt, <span class="keyword">const</span> <span class="keywordtype">char</span> **tail)
-<a name="l00009"></a>00009 {
-<a name="l00010"></a>00010     <span class="keywordflow">return</span> sqlite3_prepare(db, sql, len, stmt, tail);
-<a name="l00011"></a>00011 }
-<a name="l00012"></a>00012 <span class="preprocessor">#endif </span><span class="comment">/* SQLITE_VERSION_NUMBER &lt; 3003009 */</span>
-<a name="l00013"></a>00013 
-<a name="l00014"></a>00014 <span class="preprocessor">#if SQLITE_VERSION_NUMBER &lt; 3003007</span>
-<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="keywordtype">int</span>
-<a name="l00016"></a><a class="code" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00">00016</a> <a class="code" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00">sqlite3_clear_bindings</a>(sqlite3_stmt *stmt)
-<a name="l00017"></a>00017 {
-<a name="l00018"></a>00018     <span class="keywordtype">int</span> i, last;
-<a name="l00019"></a>00019     <span class="keywordtype">int</span> rc;
-<a name="l00020"></a>00020 
-<a name="l00021"></a>00021     rc = SQLITE_OK;
-<a name="l00022"></a>00022     last = sqlite3_bind_parameter_count(stmt);
-<a name="l00023"></a>00023     <span class="keywordflow">for</span>(i = 1; rc == SQLITE_OK &amp;&amp; i &lt;= last; i++) {
-<a name="l00024"></a>00024         rc = sqlite3_bind_null(stmt, i);
-<a name="l00025"></a>00025     }
-<a name="l00026"></a>00026     <span class="keywordflow">return</span> rc;
-<a name="l00027"></a>00027 }
-<a name="l00028"></a>00028 <span class="preprocessor">#endif </span><span class="comment">/* SQLITE_VERSION_NUMBER &lt; 3003007 */</span>
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 <span class="preprocessor">#if SQLITE_VERSION_NUMBER &lt; 3003008</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="comment">/* Until 3.3.8 it doesn't support CREATE TRIGGER IF NOT EXISTS, so</span>
-<a name="l00032"></a>00032 <span class="comment"> * just ignore errors :-(</span>
-<a name="l00033"></a>00033 <span class="comment"> */</span>
-<a name="l00034"></a>00034 <span class="keywordtype">int</span>
-<a name="l00035"></a><a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">00035</a> <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql)
-<a name="l00036"></a>00036 {
-<a name="l00037"></a>00037     <span class="keywordtype">char</span> *errmsg, *query;
-<a name="l00038"></a>00038     <span class="keywordtype">int</span> r, sql_len, prefix_len;
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040     prefix_len = <span class="keyword">sizeof</span>(<span class="stringliteral">"CREATE TRIGGER "</span>) - 1;
-<a name="l00041"></a>00041     sql_len = strlen(sql);
-<a name="l00042"></a>00042     query = malloc((prefix_len + sql_len + 1) * <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));
-<a name="l00043"></a>00043     <span class="keywordflow">if</span> (!query)
-<a name="l00044"></a>00044         <span class="keywordflow">return</span> -1;
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046     memcpy(query, <span class="stringliteral">"CREATE TRIGGER "</span>, prefix_len);
-<a name="l00047"></a>00047     memcpy(query + prefix_len, sql, sql_len + 1);
-<a name="l00048"></a>00048     r = sqlite3_exec(db, query, NULL, NULL, &amp;errmsg);
-<a name="l00049"></a>00049     free(query);
-<a name="l00050"></a>00050     <span class="keywordflow">if</span> (r != SQLITE_OK)
-<a name="l00051"></a>00051         sqlite3_free(errmsg);
-<a name="l00052"></a>00052     <span class="keywordflow">return</span> 0;
-<a name="l00053"></a>00053 }
-<a name="l00054"></a>00054 <span class="preprocessor">#else </span><span class="comment">/* SQLITE_VERSION_NUMBER &lt; 3003008 */</span>
-<a name="l00055"></a>00055 <span class="keywordtype">int</span>
-<a name="l00056"></a>00056 <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql)
-<a name="l00057"></a>00057 {
-<a name="l00058"></a>00058     <span class="keywordtype">char</span> *errmsg, *query;
-<a name="l00059"></a>00059     <span class="keywordtype">int</span> r, sql_len, prefix_len;
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061     prefix_len = <span class="keyword">sizeof</span>(<span class="stringliteral">"CREATE TRIGGER IF NOT EXISTS "</span>) - 1;
-<a name="l00062"></a>00062     sql_len = strlen(sql);
-<a name="l00063"></a>00063     query = malloc((prefix_len + sql_len + 1) * <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));
-<a name="l00064"></a>00064     <span class="keywordflow">if</span> (!query)
-<a name="l00065"></a>00065         <span class="keywordflow">return</span> -1;
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067     memcpy(query, <span class="stringliteral">"CREATE TRIGGER IF NOT EXISTS "</span>, prefix_len);
-<a name="l00068"></a>00068     memcpy(query + prefix_len, sql, sql_len + 1);
-<a name="l00069"></a>00069     r = sqlite3_exec(db, query, NULL, NULL, &amp;errmsg);
-<a name="l00070"></a>00070     free(query);
-<a name="l00071"></a>00071     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00072"></a>00072         fprintf(stderr, <span class="stringliteral">"ERROR: could not create trigger: %s\n"</span>, errmsg);
-<a name="l00073"></a>00073         sqlite3_free(errmsg);
-<a name="l00074"></a>00074         <span class="keywordflow">return</span> -2;
-<a name="l00075"></a>00075     }
-<a name="l00076"></a>00076     <span class="keywordflow">return</span> 0;
-<a name="l00077"></a>00077 }
-<a name="l00078"></a>00078 <span class="preprocessor">#endif </span><span class="comment">/* SQLITE_VERSION_NUMBER &lt; 3003008 */</span>
-<a name="l00079"></a>00079 
-<a name="l00080"></a>00080 sqlite3_stmt *
-<a name="l00081"></a><a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">00081</a> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql)
-<a name="l00082"></a>00082 {
-<a name="l00083"></a>00083     sqlite3_stmt *stmt;
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405">sqlite3_prepare_v2</a>(db, sql, -1, &amp;stmt, NULL) != SQLITE_OK)
-<a name="l00086"></a>00086         fprintf(stderr, <span class="stringliteral">"ERROR: could not prepare \"%s\": %s\n"</span>, sql,
-<a name="l00087"></a>00087                 sqlite3_errmsg(db));
-<a name="l00088"></a>00088 
-<a name="l00089"></a>00089     <span class="keywordflow">return</span> stmt;
-<a name="l00090"></a>00090 }
-<a name="l00091"></a>00091 
-<a name="l00092"></a>00092 <span class="keywordtype">int</span>
-<a name="l00093"></a><a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">00093</a> <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
-<a name="l00094"></a>00094 {
-<a name="l00095"></a>00095     <span class="keywordtype">int</span> r;
-<a name="l00096"></a>00096 
-<a name="l00097"></a>00097     r = sqlite3_finalize(stmt);
-<a name="l00098"></a>00098     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00099"></a>00099         fprintf(stderr, <span class="stringliteral">"ERROR: could not finalize %s statement: #%d\n"</span>,
-<a name="l00100"></a>00100                 name, r);
-<a name="l00101"></a>00101         <span class="keywordflow">return</span> -1;
-<a name="l00102"></a>00102     }
-<a name="l00103"></a>00103 
-<a name="l00104"></a>00104     <span class="keywordflow">return</span> 0;
-<a name="l00105"></a>00105 }
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107 <span class="keywordtype">int</span>
-<a name="l00108"></a><a class="code" href="lightmediascanner__db__private_8h.html#ee78f418f0f3c9ead3023b1453c63556">00108</a> <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(sqlite3_stmt *stmt)
-<a name="l00109"></a>00109 {
-<a name="l00110"></a>00110     <span class="keywordtype">int</span> r, ret;
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>src/lib/lightmediascanner_db_common.c</h1><a href="lightmediascanner__db__common_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="preprocessor">#if SQLITE_VERSION_NUMBER &lt; 3003009</span>
+<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="keywordtype">int</span>
+<a name="l00028"></a><a class="code" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405">00028</a> <a class="code" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405">sqlite3_prepare_v2</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql, <span class="keywordtype">int</span> len, sqlite3_stmt **stmt, <span class="keyword">const</span> <span class="keywordtype">char</span> **tail)
+<a name="l00029"></a>00029 {
+<a name="l00030"></a>00030     <span class="keywordflow">return</span> sqlite3_prepare(db, sql, len, stmt, tail);
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032 <span class="preprocessor">#endif </span><span class="comment">/* SQLITE_VERSION_NUMBER &lt; 3003009 */</span>
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 <span class="preprocessor">#if SQLITE_VERSION_NUMBER &lt; 3003007</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="keywordtype">int</span>
+<a name="l00036"></a><a class="code" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00">00036</a> <a class="code" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00">sqlite3_clear_bindings</a>(sqlite3_stmt *stmt)
+<a name="l00037"></a>00037 {
+<a name="l00038"></a>00038     <span class="keywordtype">int</span> i, last;
+<a name="l00039"></a>00039     <span class="keywordtype">int</span> rc;
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041     rc = SQLITE_OK;
+<a name="l00042"></a>00042     last = sqlite3_bind_parameter_count(stmt);
+<a name="l00043"></a>00043     <span class="keywordflow">for</span>(i = 1; rc == SQLITE_OK &amp;&amp; i &lt;= last; i++) {
+<a name="l00044"></a>00044         rc = sqlite3_bind_null(stmt, i);
+<a name="l00045"></a>00045     }
+<a name="l00046"></a>00046     <span class="keywordflow">return</span> rc;
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048 <span class="preprocessor">#endif </span><span class="comment">/* SQLITE_VERSION_NUMBER &lt; 3003007 */</span>
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 <span class="preprocessor">#if SQLITE_VERSION_NUMBER &lt; 3003008</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="comment">/* Until 3.3.8 it doesn't support CREATE TRIGGER IF NOT EXISTS, so</span>
+<a name="l00052"></a>00052 <span class="comment"> * just ignore errors :-(</span>
+<a name="l00053"></a>00053 <span class="comment"> */</span>
+<a name="l00054"></a>00054 <span class="keywordtype">int</span>
+<a name="l00055"></a><a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">00055</a> <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057     <span class="keywordtype">char</span> *errmsg, *query;
+<a name="l00058"></a>00058     <span class="keywordtype">int</span> r, sql_len, prefix_len;
+<a name="l00059"></a>00059 
+<a name="l00060"></a>00060     prefix_len = <span class="keyword">sizeof</span>(<span class="stringliteral">"CREATE TRIGGER "</span>) - 1;
+<a name="l00061"></a>00061     sql_len = strlen(sql);
+<a name="l00062"></a>00062     query = malloc((prefix_len + sql_len + 1) * <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));
+<a name="l00063"></a>00063     <span class="keywordflow">if</span> (!query)
+<a name="l00064"></a>00064         <span class="keywordflow">return</span> -1;
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066     memcpy(query, <span class="stringliteral">"CREATE TRIGGER "</span>, prefix_len);
+<a name="l00067"></a>00067     memcpy(query + prefix_len, sql, sql_len + 1);
+<a name="l00068"></a>00068     r = sqlite3_exec(db, query, NULL, NULL, &amp;errmsg);
+<a name="l00069"></a>00069     free(query);
+<a name="l00070"></a>00070     <span class="keywordflow">if</span> (r != SQLITE_OK)
+<a name="l00071"></a>00071         sqlite3_free(errmsg);
+<a name="l00072"></a>00072     <span class="keywordflow">return</span> 0;
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074 <span class="preprocessor">#else </span><span class="comment">/* SQLITE_VERSION_NUMBER &lt; 3003008 */</span>
+<a name="l00075"></a>00075 <span class="keywordtype">int</span>
+<a name="l00076"></a>00076 <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql)
+<a name="l00077"></a>00077 {
+<a name="l00078"></a>00078     <span class="keywordtype">char</span> *errmsg, *query;
+<a name="l00079"></a>00079     <span class="keywordtype">int</span> r, sql_len, prefix_len;
+<a name="l00080"></a>00080 
+<a name="l00081"></a>00081     prefix_len = <span class="keyword">sizeof</span>(<span class="stringliteral">"CREATE TRIGGER IF NOT EXISTS "</span>) - 1;
+<a name="l00082"></a>00082     sql_len = strlen(sql);
+<a name="l00083"></a>00083     query = malloc((prefix_len + sql_len + 1) * <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));
+<a name="l00084"></a>00084     <span class="keywordflow">if</span> (!query)
+<a name="l00085"></a>00085         <span class="keywordflow">return</span> -1;
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087     memcpy(query, <span class="stringliteral">"CREATE TRIGGER IF NOT EXISTS "</span>, prefix_len);
+<a name="l00088"></a>00088     memcpy(query + prefix_len, sql, sql_len + 1);
+<a name="l00089"></a>00089     r = sqlite3_exec(db, query, NULL, NULL, &amp;errmsg);
+<a name="l00090"></a>00090     free(query);
+<a name="l00091"></a>00091     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00092"></a>00092         fprintf(stderr, <span class="stringliteral">"ERROR: could not create trigger: %s\n"</span>, errmsg);
+<a name="l00093"></a>00093         sqlite3_free(errmsg);
+<a name="l00094"></a>00094         <span class="keywordflow">return</span> -2;
+<a name="l00095"></a>00095     }
+<a name="l00096"></a>00096     <span class="keywordflow">return</span> 0;
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098 <span class="preprocessor">#endif </span><span class="comment">/* SQLITE_VERSION_NUMBER &lt; 3003008 */</span>
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100 sqlite3_stmt *
+<a name="l00101"></a><a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">00101</a> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *sql)
+<a name="l00102"></a>00102 {
+<a name="l00103"></a>00103     sqlite3_stmt *stmt;
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405">sqlite3_prepare_v2</a>(db, sql, -1, &amp;stmt, NULL) != SQLITE_OK)
+<a name="l00106"></a>00106         fprintf(stderr, <span class="stringliteral">"ERROR: could not prepare \"%s\": %s\n"</span>, sql,
+<a name="l00107"></a>00107                 sqlite3_errmsg(db));
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109     <span class="keywordflow">return</span> stmt;
+<a name="l00110"></a>00110 }
 <a name="l00111"></a>00111 
-<a name="l00112"></a>00112     ret = r = sqlite3_reset(stmt);
-<a name="l00113"></a>00113     <span class="keywordflow">if</span> (r != SQLITE_OK)
-<a name="l00114"></a>00114         fprintf(stderr, <span class="stringliteral">"ERROR: could not reset SQL statement: #%d\n"</span>, r);
-<a name="l00115"></a>00115 
-<a name="l00116"></a>00116     r = <a class="code" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00">sqlite3_clear_bindings</a>(stmt);
-<a name="l00117"></a>00117     ret += r;
-<a name="l00118"></a>00118     <span class="keywordflow">if</span> (r != SQLITE_OK)
-<a name="l00119"></a>00119         fprintf(stderr, <span class="stringliteral">"ERROR: could not clear SQL: #%d\n"</span>, r);
-<a name="l00120"></a>00120 
-<a name="l00121"></a>00121     <span class="keywordflow">return</span> ret;
-<a name="l00122"></a>00122 }
+<a name="l00112"></a>00112 <span class="keywordtype">int</span>
+<a name="l00113"></a><a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">00113</a> <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
+<a name="l00114"></a>00114 {
+<a name="l00115"></a>00115     <span class="keywordtype">int</span> r;
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117     r = sqlite3_finalize(stmt);
+<a name="l00118"></a>00118     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00119"></a>00119         fprintf(stderr, <span class="stringliteral">"ERROR: could not finalize %s statement: #%d\n"</span>,
+<a name="l00120"></a>00120                 name, r);
+<a name="l00121"></a>00121         <span class="keywordflow">return</span> -1;
+<a name="l00122"></a>00122     }
 <a name="l00123"></a>00123 
-<a name="l00124"></a>00124 <span class="keywordtype">int</span>
-<a name="l00125"></a><a class="code" href="lightmediascanner__db__private_8h.html#14d56e02624ad6130bc59ae9bb950ac3">00125</a> <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, <span class="keyword">const</span> <span class="keywordtype">char</span> *text, <span class="keywordtype">int</span> len)
-<a name="l00126"></a>00126 {
-<a name="l00127"></a>00127     <span class="keywordtype">int</span> r;
-<a name="l00128"></a>00128 
-<a name="l00129"></a>00129     <span class="keywordflow">if</span> (text)
-<a name="l00130"></a>00130         r = sqlite3_bind_text(stmt, col, text, len, SQLITE_STATIC);
-<a name="l00131"></a>00131     <span class="keywordflow">else</span>
-<a name="l00132"></a>00132         r = sqlite3_bind_null(stmt, col);
-<a name="l00133"></a>00133 
-<a name="l00134"></a>00134     <span class="keywordflow">if</span> (r == SQLITE_OK)
-<a name="l00135"></a>00135         <span class="keywordflow">return</span> 0;
-<a name="l00136"></a>00136     <span class="keywordflow">else</span> {
-<a name="l00137"></a>00137         sqlite3 *db;
-<a name="l00138"></a>00138         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
-<a name="l00139"></a>00139 
-<a name="l00140"></a>00140         db = sqlite3_db_handle(stmt);
-<a name="l00141"></a>00141         err = sqlite3_errmsg(db);
-<a name="l00142"></a>00142         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
-<a name="l00143"></a>00143         <span class="keywordflow">return</span> -col;
-<a name="l00144"></a>00144     }
-<a name="l00145"></a>00145 }
-<a name="l00146"></a>00146 
-<a name="l00147"></a>00147 <span class="keywordtype">int</span>
-<a name="l00148"></a><a class="code" href="lightmediascanner__db__private_8h.html#7fd514b582578c18a25cdbf6c561243c">00148</a> <a class="code" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lms_db_bind_blob</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, <span class="keyword">const</span> <span class="keywordtype">void</span> *blob, <span class="keywordtype">int</span> len)
-<a name="l00149"></a>00149 {
-<a name="l00150"></a>00150     <span class="keywordtype">int</span> r;
-<a name="l00151"></a>00151 
-<a name="l00152"></a>00152     <span class="keywordflow">if</span> (blob)
-<a name="l00153"></a>00153         r = sqlite3_bind_blob(stmt, col, blob, len, SQLITE_STATIC);
-<a name="l00154"></a>00154     <span class="keywordflow">else</span>
-<a name="l00155"></a>00155         r = sqlite3_bind_null(stmt, col);
-<a name="l00156"></a>00156 
-<a name="l00157"></a>00157     <span class="keywordflow">if</span> (r == SQLITE_OK)
-<a name="l00158"></a>00158         <span class="keywordflow">return</span> 0;
-<a name="l00159"></a>00159     <span class="keywordflow">else</span> {
-<a name="l00160"></a>00160         sqlite3 *db;
-<a name="l00161"></a>00161         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
-<a name="l00162"></a>00162 
-<a name="l00163"></a>00163         db = sqlite3_db_handle(stmt);
-<a name="l00164"></a>00164         err = sqlite3_errmsg(db);
-<a name="l00165"></a>00165         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
-<a name="l00166"></a>00166         <span class="keywordflow">return</span> -col;
-<a name="l00167"></a>00167     }
-<a name="l00168"></a>00168 }
-<a name="l00169"></a>00169 
-<a name="l00170"></a>00170 <span class="keywordtype">int</span>
-<a name="l00171"></a><a class="code" href="lightmediascanner__db__private_8h.html#bbb18d7cc44f7e363c0f240849d72c31">00171</a> <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, int64_t value)
-<a name="l00172"></a>00172 {
-<a name="l00173"></a>00173     <span class="keywordtype">int</span> r;
-<a name="l00174"></a>00174 
-<a name="l00175"></a>00175     r = sqlite3_bind_int64(stmt, col, value);
-<a name="l00176"></a>00176     <span class="keywordflow">if</span> (r == SQLITE_OK)
-<a name="l00177"></a>00177         <span class="keywordflow">return</span> 0;
-<a name="l00178"></a>00178     <span class="keywordflow">else</span> {
-<a name="l00179"></a>00179         sqlite3 *db;
-<a name="l00180"></a>00180         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
-<a name="l00181"></a>00181 
-<a name="l00182"></a>00182         db = sqlite3_db_handle(stmt);
-<a name="l00183"></a>00183         err = sqlite3_errmsg(db);
-<a name="l00184"></a>00184         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
-<a name="l00185"></a>00185         <span class="keywordflow">return</span> -col;
-<a name="l00186"></a>00186     }
-<a name="l00187"></a>00187 }
-<a name="l00188"></a>00188 
-<a name="l00189"></a>00189 <span class="keywordtype">int</span>
-<a name="l00190"></a><a class="code" href="lightmediascanner__db__private_8h.html#cd7006f0271b9a47937dc2d2ae5480fe">00190</a> <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, int64_t *p_value)
-<a name="l00191"></a>00191 {
-<a name="l00192"></a>00192     <span class="keywordtype">int</span> r;
-<a name="l00193"></a>00193 
-<a name="l00194"></a>00194     <span class="keywordflow">if</span> (p_value)
-<a name="l00195"></a>00195         r = sqlite3_bind_int64(stmt, col, *p_value);
-<a name="l00196"></a>00196     <span class="keywordflow">else</span>
-<a name="l00197"></a>00197         r = sqlite3_bind_null(stmt, col);
-<a name="l00198"></a>00198     <span class="keywordflow">if</span> (r == SQLITE_OK)
-<a name="l00199"></a>00199         <span class="keywordflow">return</span> 0;
-<a name="l00200"></a>00200     <span class="keywordflow">else</span> {
-<a name="l00201"></a>00201         sqlite3 *db;
-<a name="l00202"></a>00202         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
-<a name="l00203"></a>00203 
-<a name="l00204"></a>00204         db = sqlite3_db_handle(stmt);
-<a name="l00205"></a>00205         err = sqlite3_errmsg(db);
-<a name="l00206"></a>00206         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
-<a name="l00207"></a>00207         <span class="keywordflow">return</span> -col;
-<a name="l00208"></a>00208     }
-<a name="l00209"></a>00209 }
-<a name="l00210"></a>00210 
-<a name="l00211"></a>00211 <span class="keywordtype">int</span>
-<a name="l00212"></a><a class="code" href="lightmediascanner__db__private_8h.html#37815f859116b46089bea4ba84bb23d2">00212</a> <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, <span class="keywordtype">int</span> value)
-<a name="l00213"></a>00213 {
-<a name="l00214"></a>00214     <span class="keywordtype">int</span> r;
-<a name="l00215"></a>00215 
-<a name="l00216"></a>00216     r = sqlite3_bind_int(stmt, col, value);
-<a name="l00217"></a>00217     <span class="keywordflow">if</span> (r == SQLITE_OK)
-<a name="l00218"></a>00218         <span class="keywordflow">return</span> 0;
-<a name="l00219"></a>00219     <span class="keywordflow">else</span> {
-<a name="l00220"></a>00220         sqlite3 *db;
-<a name="l00221"></a>00221         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
-<a name="l00222"></a>00222 
-<a name="l00223"></a>00223         db = sqlite3_db_handle(stmt);
-<a name="l00224"></a>00224         err = sqlite3_errmsg(db);
-<a name="l00225"></a>00225         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
-<a name="l00226"></a>00226         <span class="keywordflow">return</span> -col;
-<a name="l00227"></a>00227     }
-<a name="l00228"></a>00228 }
-<a name="l00229"></a>00229 
-<a name="l00230"></a>00230 <span class="keywordtype">int</span>
-<a name="l00231"></a><a class="code" href="lightmediascanner__db__private_8h.html#9e78297037179998924354e73ca69349">00231</a> <a class="code" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lms_db_bind_double</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, <span class="keywordtype">double</span> value)
-<a name="l00232"></a>00232 {
-<a name="l00233"></a>00233     <span class="keywordtype">int</span> r;
-<a name="l00234"></a>00234 
-<a name="l00235"></a>00235     r = sqlite3_bind_double(stmt, col, value);
-<a name="l00236"></a>00236     <span class="keywordflow">if</span> (r == SQLITE_OK)
-<a name="l00237"></a>00237         <span class="keywordflow">return</span> 0;
-<a name="l00238"></a>00238     <span class="keywordflow">else</span> {
-<a name="l00239"></a>00239         sqlite3 *db;
-<a name="l00240"></a>00240         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
-<a name="l00241"></a>00241 
-<a name="l00242"></a>00242         db = sqlite3_db_handle(stmt);
-<a name="l00243"></a>00243         err = sqlite3_errmsg(db);
-<a name="l00244"></a>00244         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
-<a name="l00245"></a>00245         <span class="keywordflow">return</span> -col;
-<a name="l00246"></a>00246     }
-<a name="l00247"></a>00247 }
-<a name="l00248"></a>00248 
-<a name="l00249"></a>00249 <span class="keywordtype">int</span>
-<a name="l00250"></a><a class="code" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">00250</a> <a class="code" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">lms_db_table_version_get</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table)
-<a name="l00251"></a>00251 {
-<a name="l00252"></a>00252     <span class="keywordtype">int</span> r, version;
-<a name="l00253"></a>00253     sqlite3_stmt *stmt;
+<a name="l00124"></a>00124     <span class="keywordflow">return</span> 0;
+<a name="l00125"></a>00125 }
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127 <span class="keywordtype">int</span>
+<a name="l00128"></a><a class="code" href="lightmediascanner__db__private_8h.html#ee78f418f0f3c9ead3023b1453c63556">00128</a> <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(sqlite3_stmt *stmt)
+<a name="l00129"></a>00129 {
+<a name="l00130"></a>00130     <span class="keywordtype">int</span> r, ret;
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132     ret = r = sqlite3_reset(stmt);
+<a name="l00133"></a>00133     <span class="keywordflow">if</span> (r != SQLITE_OK)
+<a name="l00134"></a>00134         fprintf(stderr, <span class="stringliteral">"ERROR: could not reset SQL statement: #%d\n"</span>, r);
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136     r = <a class="code" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00">sqlite3_clear_bindings</a>(stmt);
+<a name="l00137"></a>00137     ret += r;
+<a name="l00138"></a>00138     <span class="keywordflow">if</span> (r != SQLITE_OK)
+<a name="l00139"></a>00139         fprintf(stderr, <span class="stringliteral">"ERROR: could not clear SQL: #%d\n"</span>, r);
+<a name="l00140"></a>00140 
+<a name="l00141"></a>00141     <span class="keywordflow">return</span> ret;
+<a name="l00142"></a>00142 }
+<a name="l00143"></a>00143 
+<a name="l00144"></a>00144 <span class="keywordtype">int</span>
+<a name="l00145"></a><a class="code" href="lightmediascanner__db__private_8h.html#14d56e02624ad6130bc59ae9bb950ac3">00145</a> <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, <span class="keyword">const</span> <span class="keywordtype">char</span> *text, <span class="keywordtype">int</span> len)
+<a name="l00146"></a>00146 {
+<a name="l00147"></a>00147     <span class="keywordtype">int</span> r;
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149     <span class="keywordflow">if</span> (text)
+<a name="l00150"></a>00150         r = sqlite3_bind_text(stmt, col, text, len, SQLITE_STATIC);
+<a name="l00151"></a>00151     <span class="keywordflow">else</span>
+<a name="l00152"></a>00152         r = sqlite3_bind_null(stmt, col);
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154     <span class="keywordflow">if</span> (r == SQLITE_OK)
+<a name="l00155"></a>00155         <span class="keywordflow">return</span> 0;
+<a name="l00156"></a>00156     <span class="keywordflow">else</span> {
+<a name="l00157"></a>00157         sqlite3 *db;
+<a name="l00158"></a>00158         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160         db = sqlite3_db_handle(stmt);
+<a name="l00161"></a>00161         err = sqlite3_errmsg(db);
+<a name="l00162"></a>00162         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
+<a name="l00163"></a>00163         <span class="keywordflow">return</span> -col;
+<a name="l00164"></a>00164     }
+<a name="l00165"></a>00165 }
+<a name="l00166"></a>00166 
+<a name="l00167"></a>00167 <span class="keywordtype">int</span>
+<a name="l00168"></a><a class="code" href="lightmediascanner__db__private_8h.html#7fd514b582578c18a25cdbf6c561243c">00168</a> <a class="code" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lms_db_bind_blob</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, <span class="keyword">const</span> <span class="keywordtype">void</span> *blob, <span class="keywordtype">int</span> len)
+<a name="l00169"></a>00169 {
+<a name="l00170"></a>00170     <span class="keywordtype">int</span> r;
+<a name="l00171"></a>00171 
+<a name="l00172"></a>00172     <span class="keywordflow">if</span> (blob)
+<a name="l00173"></a>00173         r = sqlite3_bind_blob(stmt, col, blob, len, SQLITE_STATIC);
+<a name="l00174"></a>00174     <span class="keywordflow">else</span>
+<a name="l00175"></a>00175         r = sqlite3_bind_null(stmt, col);
+<a name="l00176"></a>00176 
+<a name="l00177"></a>00177     <span class="keywordflow">if</span> (r == SQLITE_OK)
+<a name="l00178"></a>00178         <span class="keywordflow">return</span> 0;
+<a name="l00179"></a>00179     <span class="keywordflow">else</span> {
+<a name="l00180"></a>00180         sqlite3 *db;
+<a name="l00181"></a>00181         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
+<a name="l00182"></a>00182 
+<a name="l00183"></a>00183         db = sqlite3_db_handle(stmt);
+<a name="l00184"></a>00184         err = sqlite3_errmsg(db);
+<a name="l00185"></a>00185         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
+<a name="l00186"></a>00186         <span class="keywordflow">return</span> -col;
+<a name="l00187"></a>00187     }
+<a name="l00188"></a>00188 }
+<a name="l00189"></a>00189 
+<a name="l00190"></a>00190 <span class="keywordtype">int</span>
+<a name="l00191"></a><a class="code" href="lightmediascanner__db__private_8h.html#bbb18d7cc44f7e363c0f240849d72c31">00191</a> <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, int64_t value)
+<a name="l00192"></a>00192 {
+<a name="l00193"></a>00193     <span class="keywordtype">int</span> r;
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195     r = sqlite3_bind_int64(stmt, col, value);
+<a name="l00196"></a>00196     <span class="keywordflow">if</span> (r == SQLITE_OK)
+<a name="l00197"></a>00197         <span class="keywordflow">return</span> 0;
+<a name="l00198"></a>00198     <span class="keywordflow">else</span> {
+<a name="l00199"></a>00199         sqlite3 *db;
+<a name="l00200"></a>00200         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202         db = sqlite3_db_handle(stmt);
+<a name="l00203"></a>00203         err = sqlite3_errmsg(db);
+<a name="l00204"></a>00204         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
+<a name="l00205"></a>00205         <span class="keywordflow">return</span> -col;
+<a name="l00206"></a>00206     }
+<a name="l00207"></a>00207 }
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209 <span class="keywordtype">int</span>
+<a name="l00210"></a><a class="code" href="lightmediascanner__db__private_8h.html#cd7006f0271b9a47937dc2d2ae5480fe">00210</a> <a class="code" href="lightmediascanner__db__common_8c.html#2a0a5d3a27fdee8508b2b0cc59979417">lms_db_bind_int64_or_null</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, int64_t *p_value)
+<a name="l00211"></a>00211 {
+<a name="l00212"></a>00212     <span class="keywordtype">int</span> r;
+<a name="l00213"></a>00213 
+<a name="l00214"></a>00214     <span class="keywordflow">if</span> (p_value)
+<a name="l00215"></a>00215         r = sqlite3_bind_int64(stmt, col, *p_value);
+<a name="l00216"></a>00216     <span class="keywordflow">else</span>
+<a name="l00217"></a>00217         r = sqlite3_bind_null(stmt, col);
+<a name="l00218"></a>00218     <span class="keywordflow">if</span> (r == SQLITE_OK)
+<a name="l00219"></a>00219         <span class="keywordflow">return</span> 0;
+<a name="l00220"></a>00220     <span class="keywordflow">else</span> {
+<a name="l00221"></a>00221         sqlite3 *db;
+<a name="l00222"></a>00222         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
+<a name="l00223"></a>00223 
+<a name="l00224"></a>00224         db = sqlite3_db_handle(stmt);
+<a name="l00225"></a>00225         err = sqlite3_errmsg(db);
+<a name="l00226"></a>00226         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
+<a name="l00227"></a>00227         <span class="keywordflow">return</span> -col;
+<a name="l00228"></a>00228     }
+<a name="l00229"></a>00229 }
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231 <span class="keywordtype">int</span>
+<a name="l00232"></a><a class="code" href="lightmediascanner__db__private_8h.html#37815f859116b46089bea4ba84bb23d2">00232</a> <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, <span class="keywordtype">int</span> value)
+<a name="l00233"></a>00233 {
+<a name="l00234"></a>00234     <span class="keywordtype">int</span> r;
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236     r = sqlite3_bind_int(stmt, col, value);
+<a name="l00237"></a>00237     <span class="keywordflow">if</span> (r == SQLITE_OK)
+<a name="l00238"></a>00238         <span class="keywordflow">return</span> 0;
+<a name="l00239"></a>00239     <span class="keywordflow">else</span> {
+<a name="l00240"></a>00240         sqlite3 *db;
+<a name="l00241"></a>00241         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243         db = sqlite3_db_handle(stmt);
+<a name="l00244"></a>00244         err = sqlite3_errmsg(db);
+<a name="l00245"></a>00245         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
+<a name="l00246"></a>00246         <span class="keywordflow">return</span> -col;
+<a name="l00247"></a>00247     }
+<a name="l00248"></a>00248 }
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250 <span class="keywordtype">int</span>
+<a name="l00251"></a><a class="code" href="lightmediascanner__db__private_8h.html#9e78297037179998924354e73ca69349">00251</a> <a class="code" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lms_db_bind_double</a>(sqlite3_stmt *stmt, <span class="keywordtype">int</span> col, <span class="keywordtype">double</span> value)
+<a name="l00252"></a>00252 {
+<a name="l00253"></a>00253     <span class="keywordtype">int</span> r;
 <a name="l00254"></a>00254 
-<a name="l00255"></a>00255     stmt = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
-<a name="l00256"></a>00256          <span class="stringliteral">"SELECT version FROM lms_internal WHERE tab = ?"</span>);
-<a name="l00257"></a>00257     <span class="keywordflow">if</span> (!stmt)
-<a name="l00258"></a>00258         <span class="keywordflow">return</span> -1;
-<a name="l00259"></a>00259 
-<a name="l00260"></a>00260     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, table, -1) != 0) {
-<a name="l00261"></a>00261         version = -1;
-<a name="l00262"></a>00262         <span class="keywordflow">goto</span> done;
-<a name="l00263"></a>00263     }
-<a name="l00264"></a>00264 
-<a name="l00265"></a>00265     r = sqlite3_step(stmt);
-<a name="l00266"></a>00266     <span class="keywordflow">if</span> (r == SQLITE_DONE)
-<a name="l00267"></a>00267         version = 0;
-<a name="l00268"></a>00268     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r == SQLITE_ROW)
-<a name="l00269"></a>00269         version = sqlite3_column_int(stmt, 1);
-<a name="l00270"></a>00270     <span class="keywordflow">else</span> {
-<a name="l00271"></a>00271         version = -1;
-<a name="l00272"></a>00272         fprintf(stderr, <span class="stringliteral">"ERROR: could not get table '%s' version: %s\n"</span>,
-<a name="l00273"></a>00273                 table, sqlite3_errmsg(db));
-<a name="l00274"></a>00274     }
-<a name="l00275"></a>00275 
-<a name="l00276"></a>00276   done:
-<a name="l00277"></a>00277     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00278"></a>00278     <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(stmt, <span class="stringliteral">"table_version_get"</span>);
+<a name="l00255"></a>00255     r = sqlite3_bind_double(stmt, col, value);
+<a name="l00256"></a>00256     <span class="keywordflow">if</span> (r == SQLITE_OK)
+<a name="l00257"></a>00257         <span class="keywordflow">return</span> 0;
+<a name="l00258"></a>00258     <span class="keywordflow">else</span> {
+<a name="l00259"></a>00259         sqlite3 *db;
+<a name="l00260"></a>00260         <span class="keyword">const</span> <span class="keywordtype">char</span> *err;
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262         db = sqlite3_db_handle(stmt);
+<a name="l00263"></a>00263         err = sqlite3_errmsg(db);
+<a name="l00264"></a>00264         fprintf(stderr, <span class="stringliteral">"ERROR: could not bind SQL value %d: %s\n"</span>, col, err);
+<a name="l00265"></a>00265         <span class="keywordflow">return</span> -col;
+<a name="l00266"></a>00266     }
+<a name="l00267"></a>00267 }
+<a name="l00268"></a>00268 
+<a name="l00269"></a>00269 <span class="keywordtype">int</span>
+<a name="l00270"></a><a class="code" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">00270</a> <a class="code" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">lms_db_table_version_get</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table)
+<a name="l00271"></a>00271 {
+<a name="l00272"></a>00272     <span class="keywordtype">int</span> r, version;
+<a name="l00273"></a>00273     sqlite3_stmt *stmt;
+<a name="l00274"></a>00274 
+<a name="l00275"></a>00275     stmt = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
+<a name="l00276"></a>00276          <span class="stringliteral">"SELECT version FROM lms_internal WHERE tab = ?"</span>);
+<a name="l00277"></a>00277     <span class="keywordflow">if</span> (!stmt)
+<a name="l00278"></a>00278         <span class="keywordflow">return</span> -1;
 <a name="l00279"></a>00279 
-<a name="l00280"></a>00280     <span class="keywordflow">return</span> version;
-<a name="l00281"></a>00281 }
-<a name="l00282"></a>00282 
-<a name="l00283"></a>00283 <span class="keywordtype">int</span>
-<a name="l00284"></a><a class="code" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">00284</a> <a class="code" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lms_db_table_version_set</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> version)
-<a name="l00285"></a>00285 {
-<a name="l00286"></a>00286     <span class="keywordtype">int</span> r, ret;
-<a name="l00287"></a>00287     sqlite3_stmt *stmt;
-<a name="l00288"></a>00288 
-<a name="l00289"></a>00289     stmt = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
-<a name="l00290"></a>00290         <span class="stringliteral">"INSERT OR REPLACE INTO lms_internal (tab, version) VALUES (?, ?)"</span>);
-<a name="l00291"></a>00291     <span class="keywordflow">if</span> (!stmt)
-<a name="l00292"></a>00292         <span class="keywordflow">return</span> -1;
-<a name="l00293"></a>00293 
-<a name="l00294"></a>00294     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, table, -1);
-<a name="l00295"></a>00295     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00296"></a>00296         <span class="keywordflow">goto</span> done;
-<a name="l00297"></a>00297 
-<a name="l00298"></a>00298     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 2, version);
-<a name="l00299"></a>00299     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00300"></a>00300         <span class="keywordflow">goto</span> done;
-<a name="l00301"></a>00301 
-<a name="l00302"></a>00302     r = sqlite3_step(stmt);
-<a name="l00303"></a>00303     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00304"></a>00304         ret = -1;
-<a name="l00305"></a>00305         fprintf(stderr, <span class="stringliteral">"ERROR: could not set table '%s' version: %s\n"</span>,
-<a name="l00306"></a>00306                 table, sqlite3_errmsg(db));
-<a name="l00307"></a>00307     }
+<a name="l00280"></a>00280     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, table, -1) != 0) {
+<a name="l00281"></a>00281         version = -1;
+<a name="l00282"></a>00282         <span class="keywordflow">goto</span> done;
+<a name="l00283"></a>00283     }
+<a name="l00284"></a>00284 
+<a name="l00285"></a>00285     r = sqlite3_step(stmt);
+<a name="l00286"></a>00286     <span class="keywordflow">if</span> (r == SQLITE_DONE)
+<a name="l00287"></a>00287         version = 0;
+<a name="l00288"></a>00288     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r == SQLITE_ROW)
+<a name="l00289"></a>00289         version = sqlite3_column_int(stmt, 0);
+<a name="l00290"></a>00290     <span class="keywordflow">else</span> {
+<a name="l00291"></a>00291         version = -1;
+<a name="l00292"></a>00292         fprintf(stderr, <span class="stringliteral">"ERROR: could not get table '%s' version: %s\n"</span>,
+<a name="l00293"></a>00293                 table, sqlite3_errmsg(db));
+<a name="l00294"></a>00294     }
+<a name="l00295"></a>00295 
+<a name="l00296"></a>00296   done:
+<a name="l00297"></a>00297     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00298"></a>00298     <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(stmt, <span class="stringliteral">"table_version_get"</span>);
+<a name="l00299"></a>00299 
+<a name="l00300"></a>00300     <span class="keywordflow">return</span> version;
+<a name="l00301"></a>00301 }
+<a name="l00302"></a>00302 
+<a name="l00303"></a>00303 <span class="keywordtype">int</span>
+<a name="l00304"></a><a class="code" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">00304</a> <a class="code" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lms_db_table_version_set</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> version)
+<a name="l00305"></a>00305 {
+<a name="l00306"></a>00306     <span class="keywordtype">int</span> r, ret;
+<a name="l00307"></a>00307     sqlite3_stmt *stmt;
 <a name="l00308"></a>00308 
-<a name="l00309"></a>00309   done:
-<a name="l00310"></a>00310     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00311"></a>00311     <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(stmt, <span class="stringliteral">"table_version_set"</span>);
-<a name="l00312"></a>00312 
-<a name="l00313"></a>00313     <span class="keywordflow">return</span> ret;
-<a name="l00314"></a>00314 }
-<a name="l00315"></a>00315 
-<a name="l00316"></a>00316 <span class="keywordtype">int</span>
-<a name="l00317"></a><a class="code" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">00317</a> <a class="code" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lms_db_table_update</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last_version, <span class="keyword">const</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *updaters)
-<a name="l00318"></a>00318 {
-<a name="l00319"></a>00319     <span class="keywordflow">if</span> (current_version == last_version)
-<a name="l00320"></a>00320         <span class="keywordflow">return</span> 0;
-<a name="l00321"></a>00321     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (current_version &gt; last_version) {
-<a name="l00322"></a>00322         fprintf(stderr,
-<a name="l00323"></a>00323                 <span class="stringliteral">"WARNING: current version (%d) of table '%s' is greater than "</span>
-<a name="l00324"></a>00324                 <span class="stringliteral">"last known version (%d), no updates will be made.\n"</span>,
-<a name="l00325"></a>00325                 current_version, table, last_version);
-<a name="l00326"></a>00326         <span class="keywordflow">return</span> 0;
+<a name="l00309"></a>00309     stmt = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
+<a name="l00310"></a>00310         <span class="stringliteral">"INSERT OR REPLACE INTO lms_internal (tab, version) VALUES (?, ?)"</span>);
+<a name="l00311"></a>00311     <span class="keywordflow">if</span> (!stmt)
+<a name="l00312"></a>00312         <span class="keywordflow">return</span> -1;
+<a name="l00313"></a>00313 
+<a name="l00314"></a>00314     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 1, table, -1);
+<a name="l00315"></a>00315     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00316"></a>00316         <span class="keywordflow">goto</span> done;
+<a name="l00317"></a>00317 
+<a name="l00318"></a>00318     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 2, version);
+<a name="l00319"></a>00319     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00320"></a>00320         <span class="keywordflow">goto</span> done;
+<a name="l00321"></a>00321 
+<a name="l00322"></a>00322     r = sqlite3_step(stmt);
+<a name="l00323"></a>00323     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00324"></a>00324         ret = -1;
+<a name="l00325"></a>00325         fprintf(stderr, <span class="stringliteral">"ERROR: could not set table '%s' version: %s\n"</span>,
+<a name="l00326"></a>00326                 table, sqlite3_errmsg(db));
 <a name="l00327"></a>00327     }
 <a name="l00328"></a>00328 
-<a name="l00329"></a>00329     <span class="keywordflow">for</span> (; current_version &lt; last_version; current_version++) {
-<a name="l00330"></a>00330         <span class="keywordtype">int</span> r, is_last_run;
-<a name="l00331"></a>00331 
-<a name="l00332"></a>00332         is_last_run = current_version == (last_version - 1);
-<a name="l00333"></a>00333         r = updaters[current_version](db, table, current_version, is_last_run);
-<a name="l00334"></a>00334         <span class="keywordflow">if</span> (r != 0) {
-<a name="l00335"></a>00335             fprintf(stderr,
-<a name="l00336"></a>00336                     <span class="stringliteral">"ERROR: could not update table '%s' from version %d-&gt;%d\n"</span>,
-<a name="l00337"></a>00337                     table, current_version, current_version + 1);
-<a name="l00338"></a>00338             <span class="keywordflow">return</span> r;
-<a name="l00339"></a>00339         }
-<a name="l00340"></a>00340         <a class="code" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lms_db_table_version_set</a>(db, table, current_version + 1);
-<a name="l00341"></a>00341     }
-<a name="l00342"></a>00342 
-<a name="l00343"></a>00343     <span class="keywordflow">return</span> 0;
-<a name="l00344"></a>00344 }
-<a name="l00345"></a>00345 
-<a name="l00346"></a>00346 <span class="keywordtype">int</span>
-<a name="l00347"></a><a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">00347</a> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last_version, <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *updaters)
-<a name="l00348"></a>00348 {
-<a name="l00349"></a>00349     <span class="keywordtype">int</span> current_version;
-<a name="l00350"></a>00350 
-<a name="l00351"></a>00351     current_version = <a class="code" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">lms_db_table_version_get</a>(db, table);
-<a name="l00352"></a>00352     <span class="keywordflow">if</span> (current_version &lt; 0)
-<a name="l00353"></a>00353         <span class="keywordflow">return</span> -1;
-<a name="l00354"></a>00354     <span class="keywordflow">else</span>
-<a name="l00355"></a>00355         <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lms_db_table_update</a>(db, table, current_version, last_version,
-<a name="l00356"></a>00356                                    updaters);
-<a name="l00357"></a>00357 }
-<a name="l00358"></a>00358 
-<a name="l00359"></a>00359 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00360"></a>00360 lms_db_cache_find_db(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keyword">const</span> sqlite3 *db)
-<a name="l00361"></a>00361 {
-<a name="l00362"></a>00362     <span class="keywordtype">int</span> i;
-<a name="l00363"></a>00363 
-<a name="l00364"></a>00364     <span class="keywordflow">for</span> (i = 0; i &lt; cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a>; i++)
-<a name="l00365"></a>00365         <span class="keywordflow">if</span> (cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>[i].<a class="code" href="structlms__db__cache__entry.html#01aadf6d9a8161696019d39566b15760">db</a> == db)
-<a name="l00366"></a>00366             <span class="keywordflow">return</span> i;
-<a name="l00367"></a>00367 
-<a name="l00368"></a>00368     <span class="keywordflow">return</span> -1;
-<a name="l00369"></a>00369 }
+<a name="l00329"></a>00329   done:
+<a name="l00330"></a>00330     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00331"></a>00331     <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(stmt, <span class="stringliteral">"table_version_set"</span>);
+<a name="l00332"></a>00332 
+<a name="l00333"></a>00333     <span class="keywordflow">return</span> ret;
+<a name="l00334"></a>00334 }
+<a name="l00335"></a>00335 
+<a name="l00336"></a>00336 <span class="keywordtype">int</span>
+<a name="l00337"></a><a class="code" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">00337</a> <a class="code" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lms_db_table_update</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last_version, <span class="keyword">const</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *updaters)
+<a name="l00338"></a>00338 {
+<a name="l00339"></a>00339     <span class="keywordflow">if</span> (current_version == last_version)
+<a name="l00340"></a>00340         <span class="keywordflow">return</span> 0;
+<a name="l00341"></a>00341     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (current_version &gt; last_version) {
+<a name="l00342"></a>00342         fprintf(stderr,
+<a name="l00343"></a>00343                 <span class="stringliteral">"WARNING: current version (%d) of table '%s' is greater than "</span>
+<a name="l00344"></a>00344                 <span class="stringliteral">"last known version (%d), no updates will be made.\n"</span>,
+<a name="l00345"></a>00345                 current_version, table, last_version);
+<a name="l00346"></a>00346         <span class="keywordflow">return</span> 0;
+<a name="l00347"></a>00347     }
+<a name="l00348"></a>00348 
+<a name="l00349"></a>00349     <span class="keywordflow">for</span> (; current_version &lt; last_version; current_version++) {
+<a name="l00350"></a>00350         <span class="keywordtype">int</span> r, is_last_run;
+<a name="l00351"></a>00351 
+<a name="l00352"></a>00352         is_last_run = current_version == (last_version - 1);
+<a name="l00353"></a>00353         r = updaters[current_version](db, table, current_version, is_last_run);
+<a name="l00354"></a>00354         <span class="keywordflow">if</span> (r != 0) {
+<a name="l00355"></a>00355             fprintf(stderr,
+<a name="l00356"></a>00356                     <span class="stringliteral">"ERROR: could not update table '%s' from version %d-&gt;%d\n"</span>,
+<a name="l00357"></a>00357                     table, current_version, current_version + 1);
+<a name="l00358"></a>00358             <span class="keywordflow">return</span> r;
+<a name="l00359"></a>00359         }
+<a name="l00360"></a>00360         <a class="code" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lms_db_table_version_set</a>(db, table, current_version + 1);
+<a name="l00361"></a>00361     }
+<a name="l00362"></a>00362 
+<a name="l00363"></a>00363     <span class="keywordflow">return</span> 0;
+<a name="l00364"></a>00364 }
+<a name="l00365"></a>00365 
+<a name="l00366"></a>00366 <span class="keywordtype">int</span>
+<a name="l00367"></a><a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">00367</a> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last_version, <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *updaters)
+<a name="l00368"></a>00368 {
+<a name="l00369"></a>00369     <span class="keywordtype">int</span> current_version;
 <a name="l00370"></a>00370 
-<a name="l00371"></a>00371 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00372"></a>00372 lms_db_cache_resize(<span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keywordtype">int</span> new_size)
-<a name="l00373"></a>00373 {
-<a name="l00374"></a>00374     cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> = new_size;
-<a name="l00375"></a>00375     cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a> = realloc(cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>,
-<a name="l00376"></a>00376                              cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> * <span class="keyword">sizeof</span>(*cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>));
-<a name="l00377"></a>00377     <span class="keywordflow">if</span> (cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> &amp;&amp; !cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>) {
-<a name="l00378"></a>00378         perror(<span class="stringliteral">"realloc"</span>);
-<a name="l00379"></a>00379         cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> = 0;
-<a name="l00380"></a>00380         <span class="keywordflow">return</span> -1;
-<a name="l00381"></a>00381     }
-<a name="l00382"></a>00382 
-<a name="l00383"></a>00383     <span class="keywordflow">return</span> 0;
-<a name="l00384"></a>00384 }
-<a name="l00385"></a>00385 
-<a name="l00386"></a>00386 <span class="keywordtype">int</span>
-<a name="l00387"></a><a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">00387</a> <a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(<span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keyword">const</span> sqlite3 *db, <span class="keywordtype">void</span> *data)
-<a name="l00388"></a>00388 {
-<a name="l00389"></a>00389     <span class="keyword">struct </span><a class="code" href="structlms__db__cache__entry.html">lms_db_cache_entry</a> *e;
-<a name="l00390"></a>00390     <span class="keywordtype">int</span> idx;
-<a name="l00391"></a>00391 
-<a name="l00392"></a>00392     idx = lms_db_cache_find_db(cache, db);
-<a name="l00393"></a>00393     <span class="keywordflow">if</span> (idx &gt;= 0) {
-<a name="l00394"></a>00394         e = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a> + idx;
-<a name="l00395"></a>00395         <span class="keywordflow">if</span> (e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a> == data)
-<a name="l00396"></a>00396             <span class="keywordflow">return</span> 0;
-<a name="l00397"></a>00397         <span class="keywordflow">else</span> {
-<a name="l00398"></a>00398             fprintf(stderr,
-<a name="l00399"></a>00399                     <span class="stringliteral">"ERROR: cache %p for db %p has another data registered"</span>
-<a name="l00400"></a>00400                     <span class="stringliteral">": %p (current is %p)\n"</span>, cache, db, e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a>, data);
-<a name="l00401"></a>00401             <span class="keywordflow">return</span> -1;
-<a name="l00402"></a>00402         }
-<a name="l00403"></a>00403     }
-<a name="l00404"></a>00404 
-<a name="l00405"></a>00405     idx = cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a>;
-<a name="l00406"></a>00406     <span class="keywordflow">if</span> (lms_db_cache_resize(cache, cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> + 1) != 0) {
-<a name="l00407"></a>00407         <span class="keywordflow">return</span> -2;
-<a name="l00408"></a>00408     }
-<a name="l00409"></a>00409 
-<a name="l00410"></a>00410     e = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a> + idx;
-<a name="l00411"></a>00411     e-&gt;<a class="code" href="structlms__db__cache__entry.html#01aadf6d9a8161696019d39566b15760">db</a> = db;
-<a name="l00412"></a>00412     e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a> = data;
-<a name="l00413"></a>00413     <span class="keywordflow">return</span> 0;
-<a name="l00414"></a>00414 }
-<a name="l00415"></a>00415 
-<a name="l00416"></a>00416 <span class="keywordtype">int</span>
-<a name="l00417"></a><a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">00417</a> <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(<span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keyword">const</span> sqlite3 *db, <span class="keywordtype">void</span> *<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a>)
-<a name="l00418"></a>00418 {
-<a name="l00419"></a>00419     <span class="keywordtype">int</span> idx;
-<a name="l00420"></a>00420     <span class="keyword">struct </span><a class="code" href="structlms__db__cache__entry.html">lms_db_cache_entry</a> *e;
-<a name="l00421"></a>00421 
-<a name="l00422"></a>00422     idx = lms_db_cache_find_db(cache, db);
-<a name="l00423"></a>00423     <span class="keywordflow">if</span> (idx &lt; 0) {
-<a name="l00424"></a>00424         fprintf(stderr, <span class="stringliteral">"ERROR: no db %p found in cache %p\n"</span>, db, cache);
-<a name="l00425"></a>00425         <span class="keywordflow">return</span> -1;
-<a name="l00426"></a>00426     }
-<a name="l00427"></a>00427 
-<a name="l00428"></a>00428     e = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a> + idx;
-<a name="l00429"></a>00429     <span class="keywordflow">if</span> (e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a> != data) {
-<a name="l00430"></a>00430         fprintf(stderr, <span class="stringliteral">"ERROR: data mismatch in request to delete from cache: "</span>
-<a name="l00431"></a>00431                 <span class="stringliteral">"want %p, has %p, cache %p, db %p\n"</span>, data, e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a>, cache, db);
-<a name="l00432"></a>00432         <span class="keywordflow">return</span> -2;
-<a name="l00433"></a>00433     }
-<a name="l00434"></a>00434 
-<a name="l00435"></a>00435     <span class="keywordflow">for</span> (; idx &lt; cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> - 1; idx++)
-<a name="l00436"></a>00436         cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>[idx] = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>[idx + 1];
-<a name="l00437"></a>00437 
-<a name="l00438"></a>00438     <span class="keywordflow">return</span> lms_db_cache_resize(cache, cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> - 1);
-<a name="l00439"></a>00439 }
-<a name="l00440"></a>00440 
-<a name="l00441"></a>00441 <span class="keywordtype">int</span>
-<a name="l00442"></a><a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">00442</a> <a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(<span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keyword">const</span> sqlite3 *db, <span class="keywordtype">void</span> **pdata)
-<a name="l00443"></a>00443 {
-<a name="l00444"></a>00444     <span class="keywordtype">int</span> idx;
-<a name="l00445"></a>00445 
-<a name="l00446"></a>00446     idx = lms_db_cache_find_db(cache, db);
-<a name="l00447"></a>00447     <span class="keywordflow">if</span> (idx &lt; 0)
-<a name="l00448"></a>00448         <span class="keywordflow">return</span> -1;
-<a name="l00449"></a>00449 
-<a name="l00450"></a>00450     *pdata = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>[idx].<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a>;
-<a name="l00451"></a>00451     <span class="keywordflow">return</span> 0;
-<a name="l00452"></a>00452 }
-<a name="l00453"></a>00453 
-<a name="l00454"></a>00454 <span class="keywordtype">int</span>
-<a name="l00455"></a><a class="code" href="lightmediascanner__db__private_8h.html#13ca09c885535a2968e707120e935268">00455</a> <a class="code" href="lightmediascanner__db__common_8c.html#3798a46baaedc4d466879865456acc94">lms_db_create_core_tables_if_required</a>(sqlite3 *db)
-<a name="l00456"></a>00456 {
-<a name="l00457"></a>00457     <span class="keywordtype">char</span> *errmsg;
-<a name="l00458"></a>00458     <span class="keywordtype">int</span> r;
-<a name="l00459"></a>00459 
-<a name="l00460"></a>00460     errmsg = NULL;
-<a name="l00461"></a>00461     r = sqlite3_exec(db,
-<a name="l00462"></a>00462                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS lms_internal ("</span>
-<a name="l00463"></a>00463                      <span class="stringliteral">"tab TEXT NOT NULL UNIQUE, "</span>
-<a name="l00464"></a>00464                      <span class="stringliteral">"version INTEGER NOT NULL"</span>
-<a name="l00465"></a>00465                      <span class="stringliteral">")"</span>,
-<a name="l00466"></a>00466                      NULL, NULL, &amp;errmsg);
-<a name="l00467"></a>00467     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00468"></a>00468         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'lms_internal' table: %s\n"</span>,
-<a name="l00469"></a>00469                 errmsg);
-<a name="l00470"></a>00470         sqlite3_free(errmsg);
-<a name="l00471"></a>00471         <span class="keywordflow">return</span> -1;
-<a name="l00472"></a>00472     }
+<a name="l00371"></a>00371     current_version = <a class="code" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">lms_db_table_version_get</a>(db, table);
+<a name="l00372"></a>00372     <span class="keywordflow">if</span> (current_version &lt; 0)
+<a name="l00373"></a>00373         <span class="keywordflow">return</span> -1;
+<a name="l00374"></a>00374     <span class="keywordflow">else</span>
+<a name="l00375"></a>00375         <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lms_db_table_update</a>(db, table, current_version, last_version,
+<a name="l00376"></a>00376                                    updaters);
+<a name="l00377"></a>00377 }
+<a name="l00378"></a>00378 
+<a name="l00379"></a>00379 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00380"></a>00380 lms_db_cache_find_db(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keyword">const</span> sqlite3 *db)
+<a name="l00381"></a>00381 {
+<a name="l00382"></a>00382     <span class="keywordtype">int</span> i;
+<a name="l00383"></a>00383 
+<a name="l00384"></a>00384     <span class="keywordflow">for</span> (i = 0; i &lt; cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a>; i++)
+<a name="l00385"></a>00385         <span class="keywordflow">if</span> (cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>[i].<a class="code" href="structlms__db__cache__entry.html#01aadf6d9a8161696019d39566b15760">db</a> == db)
+<a name="l00386"></a>00386             <span class="keywordflow">return</span> i;
+<a name="l00387"></a>00387 
+<a name="l00388"></a>00388     <span class="keywordflow">return</span> -1;
+<a name="l00389"></a>00389 }
+<a name="l00390"></a>00390 
+<a name="l00391"></a>00391 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00392"></a>00392 lms_db_cache_resize(<span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keywordtype">int</span> new_size)
+<a name="l00393"></a>00393 {
+<a name="l00394"></a>00394     cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> = new_size;
+<a name="l00395"></a>00395     cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a> = realloc(cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>,
+<a name="l00396"></a>00396                              cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> * <span class="keyword">sizeof</span>(*cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>));
+<a name="l00397"></a>00397     <span class="keywordflow">if</span> (cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> &amp;&amp; !cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>) {
+<a name="l00398"></a>00398         perror(<span class="stringliteral">"realloc"</span>);
+<a name="l00399"></a>00399         cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> = 0;
+<a name="l00400"></a>00400         <span class="keywordflow">return</span> -1;
+<a name="l00401"></a>00401     }
+<a name="l00402"></a>00402 
+<a name="l00403"></a>00403     <span class="keywordflow">return</span> 0;
+<a name="l00404"></a>00404 }
+<a name="l00405"></a>00405 
+<a name="l00406"></a>00406 <span class="keywordtype">int</span>
+<a name="l00407"></a><a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">00407</a> <a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(<span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keyword">const</span> sqlite3 *db, <span class="keywordtype">void</span> *data)
+<a name="l00408"></a>00408 {
+<a name="l00409"></a>00409     <span class="keyword">struct </span><a class="code" href="structlms__db__cache__entry.html">lms_db_cache_entry</a> *e;
+<a name="l00410"></a>00410     <span class="keywordtype">int</span> idx;
+<a name="l00411"></a>00411 
+<a name="l00412"></a>00412     idx = lms_db_cache_find_db(cache, db);
+<a name="l00413"></a>00413     <span class="keywordflow">if</span> (idx &gt;= 0) {
+<a name="l00414"></a>00414         e = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a> + idx;
+<a name="l00415"></a>00415         <span class="keywordflow">if</span> (e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a> == data)
+<a name="l00416"></a>00416             <span class="keywordflow">return</span> 0;
+<a name="l00417"></a>00417         <span class="keywordflow">else</span> {
+<a name="l00418"></a>00418             fprintf(stderr,
+<a name="l00419"></a>00419                     <span class="stringliteral">"ERROR: cache %p for db %p has another data registered"</span>
+<a name="l00420"></a>00420                     <span class="stringliteral">": %p (current is %p)\n"</span>, cache, db, e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a>, data);
+<a name="l00421"></a>00421             <span class="keywordflow">return</span> -1;
+<a name="l00422"></a>00422         }
+<a name="l00423"></a>00423     }
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425     idx = cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a>;
+<a name="l00426"></a>00426     <span class="keywordflow">if</span> (lms_db_cache_resize(cache, cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> + 1) != 0) {
+<a name="l00427"></a>00427         <span class="keywordflow">return</span> -2;
+<a name="l00428"></a>00428     }
+<a name="l00429"></a>00429 
+<a name="l00430"></a>00430     e = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a> + idx;
+<a name="l00431"></a>00431     e-&gt;<a class="code" href="structlms__db__cache__entry.html#01aadf6d9a8161696019d39566b15760">db</a> = db;
+<a name="l00432"></a>00432     e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a> = data;
+<a name="l00433"></a>00433     <span class="keywordflow">return</span> 0;
+<a name="l00434"></a>00434 }
+<a name="l00435"></a>00435 
+<a name="l00436"></a>00436 <span class="keywordtype">int</span>
+<a name="l00437"></a><a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">00437</a> <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(<span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keyword">const</span> sqlite3 *db, <span class="keywordtype">void</span> *<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a>)
+<a name="l00438"></a>00438 {
+<a name="l00439"></a>00439     <span class="keywordtype">int</span> idx;
+<a name="l00440"></a>00440     <span class="keyword">struct </span><a class="code" href="structlms__db__cache__entry.html">lms_db_cache_entry</a> *e;
+<a name="l00441"></a>00441 
+<a name="l00442"></a>00442     idx = lms_db_cache_find_db(cache, db);
+<a name="l00443"></a>00443     <span class="keywordflow">if</span> (idx &lt; 0) {
+<a name="l00444"></a>00444         fprintf(stderr, <span class="stringliteral">"ERROR: no db %p found in cache %p\n"</span>, db, cache);
+<a name="l00445"></a>00445         <span class="keywordflow">return</span> -1;
+<a name="l00446"></a>00446     }
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448     e = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a> + idx;
+<a name="l00449"></a>00449     <span class="keywordflow">if</span> (e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a> != data) {
+<a name="l00450"></a>00450         fprintf(stderr, <span class="stringliteral">"ERROR: data mismatch in request to delete from cache: "</span>
+<a name="l00451"></a>00451                 <span class="stringliteral">"want %p, has %p, cache %p, db %p\n"</span>, data, e-&gt;<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a>, cache, db);
+<a name="l00452"></a>00452         <span class="keywordflow">return</span> -2;
+<a name="l00453"></a>00453     }
+<a name="l00454"></a>00454 
+<a name="l00455"></a>00455     <span class="keywordflow">for</span> (; idx &lt; cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> - 1; idx++)
+<a name="l00456"></a>00456         cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>[idx] = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>[idx + 1];
+<a name="l00457"></a>00457 
+<a name="l00458"></a>00458     <span class="keywordflow">return</span> lms_db_cache_resize(cache, cache-&gt;<a class="code" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a> - 1);
+<a name="l00459"></a>00459 }
+<a name="l00460"></a>00460 
+<a name="l00461"></a>00461 <span class="keywordtype">int</span>
+<a name="l00462"></a><a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">00462</a> <a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(<span class="keyword">struct</span> <a class="code" href="structlms__db__cache.html">lms_db_cache</a> *cache, <span class="keyword">const</span> sqlite3 *db, <span class="keywordtype">void</span> **pdata)
+<a name="l00463"></a>00463 {
+<a name="l00464"></a>00464     <span class="keywordtype">int</span> idx;
+<a name="l00465"></a>00465 
+<a name="l00466"></a>00466     idx = lms_db_cache_find_db(cache, db);
+<a name="l00467"></a>00467     <span class="keywordflow">if</span> (idx &lt; 0)
+<a name="l00468"></a>00468         <span class="keywordflow">return</span> -1;
+<a name="l00469"></a>00469 
+<a name="l00470"></a>00470     *pdata = cache-&gt;<a class="code" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a>[idx].<a class="code" href="structlms__db__cache__entry.html#53488063740ff72c830be3103e7150fe">data</a>;
+<a name="l00471"></a>00471     <span class="keywordflow">return</span> 0;
+<a name="l00472"></a>00472 }
 <a name="l00473"></a>00473 
-<a name="l00474"></a>00474     r = sqlite3_exec(db,
-<a name="l00475"></a>00475                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS files ("</span>
-<a name="l00476"></a>00476                      <span class="stringliteral">"id INTEGER PRIMARY KEY AUTOINCREMENT, "</span>
-<a name="l00477"></a>00477                      <span class="stringliteral">"path BLOB NOT NULL UNIQUE, "</span>
-<a name="l00478"></a>00478                      <span class="stringliteral">"mtime INTEGER NOT NULL, "</span>
-<a name="l00479"></a>00479                      <span class="stringliteral">"dtime INTEGER NOT NULL, "</span>
-<a name="l00480"></a>00480                      <span class="stringliteral">"size INTEGER NOT NULL"</span>
-<a name="l00481"></a>00481                      <span class="stringliteral">")"</span>,
-<a name="l00482"></a>00482                      NULL, NULL, &amp;errmsg);
-<a name="l00483"></a>00483     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00484"></a>00484         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'files' table: %s\n"</span>, errmsg);
-<a name="l00485"></a>00485         sqlite3_free(errmsg);
-<a name="l00486"></a>00486         <span class="keywordflow">return</span> -2;
-<a name="l00487"></a>00487     }
-<a name="l00488"></a>00488 
-<a name="l00489"></a>00489     r = sqlite3_exec(db,
-<a name="l00490"></a>00490                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS files_path_idx ON files ("</span>
-<a name="l00491"></a>00491                      <span class="stringliteral">"path"</span>
-<a name="l00492"></a>00492                      <span class="stringliteral">")"</span>,
-<a name="l00493"></a>00493                      NULL, NULL, &amp;errmsg);
-<a name="l00494"></a>00494     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00495"></a>00495         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'files_path_idx' index: %s\n"</span>,
-<a name="l00496"></a>00496                 errmsg);
-<a name="l00497"></a>00497         sqlite3_free(errmsg);
-<a name="l00498"></a>00498         <span class="keywordflow">return</span> -3;
-<a name="l00499"></a>00499     }
-<a name="l00500"></a>00500 
-<a name="l00501"></a>00501     <span class="keywordflow">return</span> 0;
-<a name="l00502"></a>00502 }
-<a name="l00503"></a>00503 
-<a name="l00504"></a>00504 
-<a name="l00505"></a>00505 sqlite3_stmt *
-<a name="l00506"></a><a class="code" href="lightmediascanner__db__private_8h.html#073c254ca7b4d3f42e1be1854bcc42a3">00506</a> <a class="code" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lms_db_compile_stmt_begin_transaction</a>(sqlite3 *db)
-<a name="l00507"></a>00507 {
-<a name="l00508"></a>00508     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db, <span class="stringliteral">"BEGIN TRANSACTION"</span>);
-<a name="l00509"></a>00509 }
-<a name="l00510"></a>00510 
-<a name="l00511"></a>00511 <span class="keywordtype">int</span>
-<a name="l00512"></a><a class="code" href="lightmediascanner__db__private_8h.html#3a7256cb653542bbf563feeb2aa2d0ea">00512</a> <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(sqlite3_stmt *stmt)
-<a name="l00513"></a>00513 {
-<a name="l00514"></a>00514     <span class="keywordtype">int</span> r, ret;
-<a name="l00515"></a>00515 
-<a name="l00516"></a>00516     ret = 0;
-<a name="l00517"></a>00517     r = sqlite3_step(stmt);
-<a name="l00518"></a>00518     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00519"></a>00519         fprintf(stderr, <span class="stringliteral">"ERROR: could not begin transaction: %s\n"</span>,
-<a name="l00520"></a>00520                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00521"></a>00521         ret = -1;
-<a name="l00522"></a>00522     }
+<a name="l00474"></a>00474 <span class="keywordtype">int</span>
+<a name="l00475"></a><a class="code" href="lightmediascanner__db__private_8h.html#13ca09c885535a2968e707120e935268">00475</a> <a class="code" href="lightmediascanner__db__common_8c.html#3798a46baaedc4d466879865456acc94">lms_db_create_core_tables_if_required</a>(sqlite3 *db)
+<a name="l00476"></a>00476 {
+<a name="l00477"></a>00477     <span class="keywordtype">char</span> *errmsg;
+<a name="l00478"></a>00478     <span class="keywordtype">int</span> r;
+<a name="l00479"></a>00479 
+<a name="l00480"></a>00480     errmsg = NULL;
+<a name="l00481"></a>00481     r = sqlite3_exec(db,
+<a name="l00482"></a>00482                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS lms_internal ("</span>
+<a name="l00483"></a>00483                      <span class="stringliteral">"tab TEXT NOT NULL UNIQUE, "</span>
+<a name="l00484"></a>00484                      <span class="stringliteral">"version INTEGER NOT NULL"</span>
+<a name="l00485"></a>00485                      <span class="stringliteral">")"</span>,
+<a name="l00486"></a>00486                      NULL, NULL, &amp;errmsg);
+<a name="l00487"></a>00487     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00488"></a>00488         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'lms_internal' table: %s\n"</span>,
+<a name="l00489"></a>00489                 errmsg);
+<a name="l00490"></a>00490         sqlite3_free(errmsg);
+<a name="l00491"></a>00491         <span class="keywordflow">return</span> -1;
+<a name="l00492"></a>00492     }
+<a name="l00493"></a>00493 
+<a name="l00494"></a>00494     r = sqlite3_exec(db,
+<a name="l00495"></a>00495                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS files ("</span>
+<a name="l00496"></a>00496                      <span class="stringliteral">"id INTEGER PRIMARY KEY AUTOINCREMENT, "</span>
+<a name="l00497"></a>00497                      <span class="stringliteral">"path BLOB NOT NULL UNIQUE, "</span>
+<a name="l00498"></a>00498                      <span class="stringliteral">"mtime INTEGER NOT NULL, "</span>
+<a name="l00499"></a>00499                      <span class="stringliteral">"dtime INTEGER NOT NULL, "</span>
+<a name="l00500"></a>00500                      <span class="stringliteral">"size INTEGER NOT NULL"</span>
+<a name="l00501"></a>00501                      <span class="stringliteral">")"</span>,
+<a name="l00502"></a>00502                      NULL, NULL, &amp;errmsg);
+<a name="l00503"></a>00503     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00504"></a>00504         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'files' table: %s\n"</span>, errmsg);
+<a name="l00505"></a>00505         sqlite3_free(errmsg);
+<a name="l00506"></a>00506         <span class="keywordflow">return</span> -2;
+<a name="l00507"></a>00507     }
+<a name="l00508"></a>00508 
+<a name="l00509"></a>00509     r = sqlite3_exec(db,
+<a name="l00510"></a>00510                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS files_path_idx ON files ("</span>
+<a name="l00511"></a>00511                      <span class="stringliteral">"path"</span>
+<a name="l00512"></a>00512                      <span class="stringliteral">")"</span>,
+<a name="l00513"></a>00513                      NULL, NULL, &amp;errmsg);
+<a name="l00514"></a>00514     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00515"></a>00515         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'files_path_idx' index: %s\n"</span>,
+<a name="l00516"></a>00516                 errmsg);
+<a name="l00517"></a>00517         sqlite3_free(errmsg);
+<a name="l00518"></a>00518         <span class="keywordflow">return</span> -3;
+<a name="l00519"></a>00519     }
+<a name="l00520"></a>00520 
+<a name="l00521"></a>00521     <span class="keywordflow">return</span> 0;
+<a name="l00522"></a>00522 }
 <a name="l00523"></a>00523 
-<a name="l00524"></a>00524     r = sqlite3_reset(stmt);
-<a name="l00525"></a>00525     <span class="keywordflow">if</span> (r != SQLITE_OK)
-<a name="l00526"></a>00526         fprintf(stderr, <span class="stringliteral">"ERROR: could not reset SQL statement: %s\n"</span>,
-<a name="l00527"></a>00527                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00528"></a>00528 
-<a name="l00529"></a>00529     <span class="keywordflow">return</span> ret;
-<a name="l00530"></a>00530 }
-<a name="l00531"></a>00531 
-<a name="l00532"></a>00532 sqlite3_stmt *
-<a name="l00533"></a><a class="code" href="lightmediascanner__db__private_8h.html#09feca4fbfde33d5647cdd5cc2de6500">00533</a> <a class="code" href="lightmediascanner__db__common_8c.html#bff1aa6077215f3d70d4d5b1a9b7a498">lms_db_compile_stmt_end_transaction</a>(sqlite3 *db)
-<a name="l00534"></a>00534 {
-<a name="l00535"></a>00535     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db, <span class="stringliteral">"COMMIT"</span>);
-<a name="l00536"></a>00536 }
-<a name="l00537"></a>00537 
-<a name="l00538"></a>00538 <span class="keywordtype">int</span>
-<a name="l00539"></a><a class="code" href="lightmediascanner__db__private_8h.html#8ee7bfba83958b80f717a6ccbad2a84c">00539</a> <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(sqlite3_stmt *stmt)
-<a name="l00540"></a>00540 {
-<a name="l00541"></a>00541     <span class="keywordtype">int</span> r, ret;
-<a name="l00542"></a>00542 
-<a name="l00543"></a>00543     ret = 0;
-<a name="l00544"></a>00544     r = sqlite3_step(stmt);
-<a name="l00545"></a>00545     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00546"></a>00546         fprintf(stderr, <span class="stringliteral">"ERROR: could not end transaction: %s\n"</span>,
+<a name="l00524"></a>00524 
+<a name="l00525"></a>00525 sqlite3_stmt *
+<a name="l00526"></a><a class="code" href="lightmediascanner__db__private_8h.html#073c254ca7b4d3f42e1be1854bcc42a3">00526</a> <a class="code" href="lightmediascanner__db__common_8c.html#1787fdaf148358c7a518e91dfd871ca1">lms_db_compile_stmt_begin_transaction</a>(sqlite3 *db)
+<a name="l00527"></a>00527 {
+<a name="l00528"></a>00528     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db, <span class="stringliteral">"BEGIN TRANSACTION"</span>);
+<a name="l00529"></a>00529 }
+<a name="l00530"></a>00530 
+<a name="l00531"></a>00531 <span class="keywordtype">int</span>
+<a name="l00532"></a><a class="code" href="lightmediascanner__db__private_8h.html#3a7256cb653542bbf563feeb2aa2d0ea">00532</a> <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(sqlite3_stmt *stmt)
+<a name="l00533"></a>00533 {
+<a name="l00534"></a>00534     <span class="keywordtype">int</span> r, ret;
+<a name="l00535"></a>00535 
+<a name="l00536"></a>00536     ret = 0;
+<a name="l00537"></a>00537     r = sqlite3_step(stmt);
+<a name="l00538"></a>00538     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00539"></a>00539         fprintf(stderr, <span class="stringliteral">"ERROR: could not begin transaction: %s\n"</span>,
+<a name="l00540"></a>00540                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00541"></a>00541         ret = -1;
+<a name="l00542"></a>00542     }
+<a name="l00543"></a>00543 
+<a name="l00544"></a>00544     r = sqlite3_reset(stmt);
+<a name="l00545"></a>00545     <span class="keywordflow">if</span> (r != SQLITE_OK)
+<a name="l00546"></a>00546         fprintf(stderr, <span class="stringliteral">"ERROR: could not reset SQL statement: %s\n"</span>,
 <a name="l00547"></a>00547                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00548"></a>00548         ret = -1;
-<a name="l00549"></a>00549     }
-<a name="l00550"></a>00550 
-<a name="l00551"></a>00551     r = sqlite3_reset(stmt);
-<a name="l00552"></a>00552     <span class="keywordflow">if</span> (r != SQLITE_OK)
-<a name="l00553"></a>00553         fprintf(stderr, <span class="stringliteral">"ERROR: could not reset SQL statement: %s\n"</span>,
-<a name="l00554"></a>00554                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00555"></a>00555 
-<a name="l00556"></a>00556     <span class="keywordflow">return</span> ret;
-<a name="l00557"></a>00557 }
-<a name="l00558"></a>00558 
-<a name="l00559"></a>00559 sqlite3_stmt *
-<a name="l00560"></a><a class="code" href="lightmediascanner__db__private_8h.html#327d54a6dac083e356fd609298a0cbd5">00560</a> <a class="code" href="lightmediascanner__db__common_8c.html#b00a624bc01da9b796f7bc6e1d507cf8">lms_db_compile_stmt_get_file_info</a>(sqlite3 *db)
-<a name="l00561"></a>00561 {
-<a name="l00562"></a>00562     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
-<a name="l00563"></a>00563         <span class="stringliteral">"SELECT id, mtime, dtime, size FROM files WHERE path = ?"</span>);
-<a name="l00564"></a>00564 }
-<a name="l00565"></a>00565 
-<a name="l00566"></a>00566 <span class="keywordtype">int</span>
-<a name="l00567"></a><a class="code" href="lightmediascanner__db__common_8c.html#c0b7cf0b2eb0f55fbf8a4103bc9569d1">00567</a> <a class="code" href="lightmediascanner__db__common_8c.html#c0b7cf0b2eb0f55fbf8a4103bc9569d1">lms_db_get_file_info</a>(sqlite3_stmt *stmt, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
-<a name="l00568"></a>00568 {
-<a name="l00569"></a>00569     <span class="keywordtype">int</span> r, ret;
+<a name="l00548"></a>00548 
+<a name="l00549"></a>00549     <span class="keywordflow">return</span> ret;
+<a name="l00550"></a>00550 }
+<a name="l00551"></a>00551 
+<a name="l00552"></a>00552 sqlite3_stmt *
+<a name="l00553"></a><a class="code" href="lightmediascanner__db__private_8h.html#09feca4fbfde33d5647cdd5cc2de6500">00553</a> <a class="code" href="lightmediascanner__db__common_8c.html#bff1aa6077215f3d70d4d5b1a9b7a498">lms_db_compile_stmt_end_transaction</a>(sqlite3 *db)
+<a name="l00554"></a>00554 {
+<a name="l00555"></a>00555     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db, <span class="stringliteral">"COMMIT"</span>);
+<a name="l00556"></a>00556 }
+<a name="l00557"></a>00557 
+<a name="l00558"></a>00558 <span class="keywordtype">int</span>
+<a name="l00559"></a><a class="code" href="lightmediascanner__db__private_8h.html#8ee7bfba83958b80f717a6ccbad2a84c">00559</a> <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(sqlite3_stmt *stmt)
+<a name="l00560"></a>00560 {
+<a name="l00561"></a>00561     <span class="keywordtype">int</span> r, ret;
+<a name="l00562"></a>00562 
+<a name="l00563"></a>00563     ret = 0;
+<a name="l00564"></a>00564     r = sqlite3_step(stmt);
+<a name="l00565"></a>00565     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00566"></a>00566         fprintf(stderr, <span class="stringliteral">"ERROR: could not end transaction: %s\n"</span>,
+<a name="l00567"></a>00567                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00568"></a>00568         ret = -1;
+<a name="l00569"></a>00569     }
 <a name="l00570"></a>00570 
-<a name="l00571"></a>00571     ret = <a class="code" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lms_db_bind_blob</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>);
-<a name="l00572"></a>00572     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00573"></a>00573         <span class="keywordflow">goto</span> done;
-<a name="l00574"></a>00574 
-<a name="l00575"></a>00575     r = sqlite3_step(stmt);
-<a name="l00576"></a>00576     <span class="keywordflow">if</span> (r == SQLITE_DONE) {
-<a name="l00577"></a>00577         ret = 1;
-<a name="l00578"></a>00578         finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = -1;
-<a name="l00579"></a>00579         <span class="keywordflow">goto</span> done;
-<a name="l00580"></a>00580     }
-<a name="l00581"></a>00581 
-<a name="l00582"></a>00582     <span class="keywordflow">if</span> (r != SQLITE_ROW) {
-<a name="l00583"></a>00583         fprintf(stderr, <span class="stringliteral">"ERROR: could not get file info from table: %s\n"</span>,
-<a name="l00584"></a>00584                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00585"></a>00585         ret = -2;
-<a name="l00586"></a>00586         <span class="keywordflow">goto</span> done;
-<a name="l00587"></a>00587     }
-<a name="l00588"></a>00588 
-<a name="l00589"></a>00589     finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = sqlite3_column_int64(stmt, 0);
-<a name="l00590"></a>00590     finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> = sqlite3_column_int(stmt, 1);
-<a name="l00591"></a>00591     finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = sqlite3_column_int(stmt, 2);
-<a name="l00592"></a>00592     finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a> = sqlite3_column_int(stmt, 3);
-<a name="l00593"></a>00593     ret = 0;
+<a name="l00571"></a>00571     r = sqlite3_reset(stmt);
+<a name="l00572"></a>00572     <span class="keywordflow">if</span> (r != SQLITE_OK)
+<a name="l00573"></a>00573         fprintf(stderr, <span class="stringliteral">"ERROR: could not reset SQL statement: %s\n"</span>,
+<a name="l00574"></a>00574                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00575"></a>00575 
+<a name="l00576"></a>00576     <span class="keywordflow">return</span> ret;
+<a name="l00577"></a>00577 }
+<a name="l00578"></a>00578 
+<a name="l00579"></a>00579 sqlite3_stmt *
+<a name="l00580"></a><a class="code" href="lightmediascanner__db__private_8h.html#327d54a6dac083e356fd609298a0cbd5">00580</a> <a class="code" href="lightmediascanner__db__common_8c.html#b00a624bc01da9b796f7bc6e1d507cf8">lms_db_compile_stmt_get_file_info</a>(sqlite3 *db)
+<a name="l00581"></a>00581 {
+<a name="l00582"></a>00582     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
+<a name="l00583"></a>00583         <span class="stringliteral">"SELECT id, mtime, dtime, size FROM files WHERE path = ?"</span>);
+<a name="l00584"></a>00584 }
+<a name="l00585"></a>00585 
+<a name="l00586"></a>00586 <span class="keywordtype">int</span>
+<a name="l00587"></a><a class="code" href="lightmediascanner__db__common_8c.html#c0b7cf0b2eb0f55fbf8a4103bc9569d1">00587</a> <a class="code" href="lightmediascanner__db__common_8c.html#c0b7cf0b2eb0f55fbf8a4103bc9569d1">lms_db_get_file_info</a>(sqlite3_stmt *stmt, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
+<a name="l00588"></a>00588 {
+<a name="l00589"></a>00589     <span class="keywordtype">int</span> r, ret;
+<a name="l00590"></a>00590 
+<a name="l00591"></a>00591     ret = <a class="code" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lms_db_bind_blob</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>);
+<a name="l00592"></a>00592     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00593"></a>00593         <span class="keywordflow">goto</span> done;
 <a name="l00594"></a>00594 
-<a name="l00595"></a>00595   done:
-<a name="l00596"></a>00596     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00597"></a>00597 
-<a name="l00598"></a>00598     <span class="keywordflow">return</span> ret;
-<a name="l00599"></a>00599 }
-<a name="l00600"></a>00600 
-<a name="l00601"></a>00601 sqlite3_stmt *
-<a name="l00602"></a><a class="code" href="lightmediascanner__db__private_8h.html#69eb9d9058d9432f7658f9adffb79ed6">00602</a> <a class="code" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lms_db_compile_stmt_update_file_info</a>(sqlite3 *db)
-<a name="l00603"></a>00603 {
-<a name="l00604"></a>00604     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
-<a name="l00605"></a>00605         <span class="stringliteral">"UPDATE files SET mtime = ?, dtime = ?, size = ? WHERE id = ?"</span>);
-<a name="l00606"></a>00606 }
-<a name="l00607"></a>00607 
-<a name="l00608"></a>00608 <span class="keywordtype">int</span>
-<a name="l00609"></a><a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">00609</a> <a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lms_db_update_file_info</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
-<a name="l00610"></a>00610 {
-<a name="l00611"></a>00611     <span class="keywordtype">int</span> r, ret;
-<a name="l00612"></a>00612 
-<a name="l00613"></a>00613     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a>);
-<a name="l00614"></a>00614     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00615"></a>00615         <span class="keywordflow">goto</span> done;
-<a name="l00616"></a>00616 
-<a name="l00617"></a>00617     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 2, finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>);
-<a name="l00618"></a>00618     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00619"></a>00619         <span class="keywordflow">goto</span> done;
+<a name="l00595"></a>00595     r = sqlite3_step(stmt);
+<a name="l00596"></a>00596     <span class="keywordflow">if</span> (r == SQLITE_DONE) {
+<a name="l00597"></a>00597         ret = 1;
+<a name="l00598"></a>00598         finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = -1;
+<a name="l00599"></a>00599         <span class="keywordflow">goto</span> done;
+<a name="l00600"></a>00600     }
+<a name="l00601"></a>00601 
+<a name="l00602"></a>00602     <span class="keywordflow">if</span> (r != SQLITE_ROW) {
+<a name="l00603"></a>00603         fprintf(stderr, <span class="stringliteral">"ERROR: could not get file info from table: %s\n"</span>,
+<a name="l00604"></a>00604                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00605"></a>00605         ret = -2;
+<a name="l00606"></a>00606         <span class="keywordflow">goto</span> done;
+<a name="l00607"></a>00607     }
+<a name="l00608"></a>00608 
+<a name="l00609"></a>00609     finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = sqlite3_column_int64(stmt, 0);
+<a name="l00610"></a>00610     finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a> = sqlite3_column_int(stmt, 1);
+<a name="l00611"></a>00611     finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = sqlite3_column_int(stmt, 2);
+<a name="l00612"></a>00612     finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a> = sqlite3_column_int(stmt, 3);
+<a name="l00613"></a>00613     ret = 0;
+<a name="l00614"></a>00614 
+<a name="l00615"></a>00615   done:
+<a name="l00616"></a>00616     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00617"></a>00617 
+<a name="l00618"></a>00618     <span class="keywordflow">return</span> ret;
+<a name="l00619"></a>00619 }
 <a name="l00620"></a>00620 
-<a name="l00621"></a>00621     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 3, finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a>);
-<a name="l00622"></a>00622     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00623"></a>00623         <span class="keywordflow">goto</span> done;
-<a name="l00624"></a>00624 
-<a name="l00625"></a>00625     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 4, finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a>);
-<a name="l00626"></a>00626     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00627"></a>00627         <span class="keywordflow">goto</span> done;
-<a name="l00628"></a>00628 
-<a name="l00629"></a>00629     r = sqlite3_step(stmt);
-<a name="l00630"></a>00630     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00631"></a>00631         fprintf(stderr, <span class="stringliteral">"ERROR: could not update file info: %s\n"</span>,
-<a name="l00632"></a>00632                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00633"></a>00633         ret = -5;
-<a name="l00634"></a>00634         <span class="keywordflow">goto</span> done;
-<a name="l00635"></a>00635     }
+<a name="l00621"></a>00621 sqlite3_stmt *
+<a name="l00622"></a><a class="code" href="lightmediascanner__db__private_8h.html#69eb9d9058d9432f7658f9adffb79ed6">00622</a> <a class="code" href="lightmediascanner__db__common_8c.html#1e6e76cfa9d6faa3c3b8035004eff1a0">lms_db_compile_stmt_update_file_info</a>(sqlite3 *db)
+<a name="l00623"></a>00623 {
+<a name="l00624"></a>00624     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
+<a name="l00625"></a>00625         <span class="stringliteral">"UPDATE files SET mtime = ?, dtime = ?, size = ? WHERE id = ?"</span>);
+<a name="l00626"></a>00626 }
+<a name="l00627"></a>00627 
+<a name="l00628"></a>00628 <span class="keywordtype">int</span>
+<a name="l00629"></a><a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">00629</a> <a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lms_db_update_file_info</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
+<a name="l00630"></a>00630 {
+<a name="l00631"></a>00631     <span class="keywordtype">int</span> r, ret;
+<a name="l00632"></a>00632 
+<a name="l00633"></a>00633     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a>);
+<a name="l00634"></a>00634     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00635"></a>00635         <span class="keywordflow">goto</span> done;
 <a name="l00636"></a>00636 
-<a name="l00637"></a>00637     ret = 0;
-<a name="l00638"></a>00638 
-<a name="l00639"></a>00639   done:
-<a name="l00640"></a>00640     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00641"></a>00641 
-<a name="l00642"></a>00642     <span class="keywordflow">return</span> ret;
-<a name="l00643"></a>00643 }
+<a name="l00637"></a>00637     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 2, finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>);
+<a name="l00638"></a>00638     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00639"></a>00639         <span class="keywordflow">goto</span> done;
+<a name="l00640"></a>00640 
+<a name="l00641"></a>00641     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 3, finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a>);
+<a name="l00642"></a>00642     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00643"></a>00643         <span class="keywordflow">goto</span> done;
 <a name="l00644"></a>00644 
-<a name="l00645"></a>00645 sqlite3_stmt *
-<a name="l00646"></a><a class="code" href="lightmediascanner__db__private_8h.html#bf21f88ddbe28a8290d0df32af0f079c">00646</a> <a class="code" href="lightmediascanner__db__common_8c.html#9a5886e755eb428ac811956144eee0dc">lms_db_compile_stmt_insert_file_info</a>(sqlite3 *db)
-<a name="l00647"></a>00647 {
-<a name="l00648"></a>00648     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
-<a name="l00649"></a>00649         <span class="stringliteral">"INSERT INTO files (path, mtime, dtime, size) VALUES(?, ?, ?, ?)"</span>);
-<a name="l00650"></a>00650 }
-<a name="l00651"></a>00651 
-<a name="l00652"></a>00652 <span class="keywordtype">int</span>
-<a name="l00653"></a><a class="code" href="lightmediascanner__db__common_8c.html#e529ad5c4478d53685c65ec69dc5b1f4">00653</a> <a class="code" href="lightmediascanner__db__common_8c.html#e529ad5c4478d53685c65ec69dc5b1f4">lms_db_insert_file_info</a>(sqlite3_stmt *stmt, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
-<a name="l00654"></a>00654 {
-<a name="l00655"></a>00655     <span class="keywordtype">int</span> r, ret;
+<a name="l00645"></a>00645     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 4, finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a>);
+<a name="l00646"></a>00646     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00647"></a>00647         <span class="keywordflow">goto</span> done;
+<a name="l00648"></a>00648 
+<a name="l00649"></a>00649     r = sqlite3_step(stmt);
+<a name="l00650"></a>00650     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00651"></a>00651         fprintf(stderr, <span class="stringliteral">"ERROR: could not update file info: %s\n"</span>,
+<a name="l00652"></a>00652                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00653"></a>00653         ret = -5;
+<a name="l00654"></a>00654         <span class="keywordflow">goto</span> done;
+<a name="l00655"></a>00655     }
 <a name="l00656"></a>00656 
-<a name="l00657"></a>00657     ret = <a class="code" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lms_db_bind_blob</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>);
-<a name="l00658"></a>00658     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00659"></a>00659         <span class="keywordflow">goto</span> done;
-<a name="l00660"></a>00660 
-<a name="l00661"></a>00661     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 2, finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a>);
-<a name="l00662"></a>00662     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00663"></a>00663         <span class="keywordflow">goto</span> done;
+<a name="l00657"></a>00657     ret = 0;
+<a name="l00658"></a>00658 
+<a name="l00659"></a>00659   done:
+<a name="l00660"></a>00660     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00661"></a>00661 
+<a name="l00662"></a>00662     <span class="keywordflow">return</span> ret;
+<a name="l00663"></a>00663 }
 <a name="l00664"></a>00664 
-<a name="l00665"></a>00665     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 3, finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>);
-<a name="l00666"></a>00666     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00667"></a>00667         <span class="keywordflow">goto</span> done;
-<a name="l00668"></a>00668 
-<a name="l00669"></a>00669     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 4, finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a>);
-<a name="l00670"></a>00670     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00671"></a>00671         <span class="keywordflow">goto</span> done;
-<a name="l00672"></a>00672 
-<a name="l00673"></a>00673     r = sqlite3_step(stmt);
-<a name="l00674"></a>00674     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00675"></a>00675         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert file info: %s\n"</span>,
-<a name="l00676"></a>00676                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00677"></a>00677         ret = -5;
-<a name="l00678"></a>00678         <span class="keywordflow">goto</span> done;
-<a name="l00679"></a>00679     }
+<a name="l00665"></a>00665 sqlite3_stmt *
+<a name="l00666"></a><a class="code" href="lightmediascanner__db__private_8h.html#bf21f88ddbe28a8290d0df32af0f079c">00666</a> <a class="code" href="lightmediascanner__db__common_8c.html#9a5886e755eb428ac811956144eee0dc">lms_db_compile_stmt_insert_file_info</a>(sqlite3 *db)
+<a name="l00667"></a>00667 {
+<a name="l00668"></a>00668     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
+<a name="l00669"></a>00669         <span class="stringliteral">"INSERT INTO files (path, mtime, dtime, size) VALUES(?, ?, ?, ?)"</span>);
+<a name="l00670"></a>00670 }
+<a name="l00671"></a>00671 
+<a name="l00672"></a>00672 <span class="keywordtype">int</span>
+<a name="l00673"></a><a class="code" href="lightmediascanner__db__common_8c.html#e529ad5c4478d53685c65ec69dc5b1f4">00673</a> <a class="code" href="lightmediascanner__db__common_8c.html#e529ad5c4478d53685c65ec69dc5b1f4">lms_db_insert_file_info</a>(sqlite3_stmt *stmt, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
+<a name="l00674"></a>00674 {
+<a name="l00675"></a>00675     <span class="keywordtype">int</span> r, ret;
+<a name="l00676"></a>00676 
+<a name="l00677"></a>00677     ret = <a class="code" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lms_db_bind_blob</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>, finfo-&gt;<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a>);
+<a name="l00678"></a>00678     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00679"></a>00679         <span class="keywordflow">goto</span> done;
 <a name="l00680"></a>00680 
-<a name="l00681"></a>00681     finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = sqlite3_last_insert_rowid(sqlite3_db_handle(stmt));
-<a name="l00682"></a>00682     ret = 0;
-<a name="l00683"></a>00683 
-<a name="l00684"></a>00684   done:
-<a name="l00685"></a>00685     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00686"></a>00686 
-<a name="l00687"></a>00687     <span class="keywordflow">return</span> ret;
-<a name="l00688"></a>00688 }
-<a name="l00689"></a>00689 
-<a name="l00690"></a>00690 sqlite3_stmt *
-<a name="l00691"></a><a class="code" href="lightmediascanner__db__private_8h.html#76941bdbbdb711fff821343e91c2cd97">00691</a> <a class="code" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lms_db_compile_stmt_delete_file_info</a>(sqlite3 *db)
-<a name="l00692"></a>00692 {
-<a name="l00693"></a>00693     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db, <span class="stringliteral">"DELETE FROM files WHERE id = ?"</span>);
-<a name="l00694"></a>00694 }
-<a name="l00695"></a>00695 
-<a name="l00696"></a>00696 <span class="keywordtype">int</span>
-<a name="l00697"></a><a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">00697</a> <a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lms_db_delete_file_info</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
-<a name="l00698"></a>00698 {
-<a name="l00699"></a>00699     <span class="keywordtype">int</span> r, ret;
+<a name="l00681"></a>00681     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 2, finfo-&gt;<a class="code" href="structlms__file__info.html#4aa878eefdde84541021087192b9dacd">mtime</a>);
+<a name="l00682"></a>00682     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00683"></a>00683         <span class="keywordflow">goto</span> done;
+<a name="l00684"></a>00684 
+<a name="l00685"></a>00685     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 3, finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>);
+<a name="l00686"></a>00686     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00687"></a>00687         <span class="keywordflow">goto</span> done;
+<a name="l00688"></a>00688 
+<a name="l00689"></a>00689     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 4, finfo-&gt;<a class="code" href="structlms__file__info.html#b318b81fc934636a904f5d84efe8c1ee">size</a>);
+<a name="l00690"></a>00690     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00691"></a>00691         <span class="keywordflow">goto</span> done;
+<a name="l00692"></a>00692 
+<a name="l00693"></a>00693     r = sqlite3_step(stmt);
+<a name="l00694"></a>00694     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00695"></a>00695         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert file info: %s\n"</span>,
+<a name="l00696"></a>00696                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00697"></a>00697         ret = -5;
+<a name="l00698"></a>00698         <span class="keywordflow">goto</span> done;
+<a name="l00699"></a>00699     }
 <a name="l00700"></a>00700 
-<a name="l00701"></a>00701     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a>);
-<a name="l00702"></a>00702     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00703"></a>00703         <span class="keywordflow">goto</span> done;
-<a name="l00704"></a>00704 
-<a name="l00705"></a>00705     r = sqlite3_step(stmt);
-<a name="l00706"></a>00706     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00707"></a>00707         fprintf(stderr, <span class="stringliteral">"ERROR: could not delete file info: %s\n"</span>,
-<a name="l00708"></a>00708                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00709"></a>00709         ret = -2;
-<a name="l00710"></a>00710         <span class="keywordflow">goto</span> done;
-<a name="l00711"></a>00711     }
-<a name="l00712"></a>00712     ret = 0;
-<a name="l00713"></a>00713 
-<a name="l00714"></a>00714   done:
-<a name="l00715"></a>00715     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00716"></a>00716 
-<a name="l00717"></a>00717     <span class="keywordflow">return</span> ret;
-<a name="l00718"></a>00718 }
-<a name="l00719"></a>00719 
-<a name="l00720"></a>00720 sqlite3_stmt *
-<a name="l00721"></a><a class="code" href="lightmediascanner__db__private_8h.html#08c34b5b1b6e927a696ff0ce66562f54">00721</a> <a class="code" href="lightmediascanner__db__common_8c.html#1b6950ca9e548670a4cb7fd0ec5220a8">lms_db_compile_stmt_set_file_dtime</a>(sqlite3 *db)
-<a name="l00722"></a>00722 {
-<a name="l00723"></a>00723     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db, <span class="stringliteral">"UPDATE files SET dtime = ? WHERE id = ?"</span>);
-<a name="l00724"></a>00724 }
-<a name="l00725"></a>00725 
-<a name="l00726"></a>00726 <span class="keywordtype">int</span>
-<a name="l00727"></a><a class="code" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">00727</a> <a class="code" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">lms_db_set_file_dtime</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
-<a name="l00728"></a>00728 {
-<a name="l00729"></a>00729     <span class="keywordtype">int</span> r, ret;
-<a name="l00730"></a>00730 
-<a name="l00731"></a>00731     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>);
-<a name="l00732"></a>00732     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00733"></a>00733         <span class="keywordflow">goto</span> done;
-<a name="l00734"></a>00734 
-<a name="l00735"></a>00735     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a>);
-<a name="l00736"></a>00736     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00737"></a>00737         <span class="keywordflow">goto</span> done;
-<a name="l00738"></a>00738 
-<a name="l00739"></a>00739     r = sqlite3_step(stmt);
-<a name="l00740"></a>00740     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00741"></a>00741         fprintf(stderr, <span class="stringliteral">"ERROR: could not set file dtime: %s\n"</span>,
-<a name="l00742"></a>00742                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
-<a name="l00743"></a>00743         ret = -3;
-<a name="l00744"></a>00744         <span class="keywordflow">goto</span> done;
-<a name="l00745"></a>00745     }
-<a name="l00746"></a>00746 
-<a name="l00747"></a>00747     ret = 0;
-<a name="l00748"></a>00748 
-<a name="l00749"></a>00749   done:
-<a name="l00750"></a>00750     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00751"></a>00751 
-<a name="l00752"></a>00752     <span class="keywordflow">return</span> ret;
-<a name="l00753"></a>00753 }
+<a name="l00701"></a>00701     finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> = sqlite3_last_insert_rowid(sqlite3_db_handle(stmt));
+<a name="l00702"></a>00702     ret = 0;
+<a name="l00703"></a>00703 
+<a name="l00704"></a>00704   done:
+<a name="l00705"></a>00705     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00706"></a>00706 
+<a name="l00707"></a>00707     <span class="keywordflow">return</span> ret;
+<a name="l00708"></a>00708 }
+<a name="l00709"></a>00709 
+<a name="l00710"></a>00710 sqlite3_stmt *
+<a name="l00711"></a><a class="code" href="lightmediascanner__db__private_8h.html#76941bdbbdb711fff821343e91c2cd97">00711</a> <a class="code" href="lightmediascanner__db__common_8c.html#559925f8e4d5bf61d1bcf44844a95699">lms_db_compile_stmt_delete_file_info</a>(sqlite3 *db)
+<a name="l00712"></a>00712 {
+<a name="l00713"></a>00713     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db, <span class="stringliteral">"DELETE FROM files WHERE id = ?"</span>);
+<a name="l00714"></a>00714 }
+<a name="l00715"></a>00715 
+<a name="l00716"></a>00716 <span class="keywordtype">int</span>
+<a name="l00717"></a><a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">00717</a> <a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lms_db_delete_file_info</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
+<a name="l00718"></a>00718 {
+<a name="l00719"></a>00719     <span class="keywordtype">int</span> r, ret;
+<a name="l00720"></a>00720 
+<a name="l00721"></a>00721     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a>);
+<a name="l00722"></a>00722     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00723"></a>00723         <span class="keywordflow">goto</span> done;
+<a name="l00724"></a>00724 
+<a name="l00725"></a>00725     r = sqlite3_step(stmt);
+<a name="l00726"></a>00726     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00727"></a>00727         fprintf(stderr, <span class="stringliteral">"ERROR: could not delete file info: %s\n"</span>,
+<a name="l00728"></a>00728                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00729"></a>00729         ret = -2;
+<a name="l00730"></a>00730         <span class="keywordflow">goto</span> done;
+<a name="l00731"></a>00731     }
+<a name="l00732"></a>00732     ret = 0;
+<a name="l00733"></a>00733 
+<a name="l00734"></a>00734   done:
+<a name="l00735"></a>00735     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00736"></a>00736 
+<a name="l00737"></a>00737     <span class="keywordflow">return</span> ret;
+<a name="l00738"></a>00738 }
+<a name="l00739"></a>00739 
+<a name="l00740"></a>00740 sqlite3_stmt *
+<a name="l00741"></a><a class="code" href="lightmediascanner__db__private_8h.html#08c34b5b1b6e927a696ff0ce66562f54">00741</a> <a class="code" href="lightmediascanner__db__common_8c.html#1b6950ca9e548670a4cb7fd0ec5220a8">lms_db_compile_stmt_set_file_dtime</a>(sqlite3 *db)
+<a name="l00742"></a>00742 {
+<a name="l00743"></a>00743     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db, <span class="stringliteral">"UPDATE files SET dtime = ? WHERE id = ?"</span>);
+<a name="l00744"></a>00744 }
+<a name="l00745"></a>00745 
+<a name="l00746"></a>00746 <span class="keywordtype">int</span>
+<a name="l00747"></a><a class="code" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">00747</a> <a class="code" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">lms_db_set_file_dtime</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
+<a name="l00748"></a>00748 {
+<a name="l00749"></a>00749     <span class="keywordtype">int</span> r, ret;
+<a name="l00750"></a>00750 
+<a name="l00751"></a>00751     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>);
+<a name="l00752"></a>00752     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00753"></a>00753         <span class="keywordflow">goto</span> done;
 <a name="l00754"></a>00754 
-<a name="l00755"></a>00755 sqlite3_stmt *
-<a name="l00756"></a><a class="code" href="lightmediascanner__db__private_8h.html#1cc8a80961a0febdd099a028f3da9c30">00756</a> <a class="code" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lms_db_compile_stmt_get_files</a>(sqlite3 *db)
-<a name="l00757"></a>00757 {
-<a name="l00758"></a>00758     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
-<a name="l00759"></a>00759         <span class="stringliteral">"SELECT id, path, mtime, dtime, size FROM files WHERE path LIKE ?"</span>);
-<a name="l00760"></a>00760 }
-<a name="l00761"></a>00761 
-<a name="l00762"></a>00762 <span class="keywordtype">int</span>
-<a name="l00763"></a><a class="code" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">00763</a> <a class="code" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">lms_db_get_files</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> len)
-<a name="l00764"></a>00764 {
-<a name="l00765"></a>00765     <span class="keywordtype">int</span> ret;
+<a name="l00755"></a>00755     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, finfo-&gt;<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a>);
+<a name="l00756"></a>00756     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00757"></a>00757         <span class="keywordflow">goto</span> done;
+<a name="l00758"></a>00758 
+<a name="l00759"></a>00759     r = sqlite3_step(stmt);
+<a name="l00760"></a>00760     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00761"></a>00761         fprintf(stderr, <span class="stringliteral">"ERROR: could not set file dtime: %s\n"</span>,
+<a name="l00762"></a>00762                 sqlite3_errmsg(sqlite3_db_handle(stmt)));
+<a name="l00763"></a>00763         ret = -3;
+<a name="l00764"></a>00764         <span class="keywordflow">goto</span> done;
+<a name="l00765"></a>00765     }
 <a name="l00766"></a>00766 
-<a name="l00767"></a>00767     ret = <a class="code" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lms_db_bind_blob</a>(stmt, 1, path, len);
-<a name="l00768"></a>00768     <span class="keywordflow">return</span> ret;
-<a name="l00769"></a>00769 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00767"></a>00767     ret = 0;
+<a name="l00768"></a>00768 
+<a name="l00769"></a>00769   done:
+<a name="l00770"></a>00770     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00771"></a>00771 
+<a name="l00772"></a>00772     <span class="keywordflow">return</span> ret;
+<a name="l00773"></a>00773 }
+<a name="l00774"></a>00774 
+<a name="l00775"></a>00775 sqlite3_stmt *
+<a name="l00776"></a><a class="code" href="lightmediascanner__db__private_8h.html#1cc8a80961a0febdd099a028f3da9c30">00776</a> <a class="code" href="lightmediascanner__db__common_8c.html#73ae2cfd7babf80294cf31f02906223b">lms_db_compile_stmt_get_files</a>(sqlite3 *db)
+<a name="l00777"></a>00777 {
+<a name="l00778"></a>00778     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(db,
+<a name="l00779"></a>00779         <span class="stringliteral">"SELECT id, path, mtime, dtime, size FROM files WHERE path LIKE ?"</span>);
+<a name="l00780"></a>00780 }
+<a name="l00781"></a>00781 
+<a name="l00782"></a>00782 <span class="keywordtype">int</span>
+<a name="l00783"></a><a class="code" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">00783</a> <a class="code" href="lightmediascanner__db__common_8c.html#df572e74e0821a66ebd16f575b4fb7c4">lms_db_get_files</a>(sqlite3_stmt *stmt, <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> len)
+<a name="l00784"></a>00784 {
+<a name="l00785"></a>00785     <span class="keywordtype">int</span> ret;
+<a name="l00786"></a>00786 
+<a name="l00787"></a>00787     ret = <a class="code" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6">lms_db_bind_blob</a>(stmt, 1, path, len);
+<a name="l00788"></a>00788     <span class="keywordflow">return</span> ret;
+<a name="l00789"></a>00789 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 772e05a..3589b2e 100644 (file)
@@ -4,30 +4,31 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_db_common.c File Reference</h1><code>#include &quot;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&quot;</code><br>
 <code>#include &lt;stdlib.h&gt;</code><br>
 <code>#include &lt;stdio.h&gt;</code><br>
 <code>#include &lt;string.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_db_common.c:<p><center><img src="lightmediascanner__db__common_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_common.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_db_common.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_common.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db_common.c_map">
-<area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="295,56,487,83"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="537,107,705,133"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="795,107,923,133"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="756,157,961,184"></map>
+<area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="23,84,257,111"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="177,161,377,188"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__db__common_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -61,9 +62,9 @@ Include dependency graph for lightmediascanner_db_common.c:<p><center><img src="
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lms_db_table_version_set</a> (sqlite3 *db, const char *table, unsigned int version)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lms_db_table_update</a> (sqlite3 *db, const char *table, unsigned int current_version, unsigned int last_version, const <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *updaters)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lms_db_table_update</a> (sqlite3 *db, const char *table, unsigned int current_version, unsigned int last_version, const <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *updaters)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a> (sqlite3 *db, const char *table, unsigned int last_version, <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *updaters)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a> (sqlite3 *db, const char *table, unsigned int last_version, <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *updaters)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a> (struct <a class="el" href="structlms__db__cache.html">lms_db_cache</a> *cache, const sqlite3 *db, void *data)</td></tr>
 
@@ -117,7 +118,7 @@ Include dependency graph for lightmediascanner_db_common.c:<p><center><img src="
           <td class="paramtype">sqlite3_stmt *&nbsp;</td>
           <td class="paramname"> <em>stmt</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -125,8 +126,10 @@ Include dependency graph for lightmediascanner_db_common.c:<p><center><img src="
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00512">512</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00532">532</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="fee26461dbd6c89c82794c94aaeeaef6"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_bind_blob" ref="fee26461dbd6c89c82794c94aaeeaef6" args="(sqlite3_stmt *stmt, int col, const void *blob, int len)" -->
@@ -160,7 +163,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -168,10 +171,10 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00148">148</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00763">lms_db_get_files()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00168">168</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00783">lms_db_get_files()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="4ae660a876f1e362d1ab2f8c68bdef3f"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_bind_double" ref="4ae660a876f1e362d1ab2f8c68bdef3f" args="(sqlite3_stmt *stmt, int col, double value)" -->
@@ -199,7 +202,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -207,8 +210,8 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00231">231</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00251">251</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="de261036cf3228f0b6a79a9c68687c4f"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_bind_int" ref="de261036cf3228f0b6a79a9c68687c4f" args="(sqlite3_stmt *stmt, int col, int value)" -->
@@ -236,7 +239,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -244,10 +247,10 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00212">212</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">lms_db_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">lms_db_update_file_info()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00232">232</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">lms_db_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">lms_db_update_file_info()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f2fe78bc45dc33d843313a846db5ce7c"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_bind_int64" ref="f2fe78bc45dc33d843313a846db5ce7c" args="(sqlite3_stmt *stmt, int col, int64_t value)" -->
@@ -275,7 +278,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -283,10 +286,10 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00171">171</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00697">lms_db_delete_file_info()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">lms_db_set_file_dtime()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00191">191</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00717">lms_db_delete_file_info()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">lms_db_set_file_dtime()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="2a0a5d3a27fdee8508b2b0cc59979417"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_bind_int64_or_null" ref="2a0a5d3a27fdee8508b2b0cc59979417" args="(sqlite3_stmt *stmt, int col, int64_t *p_value)" -->
@@ -314,7 +317,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -322,8 +325,8 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00190">190</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00210">210</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="88c461ae88da3eb47987c5a0b15c5888"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_bind_text" ref="88c461ae88da3eb47987c5a0b15c5888" args="(sqlite3_stmt *stmt, int col, const char *text, int len)" -->
@@ -357,7 +360,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -365,10 +368,10 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00125">125</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00250">lms_db_table_version_get()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00145">145</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00270">lms_db_table_version_get()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="19b0458b9d7b76370588156e931a9c04"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_cache_add" ref="19b0458b9d7b76370588156e931a9c04" args="(struct lms_db_cache *cache, const sqlite3 *db, void *data)" -->
@@ -396,7 +399,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -404,12 +407,12 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">387</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__private_8h-source.html#l00059">lms_db_cache_entry::data</a>, <a class="el" href="lightmediascanner__db__private_8h-source.html#l00058">lms_db_cache_entry::db</a>, <a class="el" href="lightmediascanner__db__private_8h-source.html#l00064">lms_db_cache::entries</a>, and <a class="el" href="lightmediascanner__db__private_8h-source.html#l00063">lms_db_cache::size</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00247">lms_db_audio_new()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00097">lms_db_image_new()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00091">lms_db_playlist_new()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00104">lms_db_video_new()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">407</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__private_8h-source.html#l00059">lms_db_cache_entry::data</a>, <a class="el" href="lightmediascanner__db__private_8h-source.html#l00058">lms_db_cache_entry::db</a>, <a class="el" href="lightmediascanner__db__private_8h-source.html#l00064">lms_db_cache::entries</a>, and <a class="el" href="lightmediascanner__db__private_8h-source.html#l00063">lms_db_cache::size</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00297">lms_db_audio_new()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00117">lms_db_image_new()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00111">lms_db_playlist_new()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00124">lms_db_video_new()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="296c81e4c64be1c7935ef31038aeb2c0"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_cache_del" ref="296c81e4c64be1c7935ef31038aeb2c0" args="(struct lms_db_cache *cache, const sqlite3 *db, void *data)" -->
@@ -437,7 +440,7 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -445,12 +448,12 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00417">417</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__private_8h-source.html#l00059">lms_db_cache_entry::data</a>, <a class="el" href="lightmediascanner__db__private_8h-source.html#l00064">lms_db_cache::entries</a>, and <a class="el" href="lightmediascanner__db__private_8h-source.html#l00063">lms_db_cache::size</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00352">lms_db_audio_free()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00173">lms_db_image_free()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00165">lms_db_playlist_free()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00177">lms_db_video_free()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00437">437</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__private_8h-source.html#l00059">lms_db_cache_entry::data</a>, <a class="el" href="lightmediascanner__db__private_8h-source.html#l00064">lms_db_cache::entries</a>, and <a class="el" href="lightmediascanner__db__private_8h-source.html#l00063">lms_db_cache::size</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00402">lms_db_audio_free()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00193">lms_db_image_free()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00185">lms_db_playlist_free()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00197">lms_db_video_free()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="e7a672fa5760bae1a669c737648fe7d3"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_cache_get" ref="e7a672fa5760bae1a669c737648fe7d3" args="(struct lms_db_cache *cache, const sqlite3 *db, void **pdata)" -->
@@ -478,7 +481,7 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -486,12 +489,12 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00442">442</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__private_8h-source.html#l00059">lms_db_cache_entry::data</a>, and <a class="el" href="lightmediascanner__db__private_8h-source.html#l00064">lms_db_cache::entries</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00247">lms_db_audio_new()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00097">lms_db_image_new()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00091">lms_db_playlist_new()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00104">lms_db_video_new()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00462">462</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__private_8h-source.html#l00059">lms_db_cache_entry::data</a>, and <a class="el" href="lightmediascanner__db__private_8h-source.html#l00064">lms_db_cache::entries</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00297">lms_db_audio_new()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00117">lms_db_image_new()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00111">lms_db_playlist_new()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00124">lms_db_video_new()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="5fddf47521f83929b0c90a481fa01c5b"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_compile_stmt" ref="5fddf47521f83929b0c90a481fa01c5b" args="(sqlite3 *db, const char *sql)" -->
@@ -513,7 +516,7 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -521,16 +524,20 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">101</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00028">sqlite3_prepare_v2()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00341">lms_db_audio_start()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00526">lms_db_compile_stmt_begin_transaction()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00711">lms_db_compile_stmt_delete_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00553">lms_db_compile_stmt_end_transaction()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00580">lms_db_compile_stmt_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00776">lms_db_compile_stmt_get_files()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00666">lms_db_compile_stmt_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00741">lms_db_compile_stmt_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00622">lms_db_compile_stmt_update_file_info()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00161">lms_db_image_start()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00155">lms_db_playlist_start()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00270">lms_db_table_version_get()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00168">lms_db_video_start()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">81</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00008">sqlite3_prepare_v2()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00291">lms_db_audio_start()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00506">lms_db_compile_stmt_begin_transaction()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00691">lms_db_compile_stmt_delete_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00533">lms_db_compile_stmt_end_transaction()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00560">lms_db_compile_stmt_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00756">lms_db_compile_stmt_get_files()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00646">lms_db_compile_stmt_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00721">lms_db_compile_stmt_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00602">lms_db_compile_stmt_update_file_info()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00141">lms_db_image_start()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00135">lms_db_playlist_start()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00250">lms_db_table_version_get()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00148">lms_db_video_start()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="196,5,319,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="223,5,369,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -544,7 +551,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -552,14 +559,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00526">526</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00506">506</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="297,5,436,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="487,5,609,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="349,5,517,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="567,5,713,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -573,7 +584,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -581,14 +592,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00711">711</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00691">691</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="287,5,425,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="476,5,599,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="331,5,499,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="548,5,695,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -602,7 +617,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -610,14 +625,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00553">553</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00533">533</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="287,5,425,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="476,5,599,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="339,5,507,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="556,5,703,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -631,7 +650,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -639,14 +658,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00580">580</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00560">560</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="271,5,409,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="460,5,583,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="309,5,477,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="527,5,673,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -660,7 +683,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -668,14 +691,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00776">776</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00756">756</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="247,5,385,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="436,5,559,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="285,5,453,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="503,5,649,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -689,7 +716,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -697,14 +724,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00666">666</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00646">646</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="284,5,423,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="473,5,596,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="325,5,493,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="543,5,689,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -718,7 +749,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -726,14 +757,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00741">741</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00721">721</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="279,5,417,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="468,5,591,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="325,5,493,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="543,5,689,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -747,7 +782,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -755,14 +790,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00622">622</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00602">602</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="289,5,428,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="479,5,601,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="333,5,501,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="551,5,697,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -776,7 +815,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -784,8 +823,8 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00455">455</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00475">475</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="822cae681398710b63c9af149fdacedb"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_create_trigger_if_not_exists" ref="822cae681398710b63c9af149fdacedb" args="(sqlite3 *db, const char *sql)" -->
@@ -807,7 +846,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -815,8 +854,8 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00035">35</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00055">55</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="bb2a9cdbbc7680d1ec85ef3f086b3f63"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_delete_file_info" ref="bb2a9cdbbc7680d1ec85ef3f086b3f63" args="(sqlite3_stmt *stmt, const struct lms_file_info *finfo)" -->
@@ -838,7 +877,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -846,14 +885,18 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00717">717</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00191">lms_db_bind_int64()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">lms_db_reset_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00697">697</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00171">lms_db_bind_int64()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">lms_db_reset_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c" title="lms_db_bind_int64" alt="" coords="205,5,331,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="207,56,329,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="380,56,521,83"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c" title="lms_db_bind_int64" alt="" coords="237,5,379,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="232,56,384,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="433,56,599,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -867,7 +910,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3_stmt *&nbsp;</td>
           <td class="paramname"> <em>stmt</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -875,8 +918,10 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00539">539</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00559">559</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="32110a4825e598ca6df329f55b0b62b5"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_finalize_stmt" ref="32110a4825e598ca6df329f55b0b62b5" args="(sqlite3_stmt *stmt, const char *name)" -->
@@ -898,7 +943,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -906,10 +951,10 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00093">93</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00352">lms_db_audio_free()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00173">lms_db_image_free()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00165">lms_db_playlist_free()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00250">lms_db_table_version_get()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00177">lms_db_video_free()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00113">113</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00402">lms_db_audio_free()</a>, <a class="el" href="lightmediascanner__db__image_8c-source.html#l00193">lms_db_image_free()</a>, <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00185">lms_db_playlist_free()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00270">lms_db_table_version_get()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__video_8c-source.html#l00197">lms_db_video_free()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="c0b7cf0b2eb0f55fbf8a4103bc9569d1"></a><!-- doxytag: member="lightmediascanner_db_common.c::lms_db_get_file_info" ref="c0b7cf0b2eb0f55fbf8a4103bc9569d1" args="(sqlite3_stmt *stmt, struct lms_file_info *finfo)" -->
@@ -931,7 +976,7 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -939,14 +984,18 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">587</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">lms_file_info::dtime</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00168">lms_db_bind_blob()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">lms_db_reset_stmt()</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00138">lms_file_info::mtime</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__plugin_8h-source.html#l00140">lms_file_info::size</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">567</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">lms_file_info::dtime</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00148">lms_db_bind_blob()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">lms_db_reset_stmt()</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00138">lms_file_info::mtime</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__plugin_8h-source.html#l00140">lms_file_info::size</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="191,5,311,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="189,56,312,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="361,56,503,83"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="219,5,355,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="211,56,363,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="412,56,577,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -975,7 +1024,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -983,14 +1032,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00783">783</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00168">lms_db_bind_blob()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00763">763</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00148">lms_db_bind_blob()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="169,5,289,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="187,5,323,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -1013,7 +1066,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1021,14 +1074,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">673</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">lms_file_info::dtime</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00168">lms_db_bind_blob()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00232">lms_db_bind_int()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">lms_db_reset_stmt()</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00138">lms_file_info::mtime</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__plugin_8h-source.html#l00140">lms_file_info::size</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">653</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">lms_file_info::dtime</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00148">lms_db_bind_blob()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00212">lms_db_bind_int()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">lms_db_reset_stmt()</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00138">lms_file_info::mtime</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__plugin_8h-source.html#l00140">lms_file_info::size</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="204,5,324,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="208,56,320,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="203,107,325,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="375,107,516,133"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="235,6,371,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="240,56,365,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="227,107,379,134"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="428,107,593,134"></map>
+</div>
 
 </div>
 </div><p>
@@ -1042,7 +1099,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3_stmt *&nbsp;</td>
           <td class="paramname"> <em>stmt</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -1050,16 +1107,20 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">128</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00036">sqlite3_clear_bindings()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00717">lms_db_delete_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">lms_db_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00270">lms_db_table_version_get()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">lms_db_update_file_info()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">108</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00016">sqlite3_clear_bindings()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00697">lms_db_delete_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">lms_db_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00250">lms_db_table_version_get()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">lms_db_update_file_info()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="177,5,319,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="207,5,372,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -1082,7 +1143,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1090,14 +1151,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">747</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">lms_file_info::dtime</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00232">lms_db_bind_int()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00191">lms_db_bind_int64()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">lms_db_reset_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">727</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">lms_file_info::dtime</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00212">lms_db_bind_int()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00171">lms_db_bind_int64()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">lms_db_reset_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="204,5,316,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c" title="lms_db_bind_int64" alt="" coords="197,56,323,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="199,107,321,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="372,107,513,133"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="240,6,365,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c" title="lms_db_bind_int64" alt="" coords="232,56,373,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="227,107,379,134"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="428,107,593,134"></map>
+</div>
 
 </div>
 </div><p>
@@ -1132,13 +1197,13 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *&nbsp;</td>
+          <td class="paramtype">const <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *&nbsp;</td>
           <td class="paramname"> <em>updaters</em></td><td>&nbsp;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1146,16 +1211,20 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00337">337</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00367">lms_db_table_update_if_required()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00317">317</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00347">lms_db_table_update_if_required()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7" title="lms_db_table_version_set" alt="" coords="189,107,349,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="412,5,524,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="409,56,527,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="399,107,537,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="400,157,536,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="407,208,529,235"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="597,107,720,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="588,208,729,235"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7" title="lms_db_table_version_set" alt="" coords="219,107,413,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="483,5,608,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="476,56,615,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="461,107,629,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="464,157,627,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="469,208,621,235"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="688,107,835,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="679,208,844,235"></map>
+</div>
 
 </div>
 </div><p>
@@ -1184,13 +1253,13 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *&nbsp;</td>
+          <td class="paramtype"><a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *&nbsp;</td>
           <td class="paramname"> <em>updaters</em></td><td>&nbsp;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1198,14 +1267,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00367">367</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00337">lms_db_table_update()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00270">lms_db_table_version_get()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00347">347</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00317">lms_db_table_update()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00250">lms_db_table_version_get()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558" title="lms_db_table_update" alt="" coords="256,107,392,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd" title="lms_db_table_version_get" alt="" coords="440,157,603,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7" title="lms_db_table_version_set" alt="" coords="441,107,601,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="665,5,777,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="663,107,780,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="652,56,791,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="653,208,789,235"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="660,157,783,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="851,56,973,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="841,157,983,184"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558" title="lms_db_table_update" alt="" coords="297,107,460,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd" title="lms_db_table_version_get" alt="" coords="511,157,705,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7" title="lms_db_table_version_set" alt="" coords="511,107,705,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="776,5,901,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="769,107,908,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="755,56,923,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="757,208,920,235"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="763,157,915,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="981,56,1128,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="972,157,1137,184"></map>
+</div>
 
 </div>
 </div><p>
@@ -1228,7 +1301,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1236,16 +1309,20 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00270">270</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00145">lms_db_bind_text()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00113">lms_db_finalize_stmt()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">lms_db_reset_stmt()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00367">lms_db_table_update_if_required()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00250">250</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00125">lms_db_bind_text()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00093">lms_db_finalize_stmt()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">lms_db_reset_stmt()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00347">lms_db_table_update_if_required()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="228,5,345,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="217,56,356,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="219,107,355,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="225,157,348,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="416,56,539,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="407,157,548,184"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="265,5,404,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="251,56,419,82"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="253,106,416,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="259,157,411,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="477,56,624,82"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="468,157,633,184"></map>
+</div>
 
 </div>
 </div><p>
@@ -1274,7 +1351,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1282,16 +1359,20 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">304</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00232">lms_db_bind_int()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00145">lms_db_bind_text()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00113">lms_db_finalize_stmt()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">lms_db_reset_stmt()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00337">lms_db_table_update()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">284</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00212">lms_db_bind_int()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00125">lms_db_bind_text()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00093">lms_db_finalize_stmt()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">lms_db_reset_stmt()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00317">lms_db_table_update()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="228,5,340,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="225,56,343,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="215,107,353,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="216,157,352,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="223,208,345,235"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="413,107,536,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="404,208,545,235"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="269,5,395,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="263,56,401,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="248,107,416,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="251,157,413,184"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="256,208,408,235"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="475,107,621,133"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="465,208,631,235"></map>
+</div>
 
 </div>
 </div><p>
@@ -1314,7 +1395,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1322,14 +1403,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">629</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">lms_file_info::dtime</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00232">lms_db_bind_int()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">lms_db_reset_stmt()</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00138">lms_file_info::mtime</a>, and <a class="el" href="lightmediascanner__plugin_8h-source.html#l00140">lms_file_info::size</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">609</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">lms_file_info::dtime</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">lms_file_info::id</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00212">lms_db_bind_int()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">lms_db_reset_stmt()</a>, <a class="el" href="lightmediascanner__plugin_8h-source.html#l00138">lms_file_info::mtime</a>, and <a class="el" href="lightmediascanner__plugin_8h-source.html#l00140">lms_file_info::size</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph.png" border="0" usemap="#lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="216,5,328,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="211,56,333,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="383,56,524,83"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="248,5,373,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="235,56,387,83"><area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="436,56,601,83"></map>
+</div>
 
 </div>
 </div><p>
@@ -1343,7 +1428,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3_stmt *&nbsp;</td>
           <td class="paramname"> <em>stmt</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -1351,10 +1436,10 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00016">16</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">lms_db_reset_stmt()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00036">36</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">lms_db_reset_stmt()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="21da1a6588f354b758211583559ae405"></a><!-- doxytag: member="lightmediascanner_db_common.c::sqlite3_prepare_v2" ref="21da1a6588f354b758211583559ae405" args="(sqlite3 *db, const char *sql, int len, sqlite3_stmt **stmt, const char **tail)" -->
@@ -1394,22 +1479,28 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
+Copyright (C) 2007 by INdT<p>
+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>
+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>
+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>
+<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>
+
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00028">28</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00008">8</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:56 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 90f6a23..7641ea1 100644 (file)
@@ -1,4 +1,4 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="204,5,316,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c" title="lms_db_bind_int64" alt="" coords="197,56,323,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="199,107,321,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="372,107,513,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="240,6,365,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c" title="lms_db_bind_int64" alt="" coords="232,56,373,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="227,107,379,134">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="428,107,593,134">
index 27715dc..54270c6 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph.png and b/www/api/lightmediascanner__db__common_8c_024e3bd9385fd740f75618716c90b04f_cgraph.png differ
index f250c90..4cebd92 100644 (file)
@@ -1,3 +1,3 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="216,5,328,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="211,56,333,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="383,56,524,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="248,5,373,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="235,56,387,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="436,56,601,83">
index 52482cd..977a635 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph.png and b/www/api/lightmediascanner__db__common_8c_0f727cd41bbb90af2e08b3ee7ca76de9_cgraph.png differ
index e7045d2..30568de 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="297,5,436,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="487,5,609,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="349,5,517,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="567,5,713,32">
index de691e2..db336f2 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph.png and b/www/api/lightmediascanner__db__common_8c_1787fdaf148358c7a518e91dfd871ca1_cgraph.png differ
index d94cf4b..63fea02 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="279,5,417,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="468,5,591,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="325,5,493,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="543,5,689,32">
index 4149e94..6b48033 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph.png and b/www/api/lightmediascanner__db__common_8c_1b6950ca9e548670a4cb7fd0ec5220a8_cgraph.png differ
index 44c61e3..c886504 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="289,5,428,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="479,5,601,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="333,5,501,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="551,5,697,32">
index 53a30cf..525c5cd 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph.png and b/www/api/lightmediascanner__db__common_8c_1e6e76cfa9d6faa3c3b8035004eff1a0_cgraph.png differ
index c762020..69abee5 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="177,5,319,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="207,5,372,32">
index d7b9e79..397b654 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph.png and b/www/api/lightmediascanner__db__common_8c_226c6f7ab2e7923b747b7090357ea419_cgraph.png differ
index 96b428f..bf18e9c 100644 (file)
@@ -1,7 +1,7 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="228,5,340,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="225,56,343,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="215,107,353,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="216,157,352,184">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="223,208,345,235">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="413,107,536,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="404,208,545,235">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="269,5,395,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="263,56,401,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="248,107,416,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="251,157,413,184">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="256,208,408,235">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="475,107,621,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="465,208,631,235">
index 68d16c3..567ba48 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph.png and b/www/api/lightmediascanner__db__common_8c_46e6e318ea9bb4a7ffdfe40c842da4e7_cgraph.png differ
index 49aeb2f..879cac9 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="287,5,425,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="476,5,599,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="331,5,499,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="548,5,695,32">
index 2144215..e022acf 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph.png and b/www/api/lightmediascanner__db__common_8c_559925f8e4d5bf61d1bcf44844a95699_cgraph.png differ
index b45f793..0c87194 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="196,5,319,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="223,5,369,32">
index b8b3104..184dcb2 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph.png and b/www/api/lightmediascanner__db__common_8c_5fddf47521f83929b0c90a481fa01c5b_cgraph.png differ
index 8045b86..29d2320 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="247,5,385,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="436,5,559,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="285,5,453,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="503,5,649,32">
index 68595e6..cd01e3a 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph.png and b/www/api/lightmediascanner__db__common_8c_73ae2cfd7babf80294cf31f02906223b_cgraph.png differ
index c7a0d16..099ce1b 100644 (file)
@@ -1,10 +1,10 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558" title="lms_db_table_update" alt="" coords="256,107,392,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd" title="lms_db_table_version_get" alt="" coords="440,157,603,184">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7" title="lms_db_table_version_set" alt="" coords="441,107,601,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="665,5,777,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="663,107,780,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="652,56,791,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="653,208,789,235">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="660,157,783,184">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="851,56,973,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="841,157,983,184">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558" title="lms_db_table_update" alt="" coords="297,107,460,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd" title="lms_db_table_version_get" alt="" coords="511,157,705,184">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7" title="lms_db_table_version_set" alt="" coords="511,107,705,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="776,5,901,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="769,107,908,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="755,56,923,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="757,208,920,235">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="763,157,915,184">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="981,56,1128,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="972,157,1137,184">
index 8891e0c..91f4fa2 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph.png and b/www/api/lightmediascanner__db__common_8c_86b766535f9dc7895da7d0f606201700_cgraph.png differ
index ad44bfe..63fea02 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="284,5,423,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="473,5,596,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="325,5,493,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="543,5,689,32">
index 434c52b..9a732dc 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph.png and b/www/api/lightmediascanner__db__common_8c_9a5886e755eb428ac811956144eee0dc_cgraph.png differ
index ff6afc5..45cdaaa 100644 (file)
@@ -1,8 +1,8 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7" title="lms_db_table_version_set" alt="" coords="189,107,349,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="412,5,524,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="409,56,527,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="399,107,537,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="400,157,536,184">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="407,208,529,235">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="597,107,720,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="588,208,729,235">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7" title="lms_db_table_version_set" alt="" coords="219,107,413,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="483,5,608,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="476,56,615,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="461,107,629,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="464,157,627,184">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="469,208,621,235">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="688,107,835,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="679,208,844,235">
index 840fd70..acaba73 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph.png and b/www/api/lightmediascanner__db__common_8c_9bca88ae79959baff3accee8ce10b558_cgraph.png differ
index 08b8776..ef32f3b 100644 (file)
@@ -1,4 +1,4 @@
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="295,56,487,83">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="537,107,705,133">
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="795,107,923,133">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="756,157,961,184">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="23,84,257,111">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="177,161,377,188">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265">
index e8ff10c..7fb3507 100644 (file)
@@ -1 +1 @@
-264a73e0300f7fc21733a46a317433fb
\ No newline at end of file
+5e2437ea7180d3cd3e57391b2cfb5fef
\ No newline at end of file
index eb21bf9..921c1bc 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c__incl.png and b/www/api/lightmediascanner__db__common_8c__incl.png differ
index a62f463..ada243e 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="271,5,409,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="460,5,583,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="309,5,477,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="527,5,673,32">
index f22b93d..d84726e 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph.png and b/www/api/lightmediascanner__db__common_8c_b00a624bc01da9b796f7bc6e1d507cf8_cgraph.png differ
index 16fdf07..4fc430c 100644 (file)
@@ -1,3 +1,3 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c" title="lms_db_bind_int64" alt="" coords="205,5,331,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="207,56,329,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="380,56,521,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c" title="lms_db_bind_int64" alt="" coords="237,5,379,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="232,56,384,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="433,56,599,83">
index c777388..9ae8059 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph.png and b/www/api/lightmediascanner__db__common_8c_bb2a9cdbbc7680d1ec85ef3f086b3f63_cgraph.png differ
index 49aeb2f..69628fd 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="287,5,425,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="476,5,599,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="339,5,507,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="556,5,703,32">
index c91b45c..0ddc056 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph.png and b/www/api/lightmediascanner__db__common_8c_bff1aa6077215f3d70d4d5b1a9b7a498_cgraph.png differ
index a835ffe..121ee7f 100644 (file)
@@ -1,3 +1,3 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="191,5,311,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="189,56,312,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="361,56,503,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="219,5,355,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="211,56,363,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="412,56,577,83">
index ad34967..8f66f94 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph.png and b/www/api/lightmediascanner__db__common_8c_c0b7cf0b2eb0f55fbf8a4103bc9569d1_cgraph.png differ
index 6d6226e..5e3d516 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="169,5,289,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="187,5,323,32">
index e3b7acb..0fd863a 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph.png and b/www/api/lightmediascanner__db__common_8c_df572e74e0821a66ebd16f575b4fb7c4_cgraph.png differ
index 722d046..07f9908 100644 (file)
@@ -1,4 +1,4 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="204,5,324,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="208,56,320,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="203,107,325,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="375,107,516,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#fee26461dbd6c89c82794c94aaeeaef6" title="lms_db_bind_blob" alt="" coords="235,6,371,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f" title="lms_db_bind_int" alt="" coords="240,56,365,83">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="227,107,379,134">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="428,107,593,134">
index 1fcc9cc..ad391c6 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph.png and b/www/api/lightmediascanner__db__common_8c_e529ad5c4478d53685c65ec69dc5b1f4_cgraph.png differ
index 2483baf..b5c7657 100644 (file)
@@ -1,6 +1,6 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="228,5,345,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="217,56,356,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="219,107,355,133">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="225,157,348,184">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="416,56,539,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="407,157,548,184">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888" title="lms_db_bind_text" alt="" coords="265,5,404,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="251,56,419,82">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5" title="lms_db_finalize_stmt" alt="" coords="253,106,416,133">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419" title="lms_db_reset_stmt" alt="" coords="259,157,411,184">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="477,56,624,82">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="468,157,633,184">
index 788c25a..13f1d89 100644 (file)
Binary files a/www/api/lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph.png and b/www/api/lightmediascanner__db__common_8c_eba3215ee5981a73e9d0fed0a7e079cd_cgraph.png differ
index b168c02..405ec50 100644 (file)
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<h1>src/lib/lightmediascanner_db_image.c</h1><a href="lightmediascanner__db__image_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a>&gt;</span>
-<a name="l00002"></a>00002 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
-<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
-<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
-<a name="l00005"></a>00005 
-<a name="l00006"></a>00006 <span class="keyword">struct </span>lms_db_image {
-<a name="l00007"></a>00007     sqlite3 *db;
-<a name="l00008"></a>00008     sqlite3_stmt *insert;
-<a name="l00009"></a>00009     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _references;
-<a name="l00010"></a>00010     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _is_started:1;
-<a name="l00011"></a>00011 };
-<a name="l00012"></a>00012 
-<a name="l00013"></a>00013 <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structlms__db__cache.html">lms_db_cache</a> _cache = {0, NULL};
-<a name="l00014"></a>00014 
-<a name="l00015"></a>00015 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00016"></a>00016 _db_table_updater_images_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
-<a name="l00017"></a>00017     <span class="keywordtype">char</span> *errmsg;
-<a name="l00018"></a>00018     <span class="keywordtype">int</span> r, ret;
-<a name="l00019"></a>00019 
-<a name="l00020"></a>00020     errmsg = NULL;
-<a name="l00021"></a>00021     r = sqlite3_exec(db,
-<a name="l00022"></a>00022                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS images ("</span>
-<a name="l00023"></a>00023                      <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
-<a name="l00024"></a>00024                      <span class="stringliteral">"title TEXT, "</span>
-<a name="l00025"></a>00025                      <span class="stringliteral">"artist TEXT, "</span>
-<a name="l00026"></a>00026                      <span class="stringliteral">"date INTEGER NOT NULL, "</span>
-<a name="l00027"></a>00027                      <span class="stringliteral">"width INTEGER NOT NULL, "</span>
-<a name="l00028"></a>00028                      <span class="stringliteral">"height INTEGER NOT NULL, "</span>
-<a name="l00029"></a>00029                      <span class="stringliteral">"orientation INTEGER NOT NULL, "</span>
-<a name="l00030"></a>00030                      <span class="stringliteral">"gps_lat REAL DEFAULT 0.0, "</span>
-<a name="l00031"></a>00031                      <span class="stringliteral">"gps_long REAL DEFAULT 0.0, "</span>
-<a name="l00032"></a>00032                      <span class="stringliteral">"gps_alt REAL DEFAULT 0.0"</span>
-<a name="l00033"></a>00033                      <span class="stringliteral">")"</span>,
-<a name="l00034"></a>00034                      NULL, NULL, &amp;errmsg);
-<a name="l00035"></a>00035     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00036"></a>00036         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'images' table: %s\n"</span>, errmsg);
-<a name="l00037"></a>00037         sqlite3_free(errmsg);
-<a name="l00038"></a>00038         <span class="keywordflow">return</span> -1;
-<a name="l00039"></a>00039     }
-<a name="l00040"></a>00040 
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>src/lib/lightmediascanner_db_image.c</h1><a href="lightmediascanner__db__image_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="keyword">struct </span>lms_db_image {
+<a name="l00027"></a>00027     sqlite3 *db;
+<a name="l00028"></a>00028     sqlite3_stmt *insert;
+<a name="l00029"></a>00029     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _references;
+<a name="l00030"></a>00030     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _is_started:1;
+<a name="l00031"></a>00031 };
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structlms__db__cache.html">lms_db_cache</a> _cache = {0, NULL};
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00036"></a>00036 _db_table_updater_images_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
+<a name="l00037"></a>00037     <span class="keywordtype">char</span> *errmsg;
+<a name="l00038"></a>00038     <span class="keywordtype">int</span> r, ret;
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     errmsg = NULL;
 <a name="l00041"></a>00041     r = sqlite3_exec(db,
-<a name="l00042"></a>00042                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS images_date_idx ON images ("</span>
-<a name="l00043"></a>00043                      <span class="stringliteral">"date"</span>
-<a name="l00044"></a>00044                      <span class="stringliteral">")"</span>,
-<a name="l00045"></a>00045                      NULL, NULL, &amp;errmsg);
-<a name="l00046"></a>00046     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00047"></a>00047         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'images_date_idx' index: %s\n"</span>,
-<a name="l00048"></a>00048                 errmsg);
-<a name="l00049"></a>00049         sqlite3_free(errmsg);
-<a name="l00050"></a>00050         <span class="keywordflow">return</span> -2;
-<a name="l00051"></a>00051     }
-<a name="l00052"></a>00052 
-<a name="l00053"></a>00053     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00054"></a>00054         <span class="stringliteral">"delete_images_on_files_deleted "</span>
-<a name="l00055"></a>00055         <span class="stringliteral">"DELETE ON files FOR EACH ROW BEGIN "</span>
-<a name="l00056"></a>00056         <span class="stringliteral">" DELETE FROM images WHERE id = OLD.id; END;"</span>);
-<a name="l00057"></a>00057     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00058"></a>00058         <span class="keywordflow">goto</span> done;
-<a name="l00059"></a>00059 
-<a name="l00060"></a>00060     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00061"></a>00061         <span class="stringliteral">"delete_files_on_images_deleted "</span>
-<a name="l00062"></a>00062         <span class="stringliteral">"DELETE ON images FOR EACH ROW BEGIN "</span>
-<a name="l00063"></a>00063         <span class="stringliteral">" DELETE FROM files WHERE id = OLD.id; END;"</span>);
-<a name="l00064"></a>00064 
-<a name="l00065"></a>00065   done:
-<a name="l00066"></a>00066     <span class="keywordflow">return</span> ret;
-<a name="l00067"></a>00067 }
-<a name="l00068"></a>00068 
-<a name="l00069"></a>00069 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> _db_table_updater_images[] = {
-<a name="l00070"></a>00070     _db_table_updater_images_0
-<a name="l00071"></a>00071 };
+<a name="l00042"></a>00042                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS images ("</span>
+<a name="l00043"></a>00043                      <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
+<a name="l00044"></a>00044                      <span class="stringliteral">"title TEXT, "</span>
+<a name="l00045"></a>00045                      <span class="stringliteral">"artist TEXT, "</span>
+<a name="l00046"></a>00046                      <span class="stringliteral">"date INTEGER NOT NULL, "</span>
+<a name="l00047"></a>00047                      <span class="stringliteral">"width INTEGER NOT NULL, "</span>
+<a name="l00048"></a>00048                      <span class="stringliteral">"height INTEGER NOT NULL, "</span>
+<a name="l00049"></a>00049                      <span class="stringliteral">"orientation INTEGER NOT NULL, "</span>
+<a name="l00050"></a>00050                      <span class="stringliteral">"gps_lat REAL DEFAULT 0.0, "</span>
+<a name="l00051"></a>00051                      <span class="stringliteral">"gps_long REAL DEFAULT 0.0, "</span>
+<a name="l00052"></a>00052                      <span class="stringliteral">"gps_alt REAL DEFAULT 0.0"</span>
+<a name="l00053"></a>00053                      <span class="stringliteral">")"</span>,
+<a name="l00054"></a>00054                      NULL, NULL, &amp;errmsg);
+<a name="l00055"></a>00055     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00056"></a>00056         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'images' table: %s\n"</span>, errmsg);
+<a name="l00057"></a>00057         sqlite3_free(errmsg);
+<a name="l00058"></a>00058         <span class="keywordflow">return</span> -1;
+<a name="l00059"></a>00059     }
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061     r = sqlite3_exec(db,
+<a name="l00062"></a>00062                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS images_date_idx ON images ("</span>
+<a name="l00063"></a>00063                      <span class="stringliteral">"date"</span>
+<a name="l00064"></a>00064                      <span class="stringliteral">")"</span>,
+<a name="l00065"></a>00065                      NULL, NULL, &amp;errmsg);
+<a name="l00066"></a>00066     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00067"></a>00067         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'images_date_idx' index: %s\n"</span>,
+<a name="l00068"></a>00068                 errmsg);
+<a name="l00069"></a>00069         sqlite3_free(errmsg);
+<a name="l00070"></a>00070         <span class="keywordflow">return</span> -2;
+<a name="l00071"></a>00071     }
 <a name="l00072"></a>00072 
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00075"></a>00075 _db_create_table_if_required(sqlite3 *db)
-<a name="l00076"></a>00076 {
-<a name="l00077"></a>00077     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(db, <span class="stringliteral">"images"</span>,
-<a name="l00078"></a>00078          <a class="code" href="lightmediascanner__utils_8h.html#13a0622cfcc91eec261da4285621bdcc">LMS_ARRAY_SIZE</a>(_db_table_updater_images),
-<a name="l00079"></a>00079          _db_table_updater_images);
-<a name="l00080"></a>00080 }
-<a name="l00081"></a>00081 
-<a name="l00096"></a>00096 <a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *
-<a name="l00097"></a><a class="code" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">00097</a> <a class="code" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lms_db_image_new</a>(sqlite3 *db)
-<a name="l00098"></a>00098 {
-<a name="l00099"></a>00099     <a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi;
-<a name="l00100"></a>00100     <span class="keywordtype">void</span> *p;
+<a name="l00073"></a>00073     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00074"></a>00074         <span class="stringliteral">"delete_images_on_files_deleted "</span>
+<a name="l00075"></a>00075         <span class="stringliteral">"DELETE ON files FOR EACH ROW BEGIN "</span>
+<a name="l00076"></a>00076         <span class="stringliteral">" DELETE FROM images WHERE id = OLD.id; END;"</span>);
+<a name="l00077"></a>00077     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00078"></a>00078         <span class="keywordflow">goto</span> done;
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00081"></a>00081         <span class="stringliteral">"delete_files_on_images_deleted "</span>
+<a name="l00082"></a>00082         <span class="stringliteral">"DELETE ON images FOR EACH ROW BEGIN "</span>
+<a name="l00083"></a>00083         <span class="stringliteral">" DELETE FROM files WHERE id = OLD.id; END;"</span>);
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085   done:
+<a name="l00086"></a>00086     <span class="keywordflow">return</span> ret;
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> _db_table_updater_images[] = {
+<a name="l00090"></a>00090     _db_table_updater_images_0
+<a name="l00091"></a>00091 };
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00095"></a>00095 _db_create_table_if_required(sqlite3 *db)
+<a name="l00096"></a>00096 {
+<a name="l00097"></a>00097     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(db, <span class="stringliteral">"images"</span>,
+<a name="l00098"></a>00098          <a class="code" href="lightmediascanner__utils_8h.html#13a0622cfcc91eec261da4285621bdcc">LMS_ARRAY_SIZE</a>(_db_table_updater_images),
+<a name="l00099"></a>00099          _db_table_updater_images);
+<a name="l00100"></a>00100 }
 <a name="l00101"></a>00101 
-<a name="l00102"></a>00102     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(&amp;_cache, db, &amp;p) == 0) {
-<a name="l00103"></a>00103         ldi = p;
-<a name="l00104"></a>00104         ldi-&gt;_references++;
-<a name="l00105"></a>00105         <span class="keywordflow">return</span> ldi;
-<a name="l00106"></a>00106     }
-<a name="l00107"></a>00107 
-<a name="l00108"></a>00108     <span class="keywordflow">if</span> (!db)
-<a name="l00109"></a>00109         <span class="keywordflow">return</span> NULL;
-<a name="l00110"></a>00110 
-<a name="l00111"></a>00111     <span class="keywordflow">if</span> (_db_create_table_if_required(db) != 0) {
-<a name="l00112"></a>00112         fprintf(stderr, <span class="stringliteral">"ERROR: could not create table.\n"</span>);
-<a name="l00113"></a>00113         <span class="keywordflow">return</span> NULL;
-<a name="l00114"></a>00114     }
-<a name="l00115"></a>00115 
-<a name="l00116"></a>00116     ldi = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a>));
-<a name="l00117"></a>00117     ldi-&gt;_references = 1;
-<a name="l00118"></a>00118     ldi-&gt;db = db;
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(&amp;_cache, db, ldi) != 0) {
-<a name="l00121"></a>00121         <a class="code" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lms_db_image_free</a>(ldi);
-<a name="l00122"></a>00122         <span class="keywordflow">return</span> NULL;
-<a name="l00123"></a>00123     }
-<a name="l00124"></a>00124 
-<a name="l00125"></a>00125     <span class="keywordflow">return</span> ldi;
-<a name="l00126"></a>00126 }
+<a name="l00116"></a>00116 <a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *
+<a name="l00117"></a><a class="code" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">00117</a> <a class="code" href="group__LMS__DB.html#g3eac8dbebc0a847b63702e531872e2e7">lms_db_image_new</a>(sqlite3 *db)
+<a name="l00118"></a>00118 {
+<a name="l00119"></a>00119     <a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi;
+<a name="l00120"></a>00120     <span class="keywordtype">void</span> *p;
+<a name="l00121"></a>00121 
+<a name="l00122"></a>00122     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(&amp;_cache, db, &amp;p) == 0) {
+<a name="l00123"></a>00123         ldi = p;
+<a name="l00124"></a>00124         ldi-&gt;_references++;
+<a name="l00125"></a>00125         <span class="keywordflow">return</span> ldi;
+<a name="l00126"></a>00126     }
 <a name="l00127"></a>00127 
-<a name="l00140"></a>00140 <span class="keywordtype">int</span>
-<a name="l00141"></a><a class="code" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">00141</a> <a class="code" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lms_db_image_start</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi)
-<a name="l00142"></a>00142 {
-<a name="l00143"></a>00143     <span class="keywordflow">if</span> (!ldi)
-<a name="l00144"></a>00144         <span class="keywordflow">return</span> -1;
-<a name="l00145"></a>00145     <span class="keywordflow">if</span> (ldi-&gt;_is_started)
-<a name="l00146"></a>00146         <span class="keywordflow">return</span> 0;
+<a name="l00128"></a>00128     <span class="keywordflow">if</span> (!db)
+<a name="l00129"></a>00129         <span class="keywordflow">return</span> NULL;
+<a name="l00130"></a>00130 
+<a name="l00131"></a>00131     <span class="keywordflow">if</span> (_db_create_table_if_required(db) != 0) {
+<a name="l00132"></a>00132         fprintf(stderr, <span class="stringliteral">"ERROR: could not create table.\n"</span>);
+<a name="l00133"></a>00133         <span class="keywordflow">return</span> NULL;
+<a name="l00134"></a>00134     }
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136     ldi = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a>));
+<a name="l00137"></a>00137     ldi-&gt;_references = 1;
+<a name="l00138"></a>00138     ldi-&gt;db = db;
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(&amp;_cache, db, ldi) != 0) {
+<a name="l00141"></a>00141         <a class="code" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lms_db_image_free</a>(ldi);
+<a name="l00142"></a>00142         <span class="keywordflow">return</span> NULL;
+<a name="l00143"></a>00143     }
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145     <span class="keywordflow">return</span> ldi;
+<a name="l00146"></a>00146 }
 <a name="l00147"></a>00147 
-<a name="l00148"></a>00148     ldi-&gt;insert = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(ldi-&gt;db,
-<a name="l00149"></a>00149         <span class="stringliteral">"INSERT OR REPLACE INTO images ("</span>
-<a name="l00150"></a>00150         <span class="stringliteral">"id, title, artist, date, width, height, orientation, "</span>
-<a name="l00151"></a>00151         <span class="stringliteral">"gps_lat, gps_long, gps_alt) VALUES ("</span>
-<a name="l00152"></a>00152         <span class="stringliteral">"?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"</span>);
-<a name="l00153"></a>00153     <span class="keywordflow">if</span> (!ldi-&gt;insert)
-<a name="l00154"></a>00154         <span class="keywordflow">return</span> -2;
-<a name="l00155"></a>00155 
-<a name="l00156"></a>00156     ldi-&gt;_is_started = 1;
-<a name="l00157"></a>00157     <span class="keywordflow">return</span> 0;
-<a name="l00158"></a>00158 }
-<a name="l00159"></a>00159 
-<a name="l00172"></a>00172 <span class="keywordtype">int</span>
-<a name="l00173"></a><a class="code" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">00173</a> <a class="code" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lms_db_image_free</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi)
-<a name="l00174"></a>00174 {
-<a name="l00175"></a>00175     <span class="keywordtype">int</span> r;
-<a name="l00176"></a>00176 
-<a name="l00177"></a>00177     <span class="keywordflow">if</span> (!ldi)
-<a name="l00178"></a>00178         <span class="keywordflow">return</span> -1;
-<a name="l00179"></a>00179     <span class="keywordflow">if</span> (ldi-&gt;_references == 0) {
-<a name="l00180"></a>00180         fprintf(stderr, <span class="stringliteral">"ERROR: over-called lms_db_image_free(%p)\n"</span>, ldi);
-<a name="l00181"></a>00181         <span class="keywordflow">return</span> -1;
-<a name="l00182"></a>00182     }
-<a name="l00183"></a>00183 
-<a name="l00184"></a>00184     ldi-&gt;_references--;
-<a name="l00185"></a>00185     <span class="keywordflow">if</span> (ldi-&gt;_references &gt; 0)
-<a name="l00186"></a>00186         <span class="keywordflow">return</span> 0;
-<a name="l00187"></a>00187 
-<a name="l00188"></a>00188     <span class="keywordflow">if</span> (ldi-&gt;insert)
-<a name="l00189"></a>00189         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(ldi-&gt;insert, <span class="stringliteral">"insert"</span>);
-<a name="l00190"></a>00190 
-<a name="l00191"></a>00191     r = <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(&amp;_cache, ldi-&gt;db, ldi);
-<a name="l00192"></a>00192     free(ldi);
-<a name="l00193"></a>00193 
-<a name="l00194"></a>00194     <span class="keywordflow">return</span> r;
-<a name="l00195"></a>00195 }
+<a name="l00160"></a>00160 <span class="keywordtype">int</span>
+<a name="l00161"></a><a class="code" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">00161</a> <a class="code" href="group__LMS__DB.html#g66dc91038d76fa96d9feaaa119e2ae56">lms_db_image_start</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi)
+<a name="l00162"></a>00162 {
+<a name="l00163"></a>00163     <span class="keywordflow">if</span> (!ldi)
+<a name="l00164"></a>00164         <span class="keywordflow">return</span> -1;
+<a name="l00165"></a>00165     <span class="keywordflow">if</span> (ldi-&gt;_is_started)
+<a name="l00166"></a>00166         <span class="keywordflow">return</span> 0;
+<a name="l00167"></a>00167 
+<a name="l00168"></a>00168     ldi-&gt;insert = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(ldi-&gt;db,
+<a name="l00169"></a>00169         <span class="stringliteral">"INSERT OR REPLACE INTO images ("</span>
+<a name="l00170"></a>00170         <span class="stringliteral">"id, title, artist, date, width, height, orientation, "</span>
+<a name="l00171"></a>00171         <span class="stringliteral">"gps_lat, gps_long, gps_alt) VALUES ("</span>
+<a name="l00172"></a>00172         <span class="stringliteral">"?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"</span>);
+<a name="l00173"></a>00173     <span class="keywordflow">if</span> (!ldi-&gt;insert)
+<a name="l00174"></a>00174         <span class="keywordflow">return</span> -2;
+<a name="l00175"></a>00175 
+<a name="l00176"></a>00176     ldi-&gt;_is_started = 1;
+<a name="l00177"></a>00177     <span class="keywordflow">return</span> 0;
+<a name="l00178"></a>00178 }
+<a name="l00179"></a>00179 
+<a name="l00192"></a>00192 <span class="keywordtype">int</span>
+<a name="l00193"></a><a class="code" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">00193</a> <a class="code" href="group__LMS__DB.html#g5160a3f620f1ebd562b6ec0add0f65a6">lms_db_image_free</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi)
+<a name="l00194"></a>00194 {
+<a name="l00195"></a>00195     <span class="keywordtype">int</span> r;
 <a name="l00196"></a>00196 
-<a name="l00197"></a>00197 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00198"></a>00198 _db_insert(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__image__info.html">lms_image_info</a> *info)
-<a name="l00199"></a>00199 {
-<a name="l00200"></a>00200     sqlite3_stmt *stmt;
-<a name="l00201"></a>00201     <span class="keywordtype">int</span> r, ret;
-<a name="l00202"></a>00202 
-<a name="l00203"></a>00203     stmt = ldi-&gt;insert;
-<a name="l00204"></a>00204 
-<a name="l00205"></a>00205     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, info-&gt;<a class="code" href="structlms__image__info.html#e6af5a9d85600a7694991681d141844b">id</a>);
-<a name="l00206"></a>00206     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00207"></a>00207         <span class="keywordflow">goto</span> done;
-<a name="l00208"></a>00208 
-<a name="l00209"></a>00209     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__image__info.html#6242d231ae1972fb25bdaeed614d7a63">title</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__image__info.html#6242d231ae1972fb25bdaeed614d7a63">title</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00210"></a>00210     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00211"></a>00211         <span class="keywordflow">goto</span> done;
-<a name="l00212"></a>00212 
-<a name="l00213"></a>00213     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 3, info-&gt;<a class="code" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">artist</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">artist</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00214"></a>00214     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00215"></a>00215         <span class="keywordflow">goto</span> done;
+<a name="l00197"></a>00197     <span class="keywordflow">if</span> (!ldi)
+<a name="l00198"></a>00198         <span class="keywordflow">return</span> -1;
+<a name="l00199"></a>00199     <span class="keywordflow">if</span> (ldi-&gt;_references == 0) {
+<a name="l00200"></a>00200         fprintf(stderr, <span class="stringliteral">"ERROR: over-called lms_db_image_free(%p)\n"</span>, ldi);
+<a name="l00201"></a>00201         <span class="keywordflow">return</span> -1;
+<a name="l00202"></a>00202     }
+<a name="l00203"></a>00203 
+<a name="l00204"></a>00204     ldi-&gt;_references--;
+<a name="l00205"></a>00205     <span class="keywordflow">if</span> (ldi-&gt;_references &gt; 0)
+<a name="l00206"></a>00206         <span class="keywordflow">return</span> 0;
+<a name="l00207"></a>00207 
+<a name="l00208"></a>00208     <span class="keywordflow">if</span> (ldi-&gt;insert)
+<a name="l00209"></a>00209         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(ldi-&gt;insert, <span class="stringliteral">"insert"</span>);
+<a name="l00210"></a>00210 
+<a name="l00211"></a>00211     r = <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(&amp;_cache, ldi-&gt;db, ldi);
+<a name="l00212"></a>00212     free(ldi);
+<a name="l00213"></a>00213 
+<a name="l00214"></a>00214     <span class="keywordflow">return</span> r;
+<a name="l00215"></a>00215 }
 <a name="l00216"></a>00216 
-<a name="l00217"></a>00217     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 4, info-&gt;<a class="code" href="structlms__image__info.html#150973d3ac9f60f1b74f0a0d08c7f288">date</a>);
-<a name="l00218"></a>00218     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00219"></a>00219         <span class="keywordflow">goto</span> done;
-<a name="l00220"></a>00220 
-<a name="l00221"></a>00221     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 5, info-&gt;<a class="code" href="structlms__image__info.html#fbd2df9f6f5f290ac02ce4d803677249">width</a>);
-<a name="l00222"></a>00222     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00223"></a>00223         <span class="keywordflow">goto</span> done;
+<a name="l00217"></a>00217 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00218"></a>00218 _db_insert(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__image__info.html">lms_image_info</a> *info)
+<a name="l00219"></a>00219 {
+<a name="l00220"></a>00220     sqlite3_stmt *stmt;
+<a name="l00221"></a>00221     <span class="keywordtype">int</span> r, ret;
+<a name="l00222"></a>00222 
+<a name="l00223"></a>00223     stmt = ldi-&gt;insert;
 <a name="l00224"></a>00224 
-<a name="l00225"></a>00225     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 6, info-&gt;<a class="code" href="structlms__image__info.html#f2ae81781dadf7ecaa307b3bc91e710e">height</a>);
+<a name="l00225"></a>00225     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, info-&gt;<a class="code" href="structlms__image__info.html#e6af5a9d85600a7694991681d141844b">id</a>);
 <a name="l00226"></a>00226     <span class="keywordflow">if</span> (ret != 0)
 <a name="l00227"></a>00227         <span class="keywordflow">goto</span> done;
 <a name="l00228"></a>00228 
-<a name="l00229"></a>00229     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 7, info-&gt;<a class="code" href="structlms__image__info.html#434330468b69d0f14b344c672d4778af">orientation</a>);
+<a name="l00229"></a>00229     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__image__info.html#6242d231ae1972fb25bdaeed614d7a63">title</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__image__info.html#6242d231ae1972fb25bdaeed614d7a63">title</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
 <a name="l00230"></a>00230     <span class="keywordflow">if</span> (ret != 0)
 <a name="l00231"></a>00231         <span class="keywordflow">goto</span> done;
 <a name="l00232"></a>00232 
-<a name="l00233"></a>00233     ret = <a class="code" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lms_db_bind_double</a>(stmt, 8, info-&gt;<a class="code" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a>.<a class="code" href="structlms__gps__info.html#70f152098accf3d46f18bc159e3b4359">latitude</a>);
+<a name="l00233"></a>00233     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 3, info-&gt;<a class="code" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">artist</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">artist</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
 <a name="l00234"></a>00234     <span class="keywordflow">if</span> (ret != 0)
 <a name="l00235"></a>00235         <span class="keywordflow">goto</span> done;
 <a name="l00236"></a>00236 
-<a name="l00237"></a>00237     ret = <a class="code" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lms_db_bind_double</a>(stmt, 9, info-&gt;<a class="code" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a>.<a class="code" href="structlms__gps__info.html#109202a83eb79b9a10df135600260e1b">longitude</a>);
+<a name="l00237"></a>00237     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 4, info-&gt;<a class="code" href="structlms__image__info.html#150973d3ac9f60f1b74f0a0d08c7f288">date</a>);
 <a name="l00238"></a>00238     <span class="keywordflow">if</span> (ret != 0)
 <a name="l00239"></a>00239         <span class="keywordflow">goto</span> done;
 <a name="l00240"></a>00240 
-<a name="l00241"></a>00241     ret = <a class="code" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lms_db_bind_double</a>(stmt, 10, info-&gt;<a class="code" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a>.<a class="code" href="structlms__gps__info.html#9b56b5dbae3e5c5722f7331c2bcbd520">altitude</a>);
+<a name="l00241"></a>00241     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 5, info-&gt;<a class="code" href="structlms__image__info.html#fbd2df9f6f5f290ac02ce4d803677249">width</a>);
 <a name="l00242"></a>00242     <span class="keywordflow">if</span> (ret != 0)
 <a name="l00243"></a>00243         <span class="keywordflow">goto</span> done;
 <a name="l00244"></a>00244 
-<a name="l00245"></a>00245     r = sqlite3_step(stmt);
-<a name="l00246"></a>00246     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00247"></a>00247         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert image info: %s\n"</span>,
-<a name="l00248"></a>00248                 sqlite3_errmsg(ldi-&gt;db));
-<a name="l00249"></a>00249         ret = -11;
-<a name="l00250"></a>00250         <span class="keywordflow">goto</span> done;
-<a name="l00251"></a>00251     }
+<a name="l00245"></a>00245     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 6, info-&gt;<a class="code" href="structlms__image__info.html#f2ae81781dadf7ecaa307b3bc91e710e">height</a>);
+<a name="l00246"></a>00246     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00247"></a>00247         <span class="keywordflow">goto</span> done;
+<a name="l00248"></a>00248 
+<a name="l00249"></a>00249     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 7, info-&gt;<a class="code" href="structlms__image__info.html#434330468b69d0f14b344c672d4778af">orientation</a>);
+<a name="l00250"></a>00250     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00251"></a>00251         <span class="keywordflow">goto</span> done;
 <a name="l00252"></a>00252 
-<a name="l00253"></a>00253     ret = 0;
-<a name="l00254"></a>00254 
-<a name="l00255"></a>00255   done:
-<a name="l00256"></a>00256     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00257"></a>00257 
-<a name="l00258"></a>00258     <span class="keywordflow">return</span> ret;
-<a name="l00259"></a>00259 }
+<a name="l00253"></a>00253     ret = <a class="code" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lms_db_bind_double</a>(stmt, 8, info-&gt;<a class="code" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a>.<a class="code" href="structlms__gps__info.html#70f152098accf3d46f18bc159e3b4359">latitude</a>);
+<a name="l00254"></a>00254     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00255"></a>00255         <span class="keywordflow">goto</span> done;
+<a name="l00256"></a>00256 
+<a name="l00257"></a>00257     ret = <a class="code" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lms_db_bind_double</a>(stmt, 9, info-&gt;<a class="code" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a>.<a class="code" href="structlms__gps__info.html#109202a83eb79b9a10df135600260e1b">longitude</a>);
+<a name="l00258"></a>00258     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00259"></a>00259         <span class="keywordflow">goto</span> done;
 <a name="l00260"></a>00260 
-<a name="l00272"></a>00272 <span class="keywordtype">int</span>
-<a name="l00273"></a><a class="code" href="lightmediascanner__db__image_8c.html#f23fcc3d62a0f6592e14eaf1dc9b5833">00273</a> <a class="code" href="group__LMS__DB.html#gbf78dd3b90caa31e8901369211501200">lms_db_image_add</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi, <span class="keyword">struct</span> <a class="code" href="structlms__image__info.html">lms_image_info</a> *info)
-<a name="l00274"></a>00274 {
-<a name="l00275"></a>00275     <span class="keywordflow">if</span> (!ldi)
-<a name="l00276"></a>00276         <span class="keywordflow">return</span> -1;
-<a name="l00277"></a>00277     <span class="keywordflow">if</span> (!info)
-<a name="l00278"></a>00278         <span class="keywordflow">return</span> -2;
-<a name="l00279"></a>00279     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="structlms__image__info.html#e6af5a9d85600a7694991681d141844b">id</a> &lt; 1)
-<a name="l00280"></a>00280         <span class="keywordflow">return</span> -3;
-<a name="l00281"></a>00281 
-<a name="l00282"></a>00282     <span class="keywordflow">return</span> _db_insert(ldi, info);
-<a name="l00283"></a>00283 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00261"></a>00261     ret = <a class="code" href="lightmediascanner__db__common_8c.html#4ae660a876f1e362d1ab2f8c68bdef3f">lms_db_bind_double</a>(stmt, 10, info-&gt;<a class="code" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a>.<a class="code" href="structlms__gps__info.html#9b56b5dbae3e5c5722f7331c2bcbd520">altitude</a>);
+<a name="l00262"></a>00262     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00263"></a>00263         <span class="keywordflow">goto</span> done;
+<a name="l00264"></a>00264 
+<a name="l00265"></a>00265     r = sqlite3_step(stmt);
+<a name="l00266"></a>00266     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00267"></a>00267         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert image info: %s\n"</span>,
+<a name="l00268"></a>00268                 sqlite3_errmsg(ldi-&gt;db));
+<a name="l00269"></a>00269         ret = -11;
+<a name="l00270"></a>00270         <span class="keywordflow">goto</span> done;
+<a name="l00271"></a>00271     }
+<a name="l00272"></a>00272 
+<a name="l00273"></a>00273     ret = 0;
+<a name="l00274"></a>00274 
+<a name="l00275"></a>00275   done:
+<a name="l00276"></a>00276     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278     <span class="keywordflow">return</span> ret;
+<a name="l00279"></a>00279 }
+<a name="l00280"></a>00280 
+<a name="l00292"></a>00292 <span class="keywordtype">int</span>
+<a name="l00293"></a><a class="code" href="lightmediascanner__db__image_8c.html#f23fcc3d62a0f6592e14eaf1dc9b5833">00293</a> <a class="code" href="group__LMS__DB.html#gbf78dd3b90caa31e8901369211501200">lms_db_image_add</a>(<a class="code" href="group__LMS__DB.html#gf09fb00e8cf6c7d5f76f257ecdea11a6">lms_db_image_t</a> *ldi, <span class="keyword">struct</span> <a class="code" href="structlms__image__info.html">lms_image_info</a> *info)
+<a name="l00294"></a>00294 {
+<a name="l00295"></a>00295     <span class="keywordflow">if</span> (!ldi)
+<a name="l00296"></a>00296         <span class="keywordflow">return</span> -1;
+<a name="l00297"></a>00297     <span class="keywordflow">if</span> (!info)
+<a name="l00298"></a>00298         <span class="keywordflow">return</span> -2;
+<a name="l00299"></a>00299     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="structlms__image__info.html#e6af5a9d85600a7694991681d141844b">id</a> &lt; 1)
+<a name="l00300"></a>00300         <span class="keywordflow">return</span> -3;
+<a name="l00301"></a>00301 
+<a name="l00302"></a>00302     <span class="keywordflow">return</span> _db_insert(ldi, info);
+<a name="l00303"></a>00303 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 8ef9ede..4ea1e18 100644 (file)
@@ -4,30 +4,31 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_db_image.c File Reference</h1><code>#include &lt;<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>&gt;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&quot;</code><br>
 <code>#include &lt;stdlib.h&gt;</code><br>
 <code>#include &lt;stdio.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_db_image.c:<p><center><img src="lightmediascanner__db__image_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_image.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_db_image.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__image_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_image.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db_image.c_map">
-<area shape="rect" href="lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="300,107,449,133"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="279,56,471,83"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="521,107,689,133"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="527,157,684,184"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="779,107,907,133"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="740,157,945,184"></map>
+<area shape="rect" href="lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="292,84,471,111"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="33,84,268,111"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="188,161,388,188"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="412,161,604,188"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__db__image_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -62,7 +63,7 @@ Include dependency graph for lightmediascanner_db_image.c:<p><center><img src="l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -79,14 +80,15 @@ This is usually called from plugin's <b>parse()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__image_8c-source.html#l00273">273</a> of file <a class="el" href="lightmediascanner__db__image_8c-source.html">lightmediascanner_db_image.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db_8h-source.html#l00068">lms_image_info::id</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__image_8c-source.html#l00293">293</a> of file <a class="el" href="lightmediascanner__db__image_8c-source.html">lightmediascanner_db_image.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db_8h-source.html#l00068">lms_image_info::id</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:56 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 8df1391..5296cfa 100644 (file)
@@ -1,6 +1,6 @@
-<area shape="rect" href="$lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="300,107,449,133">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="279,56,471,83">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="521,107,689,133">
-<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="527,157,684,184">
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="779,107,907,133">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="740,157,945,184">
+<area shape="rect" href="$lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="292,84,471,111">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="33,84,268,111">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="188,161,388,188">
+<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="412,161,604,188">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265">
index 7511090..7fa473e 100644 (file)
@@ -1 +1 @@
-e083e2e3773d3d81a27a5260aa936185
\ No newline at end of file
+1fb23785d53ee973dde72b349e7344b7
\ No newline at end of file
index 79a426a..f1254bd 100644 (file)
Binary files a/www/api/lightmediascanner__db__image_8c__incl.png and b/www/api/lightmediascanner__db__image_8c__incl.png differ
index d36b5f0..fb58ba3 100644 (file)
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<h1>src/lib/lightmediascanner_db_playlist.c</h1><a href="lightmediascanner__db__playlist_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a>&gt;</span>
-<a name="l00002"></a>00002 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
-<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
-<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
-<a name="l00005"></a>00005 
-<a name="l00006"></a>00006 <span class="keyword">struct </span>lms_db_playlist {
-<a name="l00007"></a>00007     sqlite3 *db;
-<a name="l00008"></a>00008     sqlite3_stmt *insert;
-<a name="l00009"></a>00009     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _references;
-<a name="l00010"></a>00010     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _is_started:1;
-<a name="l00011"></a>00011 };
-<a name="l00012"></a>00012 
-<a name="l00013"></a>00013 <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structlms__db__cache.html">lms_db_cache</a> _cache = {0, NULL};
-<a name="l00014"></a>00014 
-<a name="l00015"></a>00015 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00016"></a>00016 _db_table_updater_playlists_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
-<a name="l00017"></a>00017     <span class="keywordtype">char</span> *errmsg;
-<a name="l00018"></a>00018     <span class="keywordtype">int</span> r, ret;
-<a name="l00019"></a>00019 
-<a name="l00020"></a>00020     errmsg = NULL;
-<a name="l00021"></a>00021     r = sqlite3_exec(db,
-<a name="l00022"></a>00022                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS playlists ("</span>
-<a name="l00023"></a>00023                      <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
-<a name="l00024"></a>00024                      <span class="stringliteral">"title TEXT, "</span>
-<a name="l00025"></a>00025                      <span class="stringliteral">"n_entries INTEGER NOT NULL"</span>
-<a name="l00026"></a>00026                      <span class="stringliteral">")"</span>,
-<a name="l00027"></a>00027                      NULL, NULL, &amp;errmsg);
-<a name="l00028"></a>00028     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00029"></a>00029         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'playlists' table: %s\n"</span>,
-<a name="l00030"></a>00030                 errmsg);
-<a name="l00031"></a>00031         sqlite3_free(errmsg);
-<a name="l00032"></a>00032         <span class="keywordflow">return</span> -1;
-<a name="l00033"></a>00033     }
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>src/lib/lightmediascanner_db_playlist.c</h1><a href="lightmediascanner__db__playlist_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="keyword">struct </span>lms_db_playlist {
+<a name="l00027"></a>00027     sqlite3 *db;
+<a name="l00028"></a>00028     sqlite3_stmt *insert;
+<a name="l00029"></a>00029     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _references;
+<a name="l00030"></a>00030     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _is_started:1;
+<a name="l00031"></a>00031 };
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structlms__db__cache.html">lms_db_cache</a> _cache = {0, NULL};
 <a name="l00034"></a>00034 
-<a name="l00035"></a>00035     r = sqlite3_exec(db,
-<a name="l00036"></a>00036                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS playlists_title_idx ON "</span>
-<a name="l00037"></a>00037                      <span class="stringliteral">"playlists (title)"</span>,
-<a name="l00038"></a>00038                      NULL, NULL, &amp;errmsg);
-<a name="l00039"></a>00039     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00040"></a>00040         fprintf(stderr,
-<a name="l00041"></a>00041                 <span class="stringliteral">"ERROR: could not create 'playlists_title_idx' index: %s\n"</span>,
-<a name="l00042"></a>00042                 errmsg);
-<a name="l00043"></a>00043         sqlite3_free(errmsg);
-<a name="l00044"></a>00044         <span class="keywordflow">return</span> -2;
-<a name="l00045"></a>00045     }
-<a name="l00046"></a>00046 
-<a name="l00047"></a>00047     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00048"></a>00048         <span class="stringliteral">"delete_playlists_on_files_deleted "</span>
-<a name="l00049"></a>00049         <span class="stringliteral">"DELETE ON files FOR EACH ROW BEGIN "</span>
-<a name="l00050"></a>00050         <span class="stringliteral">" DELETE FROM playlists WHERE id = OLD.id; END;"</span>);
-<a name="l00051"></a>00051     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00052"></a>00052         <span class="keywordflow">goto</span> done;
-<a name="l00053"></a>00053 
-<a name="l00054"></a>00054     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00055"></a>00055         <span class="stringliteral">"delete_files_on_playlists_deleted "</span>
-<a name="l00056"></a>00056         <span class="stringliteral">"DELETE ON playlists FOR EACH ROW BEGIN "</span>
-<a name="l00057"></a>00057         <span class="stringliteral">" DELETE FROM files WHERE id = OLD.id; END;"</span>);
-<a name="l00058"></a>00058 
-<a name="l00059"></a>00059   done:
-<a name="l00060"></a>00060     <span class="keywordflow">return</span> ret;
-<a name="l00061"></a>00061 }
-<a name="l00062"></a>00062 
-<a name="l00063"></a>00063 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> _db_table_updater_playlists[] = {
-<a name="l00064"></a>00064     _db_table_updater_playlists_0
-<a name="l00065"></a>00065 };
+<a name="l00035"></a>00035 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00036"></a>00036 _db_table_updater_playlists_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
+<a name="l00037"></a>00037     <span class="keywordtype">char</span> *errmsg;
+<a name="l00038"></a>00038     <span class="keywordtype">int</span> r, ret;
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     errmsg = NULL;
+<a name="l00041"></a>00041     r = sqlite3_exec(db,
+<a name="l00042"></a>00042                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS playlists ("</span>
+<a name="l00043"></a>00043                      <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
+<a name="l00044"></a>00044                      <span class="stringliteral">"title TEXT, "</span>
+<a name="l00045"></a>00045                      <span class="stringliteral">"n_entries INTEGER NOT NULL"</span>
+<a name="l00046"></a>00046                      <span class="stringliteral">")"</span>,
+<a name="l00047"></a>00047                      NULL, NULL, &amp;errmsg);
+<a name="l00048"></a>00048     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00049"></a>00049         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'playlists' table: %s\n"</span>,
+<a name="l00050"></a>00050                 errmsg);
+<a name="l00051"></a>00051         sqlite3_free(errmsg);
+<a name="l00052"></a>00052         <span class="keywordflow">return</span> -1;
+<a name="l00053"></a>00053     }
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     r = sqlite3_exec(db,
+<a name="l00056"></a>00056                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS playlists_title_idx ON "</span>
+<a name="l00057"></a>00057                      <span class="stringliteral">"playlists (title)"</span>,
+<a name="l00058"></a>00058                      NULL, NULL, &amp;errmsg);
+<a name="l00059"></a>00059     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00060"></a>00060         fprintf(stderr,
+<a name="l00061"></a>00061                 <span class="stringliteral">"ERROR: could not create 'playlists_title_idx' index: %s\n"</span>,
+<a name="l00062"></a>00062                 errmsg);
+<a name="l00063"></a>00063         sqlite3_free(errmsg);
+<a name="l00064"></a>00064         <span class="keywordflow">return</span> -2;
+<a name="l00065"></a>00065     }
 <a name="l00066"></a>00066 
-<a name="l00067"></a>00067 
-<a name="l00068"></a>00068 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00069"></a>00069 _db_create_table_if_required(sqlite3 *db)
-<a name="l00070"></a>00070 {
-<a name="l00071"></a>00071     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(db, <span class="stringliteral">"playlists"</span>,
-<a name="l00072"></a>00072          <a class="code" href="lightmediascanner__utils_8h.html#13a0622cfcc91eec261da4285621bdcc">LMS_ARRAY_SIZE</a>(_db_table_updater_playlists),
-<a name="l00073"></a>00073          _db_table_updater_playlists);
-<a name="l00074"></a>00074 }
-<a name="l00075"></a>00075 
-<a name="l00090"></a>00090 <a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *
-<a name="l00091"></a><a class="code" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">00091</a> <a class="code" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lms_db_playlist_new</a>(sqlite3 *db)
-<a name="l00092"></a>00092 {
-<a name="l00093"></a>00093     <a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp;
-<a name="l00094"></a>00094     <span class="keywordtype">void</span> *p;
+<a name="l00067"></a>00067     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00068"></a>00068         <span class="stringliteral">"delete_playlists_on_files_deleted "</span>
+<a name="l00069"></a>00069         <span class="stringliteral">"DELETE ON files FOR EACH ROW BEGIN "</span>
+<a name="l00070"></a>00070         <span class="stringliteral">" DELETE FROM playlists WHERE id = OLD.id; END;"</span>);
+<a name="l00071"></a>00071     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00072"></a>00072         <span class="keywordflow">goto</span> done;
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00075"></a>00075         <span class="stringliteral">"delete_files_on_playlists_deleted "</span>
+<a name="l00076"></a>00076         <span class="stringliteral">"DELETE ON playlists FOR EACH ROW BEGIN "</span>
+<a name="l00077"></a>00077         <span class="stringliteral">" DELETE FROM files WHERE id = OLD.id; END;"</span>);
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079   done:
+<a name="l00080"></a>00080     <span class="keywordflow">return</span> ret;
+<a name="l00081"></a>00081 }
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> _db_table_updater_playlists[] = {
+<a name="l00084"></a>00084     _db_table_updater_playlists_0
+<a name="l00085"></a>00085 };
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00089"></a>00089 _db_create_table_if_required(sqlite3 *db)
+<a name="l00090"></a>00090 {
+<a name="l00091"></a>00091     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(db, <span class="stringliteral">"playlists"</span>,
+<a name="l00092"></a>00092          <a class="code" href="lightmediascanner__utils_8h.html#13a0622cfcc91eec261da4285621bdcc">LMS_ARRAY_SIZE</a>(_db_table_updater_playlists),
+<a name="l00093"></a>00093          _db_table_updater_playlists);
+<a name="l00094"></a>00094 }
 <a name="l00095"></a>00095 
-<a name="l00096"></a>00096     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(&amp;_cache, db, &amp;p) == 0) {
-<a name="l00097"></a>00097         ldp = p;
-<a name="l00098"></a>00098         ldp-&gt;_references++;
-<a name="l00099"></a>00099         <span class="keywordflow">return</span> ldp;
-<a name="l00100"></a>00100     }
-<a name="l00101"></a>00101 
-<a name="l00102"></a>00102     <span class="keywordflow">if</span> (!db)
-<a name="l00103"></a>00103         <span class="keywordflow">return</span> NULL;
-<a name="l00104"></a>00104 
-<a name="l00105"></a>00105     <span class="keywordflow">if</span> (_db_create_table_if_required(db) != 0) {
-<a name="l00106"></a>00106         fprintf(stderr, <span class="stringliteral">"ERROR: could not create table.\n"</span>);
-<a name="l00107"></a>00107         <span class="keywordflow">return</span> NULL;
-<a name="l00108"></a>00108     }
-<a name="l00109"></a>00109 
-<a name="l00110"></a>00110     ldp = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a>));
-<a name="l00111"></a>00111     ldp-&gt;_references = 1;
-<a name="l00112"></a>00112     ldp-&gt;db = db;
-<a name="l00113"></a>00113 
-<a name="l00114"></a>00114     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(&amp;_cache, db, ldp) != 0) {
-<a name="l00115"></a>00115         <a class="code" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lms_db_playlist_free</a>(ldp);
-<a name="l00116"></a>00116         <span class="keywordflow">return</span> NULL;
-<a name="l00117"></a>00117     }
-<a name="l00118"></a>00118 
-<a name="l00119"></a>00119     <span class="keywordflow">return</span> ldp;
-<a name="l00120"></a>00120 }
+<a name="l00110"></a>00110 <a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *
+<a name="l00111"></a><a class="code" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">00111</a> <a class="code" href="group__LMS__DB.html#g379e3bbb3f4a87b1d389df587dec0875">lms_db_playlist_new</a>(sqlite3 *db)
+<a name="l00112"></a>00112 {
+<a name="l00113"></a>00113     <a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp;
+<a name="l00114"></a>00114     <span class="keywordtype">void</span> *p;
+<a name="l00115"></a>00115 
+<a name="l00116"></a>00116     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(&amp;_cache, db, &amp;p) == 0) {
+<a name="l00117"></a>00117         ldp = p;
+<a name="l00118"></a>00118         ldp-&gt;_references++;
+<a name="l00119"></a>00119         <span class="keywordflow">return</span> ldp;
+<a name="l00120"></a>00120     }
 <a name="l00121"></a>00121 
-<a name="l00134"></a>00134 <span class="keywordtype">int</span>
-<a name="l00135"></a><a class="code" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">00135</a> <a class="code" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lms_db_playlist_start</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp)
-<a name="l00136"></a>00136 {
-<a name="l00137"></a>00137     <span class="keywordflow">if</span> (!ldp)
-<a name="l00138"></a>00138         <span class="keywordflow">return</span> -1;
-<a name="l00139"></a>00139     <span class="keywordflow">if</span> (ldp-&gt;_is_started)
-<a name="l00140"></a>00140         <span class="keywordflow">return</span> 0;
+<a name="l00122"></a>00122     <span class="keywordflow">if</span> (!db)
+<a name="l00123"></a>00123         <span class="keywordflow">return</span> NULL;
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125     <span class="keywordflow">if</span> (_db_create_table_if_required(db) != 0) {
+<a name="l00126"></a>00126         fprintf(stderr, <span class="stringliteral">"ERROR: could not create table.\n"</span>);
+<a name="l00127"></a>00127         <span class="keywordflow">return</span> NULL;
+<a name="l00128"></a>00128     }
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130     ldp = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a>));
+<a name="l00131"></a>00131     ldp-&gt;_references = 1;
+<a name="l00132"></a>00132     ldp-&gt;db = db;
+<a name="l00133"></a>00133 
+<a name="l00134"></a>00134     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(&amp;_cache, db, ldp) != 0) {
+<a name="l00135"></a>00135         <a class="code" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lms_db_playlist_free</a>(ldp);
+<a name="l00136"></a>00136         <span class="keywordflow">return</span> NULL;
+<a name="l00137"></a>00137     }
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139     <span class="keywordflow">return</span> ldp;
+<a name="l00140"></a>00140 }
 <a name="l00141"></a>00141 
-<a name="l00142"></a>00142     ldp-&gt;insert = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(ldp-&gt;db,
-<a name="l00143"></a>00143         <span class="stringliteral">"INSERT OR REPLACE INTO playlists (id, title, n_entries) "</span>
-<a name="l00144"></a>00144         <span class="stringliteral">"VALUES (?, ?, ?)"</span>);
-<a name="l00145"></a>00145     <span class="keywordflow">if</span> (!ldp-&gt;insert)
-<a name="l00146"></a>00146         <span class="keywordflow">return</span> -2;
-<a name="l00147"></a>00147 
-<a name="l00148"></a>00148     ldp-&gt;_is_started = 1;
-<a name="l00149"></a>00149     <span class="keywordflow">return</span> 0;
-<a name="l00150"></a>00150 }
-<a name="l00151"></a>00151 
-<a name="l00164"></a>00164 <span class="keywordtype">int</span>
-<a name="l00165"></a><a class="code" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">00165</a> <a class="code" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lms_db_playlist_free</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp)
-<a name="l00166"></a>00166 {
-<a name="l00167"></a>00167     <span class="keywordtype">int</span> r;
-<a name="l00168"></a>00168 
-<a name="l00169"></a>00169     <span class="keywordflow">if</span> (!ldp)
-<a name="l00170"></a>00170         <span class="keywordflow">return</span> -1;
-<a name="l00171"></a>00171     <span class="keywordflow">if</span> (ldp-&gt;_references == 0) {
-<a name="l00172"></a>00172         fprintf(stderr, <span class="stringliteral">"ERROR: over-called lms_db_playlist_free(%p)\n"</span>, ldp);
-<a name="l00173"></a>00173         <span class="keywordflow">return</span> -1;
-<a name="l00174"></a>00174     }
-<a name="l00175"></a>00175 
-<a name="l00176"></a>00176     ldp-&gt;_references--;
-<a name="l00177"></a>00177     <span class="keywordflow">if</span> (ldp-&gt;_references &gt; 0)
-<a name="l00178"></a>00178         <span class="keywordflow">return</span> 0;
-<a name="l00179"></a>00179 
-<a name="l00180"></a>00180     <span class="keywordflow">if</span> (ldp-&gt;insert)
-<a name="l00181"></a>00181         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(ldp-&gt;insert, <span class="stringliteral">"insert"</span>);
-<a name="l00182"></a>00182 
-<a name="l00183"></a>00183     r = <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(&amp;_cache, ldp-&gt;db, ldp);
-<a name="l00184"></a>00184     free(ldp);
-<a name="l00185"></a>00185 
-<a name="l00186"></a>00186     <span class="keywordflow">return</span> r;
-<a name="l00187"></a>00187 }
+<a name="l00154"></a>00154 <span class="keywordtype">int</span>
+<a name="l00155"></a><a class="code" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">00155</a> <a class="code" href="group__LMS__DB.html#g9a0ba775eacd1abdc6bfd08c26bbd437">lms_db_playlist_start</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp)
+<a name="l00156"></a>00156 {
+<a name="l00157"></a>00157     <span class="keywordflow">if</span> (!ldp)
+<a name="l00158"></a>00158         <span class="keywordflow">return</span> -1;
+<a name="l00159"></a>00159     <span class="keywordflow">if</span> (ldp-&gt;_is_started)
+<a name="l00160"></a>00160         <span class="keywordflow">return</span> 0;
+<a name="l00161"></a>00161 
+<a name="l00162"></a>00162     ldp-&gt;insert = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(ldp-&gt;db,
+<a name="l00163"></a>00163         <span class="stringliteral">"INSERT OR REPLACE INTO playlists (id, title, n_entries) "</span>
+<a name="l00164"></a>00164         <span class="stringliteral">"VALUES (?, ?, ?)"</span>);
+<a name="l00165"></a>00165     <span class="keywordflow">if</span> (!ldp-&gt;insert)
+<a name="l00166"></a>00166         <span class="keywordflow">return</span> -2;
+<a name="l00167"></a>00167 
+<a name="l00168"></a>00168     ldp-&gt;_is_started = 1;
+<a name="l00169"></a>00169     <span class="keywordflow">return</span> 0;
+<a name="l00170"></a>00170 }
+<a name="l00171"></a>00171 
+<a name="l00184"></a>00184 <span class="keywordtype">int</span>
+<a name="l00185"></a><a class="code" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">00185</a> <a class="code" href="group__LMS__DB.html#ge0e003fb6c8deccf8c15a7cedb88c789">lms_db_playlist_free</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp)
+<a name="l00186"></a>00186 {
+<a name="l00187"></a>00187     <span class="keywordtype">int</span> r;
 <a name="l00188"></a>00188 
-<a name="l00189"></a>00189 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00190"></a>00190 _db_insert(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__playlist__info.html">lms_playlist_info</a> *info)
-<a name="l00191"></a>00191 {
-<a name="l00192"></a>00192     sqlite3_stmt *stmt;
-<a name="l00193"></a>00193     <span class="keywordtype">int</span> r, ret;
-<a name="l00194"></a>00194 
-<a name="l00195"></a>00195     stmt = ldp-&gt;insert;
-<a name="l00196"></a>00196 
-<a name="l00197"></a>00197     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, info-&gt;<a class="code" href="structlms__playlist__info.html#c1b12bb87ec0bdbc356a6f6ce9b7eebf">id</a>);
-<a name="l00198"></a>00198     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00199"></a>00199         <span class="keywordflow">goto</span> done;
-<a name="l00200"></a>00200 
-<a name="l00201"></a>00201     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__playlist__info.html#515e63ba413a60d21ee73687151387f0">title</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__playlist__info.html#515e63ba413a60d21ee73687151387f0">title</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00202"></a>00202     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00203"></a>00203         <span class="keywordflow">goto</span> done;
-<a name="l00204"></a>00204 
-<a name="l00205"></a>00205     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 3, info-&gt;<a class="code" href="structlms__playlist__info.html#81cc52f5b6ce04cd64cf3884cb774663">n_entries</a>);
-<a name="l00206"></a>00206     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00207"></a>00207         <span class="keywordflow">goto</span> done;
+<a name="l00189"></a>00189     <span class="keywordflow">if</span> (!ldp)
+<a name="l00190"></a>00190         <span class="keywordflow">return</span> -1;
+<a name="l00191"></a>00191     <span class="keywordflow">if</span> (ldp-&gt;_references == 0) {
+<a name="l00192"></a>00192         fprintf(stderr, <span class="stringliteral">"ERROR: over-called lms_db_playlist_free(%p)\n"</span>, ldp);
+<a name="l00193"></a>00193         <span class="keywordflow">return</span> -1;
+<a name="l00194"></a>00194     }
+<a name="l00195"></a>00195 
+<a name="l00196"></a>00196     ldp-&gt;_references--;
+<a name="l00197"></a>00197     <span class="keywordflow">if</span> (ldp-&gt;_references &gt; 0)
+<a name="l00198"></a>00198         <span class="keywordflow">return</span> 0;
+<a name="l00199"></a>00199 
+<a name="l00200"></a>00200     <span class="keywordflow">if</span> (ldp-&gt;insert)
+<a name="l00201"></a>00201         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(ldp-&gt;insert, <span class="stringliteral">"insert"</span>);
+<a name="l00202"></a>00202 
+<a name="l00203"></a>00203     r = <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(&amp;_cache, ldp-&gt;db, ldp);
+<a name="l00204"></a>00204     free(ldp);
+<a name="l00205"></a>00205 
+<a name="l00206"></a>00206     <span class="keywordflow">return</span> r;
+<a name="l00207"></a>00207 }
 <a name="l00208"></a>00208 
-<a name="l00209"></a>00209     r = sqlite3_step(stmt);
-<a name="l00210"></a>00210     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00211"></a>00211         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert playlist info: %s\n"</span>,
-<a name="l00212"></a>00212                 sqlite3_errmsg(ldp-&gt;db));
-<a name="l00213"></a>00213         ret = -4;
-<a name="l00214"></a>00214         <span class="keywordflow">goto</span> done;
-<a name="l00215"></a>00215     }
+<a name="l00209"></a>00209 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00210"></a>00210 _db_insert(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__playlist__info.html">lms_playlist_info</a> *info)
+<a name="l00211"></a>00211 {
+<a name="l00212"></a>00212     sqlite3_stmt *stmt;
+<a name="l00213"></a>00213     <span class="keywordtype">int</span> r, ret;
+<a name="l00214"></a>00214 
+<a name="l00215"></a>00215     stmt = ldp-&gt;insert;
 <a name="l00216"></a>00216 
-<a name="l00217"></a>00217     ret = 0;
-<a name="l00218"></a>00218 
-<a name="l00219"></a>00219   done:
-<a name="l00220"></a>00220     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00221"></a>00221 
-<a name="l00222"></a>00222     <span class="keywordflow">return</span> ret;
-<a name="l00223"></a>00223 }
+<a name="l00217"></a>00217     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, info-&gt;<a class="code" href="structlms__playlist__info.html#c1b12bb87ec0bdbc356a6f6ce9b7eebf">id</a>);
+<a name="l00218"></a>00218     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00219"></a>00219         <span class="keywordflow">goto</span> done;
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__playlist__info.html#515e63ba413a60d21ee73687151387f0">title</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__playlist__info.html#515e63ba413a60d21ee73687151387f0">title</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00222"></a>00222     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00223"></a>00223         <span class="keywordflow">goto</span> done;
 <a name="l00224"></a>00224 
-<a name="l00236"></a>00236 <span class="keywordtype">int</span>
-<a name="l00237"></a><a class="code" href="lightmediascanner__db__playlist_8c.html#4fe309efb9c2c24b6e2f77fffca81ee4">00237</a> <a class="code" href="group__LMS__DB.html#g8864e532609191f07737c1d23c1bc65f">lms_db_playlist_add</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp, <span class="keyword">struct</span> <a class="code" href="structlms__playlist__info.html">lms_playlist_info</a> *info)
-<a name="l00238"></a>00238 {
-<a name="l00239"></a>00239     <span class="keywordflow">if</span> (!ldp)
-<a name="l00240"></a>00240         <span class="keywordflow">return</span> -1;
-<a name="l00241"></a>00241     <span class="keywordflow">if</span> (!info)
-<a name="l00242"></a>00242         <span class="keywordflow">return</span> -2;
-<a name="l00243"></a>00243     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="structlms__playlist__info.html#c1b12bb87ec0bdbc356a6f6ce9b7eebf">id</a> &lt; 1)
-<a name="l00244"></a>00244         <span class="keywordflow">return</span> -3;
-<a name="l00245"></a>00245 
-<a name="l00246"></a>00246     <span class="keywordflow">return</span> _db_insert(ldp, info);
-<a name="l00247"></a>00247 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00225"></a>00225     ret = <a class="code" href="lightmediascanner__db__common_8c.html#de261036cf3228f0b6a79a9c68687c4f">lms_db_bind_int</a>(stmt, 3, info-&gt;<a class="code" href="structlms__playlist__info.html#81cc52f5b6ce04cd64cf3884cb774663">n_entries</a>);
+<a name="l00226"></a>00226     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00227"></a>00227         <span class="keywordflow">goto</span> done;
+<a name="l00228"></a>00228 
+<a name="l00229"></a>00229     r = sqlite3_step(stmt);
+<a name="l00230"></a>00230     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00231"></a>00231         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert playlist info: %s\n"</span>,
+<a name="l00232"></a>00232                 sqlite3_errmsg(ldp-&gt;db));
+<a name="l00233"></a>00233         ret = -4;
+<a name="l00234"></a>00234         <span class="keywordflow">goto</span> done;
+<a name="l00235"></a>00235     }
+<a name="l00236"></a>00236 
+<a name="l00237"></a>00237     ret = 0;
+<a name="l00238"></a>00238 
+<a name="l00239"></a>00239   done:
+<a name="l00240"></a>00240     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242     <span class="keywordflow">return</span> ret;
+<a name="l00243"></a>00243 }
+<a name="l00244"></a>00244 
+<a name="l00256"></a>00256 <span class="keywordtype">int</span>
+<a name="l00257"></a><a class="code" href="lightmediascanner__db__playlist_8c.html#4fe309efb9c2c24b6e2f77fffca81ee4">00257</a> <a class="code" href="group__LMS__DB.html#g8864e532609191f07737c1d23c1bc65f">lms_db_playlist_add</a>(<a class="code" href="group__LMS__DB.html#g9901260afad69e602336a4e567e386c3">lms_db_playlist_t</a> *ldp, <span class="keyword">struct</span> <a class="code" href="structlms__playlist__info.html">lms_playlist_info</a> *info)
+<a name="l00258"></a>00258 {
+<a name="l00259"></a>00259     <span class="keywordflow">if</span> (!ldp)
+<a name="l00260"></a>00260         <span class="keywordflow">return</span> -1;
+<a name="l00261"></a>00261     <span class="keywordflow">if</span> (!info)
+<a name="l00262"></a>00262         <span class="keywordflow">return</span> -2;
+<a name="l00263"></a>00263     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="structlms__playlist__info.html#c1b12bb87ec0bdbc356a6f6ce9b7eebf">id</a> &lt; 1)
+<a name="l00264"></a>00264         <span class="keywordflow">return</span> -3;
+<a name="l00265"></a>00265 
+<a name="l00266"></a>00266     <span class="keywordflow">return</span> _db_insert(ldp, info);
+<a name="l00267"></a>00267 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 6b62a9b..0b4ae7e 100644 (file)
@@ -4,30 +4,31 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_db_playlist.c File Reference</h1><code>#include &lt;<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>&gt;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&quot;</code><br>
 <code>#include &lt;stdlib.h&gt;</code><br>
 <code>#include &lt;stdio.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_db_playlist.c:<p><center><img src="lightmediascanner__db__playlist_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_playlist.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_db_playlist.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__playlist_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_playlist.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db_playlist.c_map">
-<area shape="rect" href="lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="308,107,457,133"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="287,56,479,83"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="529,107,697,133"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="535,157,692,184"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="787,107,915,133"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="748,157,953,184"></map>
+<area shape="rect" href="lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="292,84,471,111"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="33,84,268,111"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="188,161,388,188"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="412,161,604,188"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__db__playlist_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -62,7 +63,7 @@ Include dependency graph for lightmediascanner_db_playlist.c:<p><center><img src
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -79,14 +80,15 @@ This is usually called from plugin's <b>parse()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00237">237</a> of file <a class="el" href="lightmediascanner__db__playlist_8c-source.html">lightmediascanner_db_playlist.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db_8h-source.html#l00120">lms_playlist_info::id</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00257">257</a> of file <a class="el" href="lightmediascanner__db__playlist_8c-source.html">lightmediascanner_db_playlist.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db_8h-source.html#l00120">lms_playlist_info::id</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:56 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 3e17143..5296cfa 100644 (file)
@@ -1,6 +1,6 @@
-<area shape="rect" href="$lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="308,107,457,133">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="287,56,479,83">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="529,107,697,133">
-<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="535,157,692,184">
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="787,107,915,133">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="748,157,953,184">
+<area shape="rect" href="$lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="292,84,471,111">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="33,84,268,111">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="188,161,388,188">
+<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="412,161,604,188">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265">
index d69b864..d0402b4 100644 (file)
@@ -1 +1 @@
-7f27c971bdef77eda7ac4a4e6b647a3a
\ No newline at end of file
+f4d4f52611abf5be20a7b4240c550d8d
\ No newline at end of file
index 6c4a06a..c2a997d 100644 (file)
Binary files a/www/api/lightmediascanner__db__playlist_8c__incl.png and b/www/api/lightmediascanner__db__playlist_8c__incl.png differ
index d915bab..84a3ef0 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner_db_private.h</h1><a href="lightmediascanner__db__private_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_DB_PRIVATE_H_</span>
 <a name="l00022"></a><a class="code" href="lightmediascanner__db__private_8h.html#97d5ed207ef5b72f4fba0cab38594bb7">00022</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_DB_PRIVATE_H_ 1</span>
 <a name="l00049"></a>00049 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__db__common_8c.html#eba3215ee5981a73e9d0fed0a7e079cd">lms_db_table_version_get</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
 <a name="l00050"></a>00050 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__db__common_8c.html#46e6e318ea9bb4a7ffdfe40c842da4e7">lms_db_table_version_set</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> version) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
 <a name="l00051"></a>00051 
-<a name="l00052"></a><a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">00052</a> <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a>)(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run);
+<a name="l00052"></a>00052 <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a>)(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run);
 <a name="l00053"></a>00053 
-<a name="l00054"></a>00054 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lms_db_table_update</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last_version, <span class="keyword">const</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *updaters) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 5);
-<a name="l00055"></a>00055 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last_version, <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *updaters) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 4);
+<a name="l00054"></a>00054 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__db__common_8c.html#9bca88ae79959baff3accee8ce10b558">lms_db_table_update</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last_version, <span class="keyword">const</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *updaters) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 5);
+<a name="l00055"></a>00055 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last_version, <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *updaters) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 4);
 <a name="l00056"></a>00056 
 <a name="l00057"></a><a class="code" href="structlms__db__cache__entry.html">00057</a> <span class="keyword">struct </span><a class="code" href="structlms__db__cache__entry.html">lms_db_cache_entry</a> {
 <a name="l00058"></a><a class="code" href="structlms__db__cache__entry.html#01aadf6d9a8161696019d39566b15760">00058</a>     <span class="keyword">const</span> sqlite3 *<a class="code" href="structlms__db__cache__entry.html#01aadf6d9a8161696019d39566b15760">db</a>;
@@ -93,8 +88,9 @@
 <a name="l00091"></a>00091 
 <a name="l00092"></a>00092 
 <a name="l00093"></a>00093 <span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_DB_PRIVATE_H_ */</span>
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 72e45ac..70ccb03 100644 (file)
@@ -4,34 +4,39 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_db_private.h File Reference</h1><code>#include &lt;sqlite3.h&gt;</code><br>
 <code>#include &lt;sys/types.h&gt;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>&quot;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_db_private.h:<p><center><img src="lightmediascanner__db__private_8h__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_private.h_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_db_private.h:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_private.h_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db_private.h_map">
-<area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="284,107,452,133"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="541,107,669,133"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="503,157,708,184"></map>
+<area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="180,84,380,111"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="232,162,387,188"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="411,162,664,188"></map>
+</div>
 
 <p>
-This graph shows which files directly or indirectly include this file:<p><center><img src="lightmediascanner__db__private_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_private.hdep_map" alt=""></center>
+<div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_private.hdep_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db_private.hdep_map">
-<area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="301,5,504,32"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="292,56,513,83"><area shape="rect" href="lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="284,107,521,133"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="291,157,515,184"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="288,208,517,235"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="292,259,513,285"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="297,309,508,336"></map>
+<area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="5,84,251,110"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="275,84,539,110"><area shape="rect" href="lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="563,84,848,110"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="872,84,1141,110"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="1165,84,1440,110"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="1464,84,1728,110"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="1752,84,2008,110"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__db__private_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -71,9 +76,9 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int int int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#1c57f68c64069575a36252816929e335">lms_db_table_version_set</a> (sqlite3 *db, const char *table, unsigned int version) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#3dcf825514196befd0a4575e4afd0b58">lms_db_table_update</a> (sqlite3 *db, const char *table, unsigned int current_version, unsigned int last_version, const <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *updaters) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#3dcf825514196befd0a4575e4afd0b58">lms_db_table_update</a> (sqlite3 *db, const char *table, unsigned int current_version, unsigned int last_version, const <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *updaters) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#455c0e5d62094b01fc935c5db8f07352">lms_db_table_update_if_required</a> (sqlite3 *db, const char *table, unsigned int last_version, <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *updaters) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#455c0e5d62094b01fc935c5db8f07352">lms_db_table_update_if_required</a> (sqlite3 *db, const char *table, unsigned int last_version, <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *updaters) GNUC_NON_NULL(1</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#f2c9e9154fff8b335c4fd5693fe45aa6">lms_db_cache_add</a> (struct <a class="el" href="structlms__db__cache.html">lms_db_cache</a> *cache, const sqlite3 *db, void *data) GNUC_NON_NULL(1</td></tr>
 
@@ -116,7 +121,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int int int int int int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#617b14b976ba1cde9fe639800f2eae71">lms_db_get_files</a> (sqlite3_stmt *stmt, const char *path, int len) GNUC_NON_NULL(1</td></tr>
 
 <tr><td colspan="2"><br><h2>Variables</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int int int typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> (sqlite3 *db, const char *table, unsigned int current_version, int is_last_run)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int int int typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> )(sqlite3 *db, const char *table, unsigned int current_version, int is_last_run)</td></tr>
 
 </table>
 <hr><h2>Define Documentation</h2>
@@ -135,11 +140,11 @@ This graph shows which files directly or indirectly include this file:<p><center
 Copyright (C) 2007 by INdT<p>
 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>
 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>
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<p>
+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>
 <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>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="6fe68cac0abf3e2ca61141920414e93a"></a><!-- doxytag: member="lightmediascanner_db_private.h::GNUC_NON_NULL" ref="6fe68cac0abf3e2ca61141920414e93a" args="(...)" -->
@@ -152,7 +157,7 @@ Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.
           <td class="paramtype"> <em>...</em>&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -160,8 +165,8 @@ Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00031">31</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00031">31</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -175,7 +180,7 @@ Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.
           <td class="paramtype">sqlite3_stmt *&nbsp;</td>
           <td class="paramname"> <em>stmt</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -183,8 +188,10 @@ Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00512">512</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00532">532</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="7fd514b582578c18a25cdbf6c561243c"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_bind_blob" ref="7fd514b582578c18a25cdbf6c561243c" args="(sqlite3_stmt *stmt, int col, const void *blob, int len) GNUC_NON_NULL(1)" -->
@@ -218,7 +225,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -226,10 +233,10 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00148">148</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00763">lms_db_get_files()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00168">168</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00783">lms_db_get_files()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="9e78297037179998924354e73ca69349"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_bind_double" ref="9e78297037179998924354e73ca69349" args="(sqlite3_stmt *stmt, int col, double value) GNUC_NON_NULL(1)" -->
@@ -257,7 +264,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -265,8 +272,8 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00231">231</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00251">251</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="37815f859116b46089bea4ba84bb23d2"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_bind_int" ref="37815f859116b46089bea4ba84bb23d2" args="(sqlite3_stmt *stmt, int col, int value) GNUC_NON_NULL(1)" -->
@@ -294,7 +301,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -302,10 +309,10 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00212">212</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">lms_db_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">lms_db_update_file_info()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00232">232</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">lms_db_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">lms_db_update_file_info()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="bbb18d7cc44f7e363c0f240849d72c31"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_bind_int64" ref="bbb18d7cc44f7e363c0f240849d72c31" args="(sqlite3_stmt *stmt, int col, int64_t value) GNUC_NON_NULL(1)" -->
@@ -333,7 +340,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -341,10 +348,10 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00171">171</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00697">lms_db_delete_file_info()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">lms_db_set_file_dtime()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00191">191</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00717">lms_db_delete_file_info()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">lms_db_set_file_dtime()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="cd7006f0271b9a47937dc2d2ae5480fe"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_bind_int64_or_null" ref="cd7006f0271b9a47937dc2d2ae5480fe" args="(sqlite3_stmt *stmt, int col, int64_t *p_value) GNUC_NON_NULL(1)" -->
@@ -372,7 +379,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -380,8 +387,8 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00190">190</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00210">210</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="14d56e02624ad6130bc59ae9bb950ac3"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_bind_text" ref="14d56e02624ad6130bc59ae9bb950ac3" args="(sqlite3_stmt *stmt, int col, const char *text, int len) GNUC_NON_NULL(1)" -->
@@ -415,7 +422,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -423,10 +430,10 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00125">125</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00250">lms_db_table_version_get()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00145">145</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00270">lms_db_table_version_get()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f2c9e9154fff8b335c4fd5693fe45aa6"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_cache_add" ref="f2c9e9154fff8b335c4fd5693fe45aa6" args="(struct lms_db_cache *cache, const sqlite3 *db, void *data) GNUC_NON_NULL(1" -->
@@ -454,7 +461,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -489,7 +496,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -524,7 +531,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -553,7 +560,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -573,7 +580,7 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -581,14 +588,18 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00526">526</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00506">506</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="297,5,436,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="487,5,609,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="349,5,517,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="567,5,713,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -602,7 +613,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -610,14 +621,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00711">711</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00691">691</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="287,5,425,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="476,5,599,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="331,5,499,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="548,5,695,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -631,7 +646,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -639,14 +654,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00553">553</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00533">533</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="287,5,425,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="476,5,599,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="339,5,507,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="556,5,703,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -660,7 +679,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -668,14 +687,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00580">580</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00560">560</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="271,5,409,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="460,5,583,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="309,5,477,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="527,5,673,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -689,7 +712,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -697,14 +720,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00776">776</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00756">756</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="247,5,385,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="436,5,559,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="285,5,453,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="503,5,649,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -718,7 +745,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -726,14 +753,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00666">666</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00646">646</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="284,5,423,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="473,5,596,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="325,5,493,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="543,5,689,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -747,7 +778,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -755,14 +786,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00741">741</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00721">721</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="279,5,417,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="468,5,591,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="325,5,493,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="543,5,689,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -776,7 +811,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -784,14 +819,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00622">622</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00101">lms_db_compile_stmt()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00602">602</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00081">lms_db_compile_stmt()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="289,5,428,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="479,5,601,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="333,5,501,32"><area shape="rect" href="lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="551,5,697,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -805,7 +844,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
           <td class="paramtype">sqlite3 *&nbsp;</td>
           <td class="paramname"> <em>db</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -813,8 +852,8 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00455">455</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00475">475</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f47d604dd4e11f81be1ad045ee723789"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_create_trigger_if_not_exists" ref="f47d604dd4e11f81be1ad045ee723789" args="(sqlite3 *db, const char *sql) GNUC_NON_NULL(1" -->
@@ -836,7 +875,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -865,7 +904,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -885,7 +924,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
           <td class="paramtype">sqlite3_stmt *&nbsp;</td>
           <td class="paramname"> <em>stmt</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -893,8 +932,10 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00539">539</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00559">559</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="2660f629fbdf3d4144a6143fee837a27"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_finalize_stmt" ref="2660f629fbdf3d4144a6143fee837a27" args="(sqlite3_stmt *stmt, const char *name) GNUC_NON_NULL(1" -->
@@ -916,7 +957,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -945,7 +986,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -980,7 +1021,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1009,7 +1050,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1029,7 +1070,7 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
           <td class="paramtype">sqlite3_stmt *&nbsp;</td>
           <td class="paramname"> <em>stmt</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -1037,16 +1078,20 @@ Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.h
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00128">128</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00036">sqlite3_clear_bindings()</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00717">lms_db_delete_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">lms_db_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00270">lms_db_table_version_get()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00304">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">lms_db_update_file_info()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__db__common_8c-source.html#l00108">108</a> of file <a class="el" href="lightmediascanner__db__common_8c-source.html">lightmediascanner_db_common.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db__common_8c-source.html#l00016">sqlite3_clear_bindings()</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00697">lms_db_delete_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">lms_db_set_file_dtime()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00250">lms_db_table_version_get()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00284">lms_db_table_version_set()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">lms_db_update_file_info()</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph.png" border="0" usemap="#lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph_map" alt=""></center>
 <map name="lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph_map">
-<area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="177,5,319,32"></map>
+<area shape="rect" href="lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="207,5,372,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -1069,7 +1114,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1110,13 +1155,13 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *&nbsp;</td>
+          <td class="paramtype">const <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *&nbsp;</td>
           <td class="paramname"> <em>updaters</em></td><td>&nbsp;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1151,13 +1196,13 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> *&nbsp;</td>
+          <td class="paramtype"><a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> *&nbsp;</td>
           <td class="paramname"> <em>updaters</em></td><td>&nbsp;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1186,7 +1231,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1221,7 +1266,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1250,7 +1295,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -1261,12 +1306,12 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 </div>
 </div><p>
 <hr><h2>Variable Documentation</h2>
-<a class="anchor" name="7964337689117d7dc6fb1822378b5848"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_table_updater_t" ref="7964337689117d7dc6fb1822378b5848" args="(sqlite3 *db, const char *table, unsigned int current_version, int is_last_run)" -->
+<a class="anchor" name="31db275bbea4b156c8b4493dac818b73"></a><!-- doxytag: member="lightmediascanner_db_private.h::lms_db_table_updater_t" ref="31db275bbea4b156c8b4493dac818b73" args=")(sqlite3 *db, const char *table, unsigned int current_version, int is_last_run)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int int int typedef int(*) <a class="el" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a>(sqlite3 *db, const char *table, unsigned int current_version, int is_last_run)          </td>
+          <td class="memname">int int int typedef int(* <a class="el" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a>)(sqlite3 *db, const char *table, unsigned int current_version, int is_last_run)          </td>
         </tr>
       </table>
 </div>
@@ -1274,12 +1319,11 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00052">52</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:56 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index e7045d2..30568de 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="297,5,436,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="487,5,609,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="349,5,517,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="567,5,713,32">
index de691e2..fd63c5d 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph.png and b/www/api/lightmediascanner__db__private_8h_073c254ca7b4d3f42e1be1854bcc42a3_cgraph.png differ
index d94cf4b..63fea02 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="279,5,417,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="468,5,591,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="325,5,493,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="543,5,689,32">
index 4149e94..d99b793 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph.png and b/www/api/lightmediascanner__db__private_8h_08c34b5b1b6e927a696ff0ce66562f54_cgraph.png differ
index 49aeb2f..69628fd 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="287,5,425,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="476,5,599,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="339,5,507,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="556,5,703,32">
index c91b45c..d269c0f 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph.png and b/www/api/lightmediascanner__db__private_8h_09feca4fbfde33d5647cdd5cc2de6500_cgraph.png differ
index 8045b86..29d2320 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="247,5,385,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="436,5,559,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="285,5,453,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="503,5,649,32">
index 68595e6..2435a0a 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph.png and b/www/api/lightmediascanner__db__private_8h_1cc8a80961a0febdd099a028f3da9c30_cgraph.png differ
index a62f463..ada243e 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="271,5,409,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="460,5,583,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="309,5,477,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="527,5,673,32">
index f22b93d..9c12e75 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph.png and b/www/api/lightmediascanner__db__private_8h_327d54a6dac083e356fd609298a0cbd5_cgraph.png differ
index 44c61e3..c886504 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="289,5,428,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="479,5,601,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="333,5,501,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="551,5,697,32">
index 53a30cf..648698d 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph.png and b/www/api/lightmediascanner__db__private_8h_69eb9d9058d9432f7658f9adffb79ed6_cgraph.png differ
index 49aeb2f..879cac9 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="287,5,425,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="476,5,599,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="331,5,499,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="548,5,695,32">
index 2144215..3979285 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph.png and b/www/api/lightmediascanner__db__private_8h_76941bdbbdb711fff821343e91c2cd97_cgraph.png differ
index 5c0b8aa..a49e36b 100644 (file)
@@ -1,7 +1,7 @@
-<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="301,5,504,32">
-<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="292,56,513,83">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="284,107,521,133">
-<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="291,157,515,184">
-<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="288,208,517,235">
-<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="292,259,513,285">
-<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="297,309,508,336">
+<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="5,84,251,110">
+<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="275,84,539,110">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="563,84,848,110">
+<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="872,84,1141,110">
+<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="1165,84,1440,110">
+<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="1464,84,1728,110">
+<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="1752,84,2008,110">
index 816631d..f508349 100644 (file)
@@ -1 +1 @@
-022f4e74638a0b634545ff86621129c8
\ No newline at end of file
+95c4fc01b991a66fa22d60da57e297b5
\ No newline at end of file
index a89e14c..a4879fe 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h__dep__incl.png and b/www/api/lightmediascanner__db__private_8h__dep__incl.png differ
index e8bbd5c..40fc2c6 100644 (file)
@@ -1,3 +1,3 @@
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="284,107,452,133">
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="541,107,669,133">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="503,157,708,184">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="180,84,380,111">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="232,162,387,188">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="411,162,664,188">
index c221095..a2ef0c6 100644 (file)
@@ -1 +1 @@
-1f30ce8e217e3bccc71953d3836e1a9f
\ No newline at end of file
+cd3b1b4ae663ffa9c102ffe5c3e03c22
\ No newline at end of file
index ce5e2e7..bb49e18 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h__incl.png and b/www/api/lightmediascanner__db__private_8h__incl.png differ
index ad44bfe..63fea02 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="284,5,423,32">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="473,5,596,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b" title="lms_db_compile_stmt" alt="" coords="325,5,493,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#21da1a6588f354b758211583559ae405" title="sqlite3_prepare_v2" alt="" coords="543,5,689,32">
index 434c52b..88c55cd 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph.png and b/www/api/lightmediascanner__db__private_8h_bf21f88ddbe28a8290d0df32af0f079c_cgraph.png differ
index c762020..69abee5 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="177,5,319,32">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html#3f8fb8f31c1876b3579956b3d898cd00" title="sqlite3_clear_bindings" alt="" coords="207,5,372,32">
index d7b9e79..39cd251 100644 (file)
Binary files a/www/api/lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph.png and b/www/api/lightmediascanner__db__private_8h_ee78f418f0f3c9ead3023b1453c63556_cgraph.png differ
index 917251a..291ac62 100644 (file)
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<h1>src/lib/lightmediascanner_db_video.c</h1><a href="lightmediascanner__db__video_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a>&gt;</span>
-<a name="l00002"></a>00002 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
-<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
-<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
-<a name="l00005"></a>00005 
-<a name="l00006"></a>00006 <span class="keyword">struct </span>lms_db_video {
-<a name="l00007"></a>00007     sqlite3 *db;
-<a name="l00008"></a>00008     sqlite3_stmt *insert;
-<a name="l00009"></a>00009     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _references;
-<a name="l00010"></a>00010     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _is_started:1;
-<a name="l00011"></a>00011 };
-<a name="l00012"></a>00012 
-<a name="l00013"></a>00013 <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structlms__db__cache.html">lms_db_cache</a> _cache = {0, NULL};
-<a name="l00014"></a>00014 
-<a name="l00015"></a>00015 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00016"></a>00016 _db_table_updater_videos_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
-<a name="l00017"></a>00017     <span class="keywordtype">char</span> *errmsg;
-<a name="l00018"></a>00018     <span class="keywordtype">int</span> r, ret;
-<a name="l00019"></a>00019 
-<a name="l00020"></a>00020     errmsg = NULL;
-<a name="l00021"></a>00021     r = sqlite3_exec(db,
-<a name="l00022"></a>00022                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS videos ("</span>
-<a name="l00023"></a>00023                      <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
-<a name="l00024"></a>00024                      <span class="stringliteral">"title TEXT, "</span>
-<a name="l00025"></a>00025                      <span class="stringliteral">"artist TEXT"</span>
-<a name="l00026"></a>00026                      <span class="stringliteral">")"</span>,
-<a name="l00027"></a>00027                      NULL, NULL, &amp;errmsg);
-<a name="l00028"></a>00028     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00029"></a>00029         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'videos' table: %s\n"</span>, errmsg);
-<a name="l00030"></a>00030         sqlite3_free(errmsg);
-<a name="l00031"></a>00031         <span class="keywordflow">return</span> -1;
-<a name="l00032"></a>00032     }
-<a name="l00033"></a>00033 
-<a name="l00034"></a>00034     r = sqlite3_exec(db,
-<a name="l00035"></a>00035                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS videos_title_idx ON videos ("</span>
-<a name="l00036"></a>00036                      <span class="stringliteral">"title"</span>
-<a name="l00037"></a>00037                      <span class="stringliteral">")"</span>,
-<a name="l00038"></a>00038                      NULL, NULL, &amp;errmsg);
-<a name="l00039"></a>00039     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00040"></a>00040         fprintf(stderr,
-<a name="l00041"></a>00041                 <span class="stringliteral">"ERROR: could not create 'videos_title_idx' index: %s\n"</span>,
-<a name="l00042"></a>00042                 errmsg);
-<a name="l00043"></a>00043         sqlite3_free(errmsg);
-<a name="l00044"></a>00044         <span class="keywordflow">return</span> -2;
-<a name="l00045"></a>00045     }
-<a name="l00046"></a>00046 
-<a name="l00047"></a>00047     r = sqlite3_exec(db,
-<a name="l00048"></a>00048                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS videos_artist_idx ON videos ("</span>
-<a name="l00049"></a>00049                      <span class="stringliteral">"artist"</span>
-<a name="l00050"></a>00050                      <span class="stringliteral">")"</span>,
-<a name="l00051"></a>00051                      NULL, NULL, &amp;errmsg);
-<a name="l00052"></a>00052     <span class="keywordflow">if</span> (r != SQLITE_OK) {
-<a name="l00053"></a>00053         fprintf(stderr,
-<a name="l00054"></a>00054                 <span class="stringliteral">"ERROR: could not create 'videos_artist_idx' index: %s\n"</span>,
-<a name="l00055"></a>00055                 errmsg);
-<a name="l00056"></a>00056         sqlite3_free(errmsg);
-<a name="l00057"></a>00057         <span class="keywordflow">return</span> -3;
-<a name="l00058"></a>00058     }
-<a name="l00059"></a>00059 
-<a name="l00060"></a>00060     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00061"></a>00061         <span class="stringliteral">"delete_videos_on_files_deleted "</span>
-<a name="l00062"></a>00062         <span class="stringliteral">"DELETE ON files FOR EACH ROW BEGIN "</span>
-<a name="l00063"></a>00063         <span class="stringliteral">" DELETE FROM videos WHERE id = OLD.id; END;"</span>);
-<a name="l00064"></a>00064     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00065"></a>00065         <span class="keywordflow">goto</span> done;
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>src/lib/lightmediascanner_db_video.c</h1><a href="lightmediascanner__db__video_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__db_8h.html">lightmediascanner_db.h</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__db__private_8h.html">lightmediascanner_db_private.h</a>"</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="keyword">struct </span>lms_db_video {
+<a name="l00027"></a>00027     sqlite3 *db;
+<a name="l00028"></a>00028     sqlite3_stmt *insert;
+<a name="l00029"></a>00029     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _references;
+<a name="l00030"></a>00030     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _is_started:1;
+<a name="l00031"></a>00031 };
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structlms__db__cache.html">lms_db_cache</a> _cache = {0, NULL};
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00036"></a>00036 _db_table_updater_videos_0(sqlite3 *db, <span class="keyword">const</span> <span class="keywordtype">char</span> *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_version, <span class="keywordtype">int</span> is_last_run) {
+<a name="l00037"></a>00037     <span class="keywordtype">char</span> *errmsg;
+<a name="l00038"></a>00038     <span class="keywordtype">int</span> r, ret;
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     errmsg = NULL;
+<a name="l00041"></a>00041     r = sqlite3_exec(db,
+<a name="l00042"></a>00042                      <span class="stringliteral">"CREATE TABLE IF NOT EXISTS videos ("</span>
+<a name="l00043"></a>00043                      <span class="stringliteral">"id INTEGER PRIMARY KEY, "</span>
+<a name="l00044"></a>00044                      <span class="stringliteral">"title TEXT, "</span>
+<a name="l00045"></a>00045                      <span class="stringliteral">"artist TEXT"</span>
+<a name="l00046"></a>00046                      <span class="stringliteral">")"</span>,
+<a name="l00047"></a>00047                      NULL, NULL, &amp;errmsg);
+<a name="l00048"></a>00048     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00049"></a>00049         fprintf(stderr, <span class="stringliteral">"ERROR: could not create 'videos' table: %s\n"</span>, errmsg);
+<a name="l00050"></a>00050         sqlite3_free(errmsg);
+<a name="l00051"></a>00051         <span class="keywordflow">return</span> -1;
+<a name="l00052"></a>00052     }
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054     r = sqlite3_exec(db,
+<a name="l00055"></a>00055                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS videos_title_idx ON videos ("</span>
+<a name="l00056"></a>00056                      <span class="stringliteral">"title"</span>
+<a name="l00057"></a>00057                      <span class="stringliteral">")"</span>,
+<a name="l00058"></a>00058                      NULL, NULL, &amp;errmsg);
+<a name="l00059"></a>00059     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00060"></a>00060         fprintf(stderr,
+<a name="l00061"></a>00061                 <span class="stringliteral">"ERROR: could not create 'videos_title_idx' index: %s\n"</span>,
+<a name="l00062"></a>00062                 errmsg);
+<a name="l00063"></a>00063         sqlite3_free(errmsg);
+<a name="l00064"></a>00064         <span class="keywordflow">return</span> -2;
+<a name="l00065"></a>00065     }
 <a name="l00066"></a>00066 
-<a name="l00067"></a>00067     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
-<a name="l00068"></a>00068         <span class="stringliteral">"delete_files_on_videos_deleted "</span>
-<a name="l00069"></a>00069         <span class="stringliteral">"DELETE ON videos FOR EACH ROW BEGIN "</span>
-<a name="l00070"></a>00070         <span class="stringliteral">" DELETE FROM files WHERE id = OLD.id; END;"</span>);
-<a name="l00071"></a>00071 
-<a name="l00072"></a>00072   done:
-<a name="l00073"></a>00073     <span class="keywordflow">return</span> ret;
-<a name="l00074"></a>00074 }
-<a name="l00075"></a>00075 
-<a name="l00076"></a>00076 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#7964337689117d7dc6fb1822378b5848">lms_db_table_updater_t</a> _db_table_updater_videos[] = {
-<a name="l00077"></a>00077     _db_table_updater_videos_0
-<a name="l00078"></a>00078 };
+<a name="l00067"></a>00067     r = sqlite3_exec(db,
+<a name="l00068"></a>00068                      <span class="stringliteral">"CREATE INDEX IF NOT EXISTS videos_artist_idx ON videos ("</span>
+<a name="l00069"></a>00069                      <span class="stringliteral">"artist"</span>
+<a name="l00070"></a>00070                      <span class="stringliteral">")"</span>,
+<a name="l00071"></a>00071                      NULL, NULL, &amp;errmsg);
+<a name="l00072"></a>00072     <span class="keywordflow">if</span> (r != SQLITE_OK) {
+<a name="l00073"></a>00073         fprintf(stderr,
+<a name="l00074"></a>00074                 <span class="stringliteral">"ERROR: could not create 'videos_artist_idx' index: %s\n"</span>,
+<a name="l00075"></a>00075                 errmsg);
+<a name="l00076"></a>00076         sqlite3_free(errmsg);
+<a name="l00077"></a>00077         <span class="keywordflow">return</span> -3;
+<a name="l00078"></a>00078     }
 <a name="l00079"></a>00079 
-<a name="l00080"></a>00080 
-<a name="l00081"></a>00081 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00082"></a>00082 _db_create_table_if_required(sqlite3 *db)
-<a name="l00083"></a>00083 {
-<a name="l00084"></a>00084     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(db, <span class="stringliteral">"videos"</span>,
-<a name="l00085"></a>00085          <a class="code" href="lightmediascanner__utils_8h.html#13a0622cfcc91eec261da4285621bdcc">LMS_ARRAY_SIZE</a>(_db_table_updater_videos),
-<a name="l00086"></a>00086          _db_table_updater_videos);
-<a name="l00087"></a>00087 }
-<a name="l00088"></a>00088 
-<a name="l00103"></a>00103 <a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *
-<a name="l00104"></a><a class="code" href="group__LMS__DB.html#ga206178e1f883c1bf7a3281f982109b2">00104</a> <a class="code" href="group__LMS__DB.html#ga206178e1f883c1bf7a3281f982109b2">lms_db_video_new</a>(sqlite3 *db)
-<a name="l00105"></a>00105 {
-<a name="l00106"></a>00106     <a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv;
-<a name="l00107"></a>00107     <span class="keywordtype">void</span> *p;
+<a name="l00080"></a>00080     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00081"></a>00081         <span class="stringliteral">"delete_videos_on_files_deleted "</span>
+<a name="l00082"></a>00082         <span class="stringliteral">"DELETE ON files FOR EACH ROW BEGIN "</span>
+<a name="l00083"></a>00083         <span class="stringliteral">" DELETE FROM videos WHERE id = OLD.id; END;"</span>);
+<a name="l00084"></a>00084     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00085"></a>00085         <span class="keywordflow">goto</span> done;
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087     ret = <a class="code" href="lightmediascanner__db__common_8c.html#822cae681398710b63c9af149fdacedb">lms_db_create_trigger_if_not_exists</a>(db,
+<a name="l00088"></a>00088         <span class="stringliteral">"delete_files_on_videos_deleted "</span>
+<a name="l00089"></a>00089         <span class="stringliteral">"DELETE ON videos FOR EACH ROW BEGIN "</span>
+<a name="l00090"></a>00090         <span class="stringliteral">" DELETE FROM files WHERE id = OLD.id; END;"</span>);
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092   done:
+<a name="l00093"></a>00093     <span class="keywordflow">return</span> ret;
+<a name="l00094"></a>00094 }
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096 <span class="keyword">static</span> <a class="code" href="lightmediascanner__db__private_8h.html#31db275bbea4b156c8b4493dac818b73">lms_db_table_updater_t</a> _db_table_updater_videos[] = {
+<a name="l00097"></a>00097     _db_table_updater_videos_0
+<a name="l00098"></a>00098 };
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00102"></a>00102 _db_create_table_if_required(sqlite3 *db)
+<a name="l00103"></a>00103 {
+<a name="l00104"></a>00104     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__db__common_8c.html#86b766535f9dc7895da7d0f606201700">lms_db_table_update_if_required</a>(db, <span class="stringliteral">"videos"</span>,
+<a name="l00105"></a>00105          <a class="code" href="lightmediascanner__utils_8h.html#13a0622cfcc91eec261da4285621bdcc">LMS_ARRAY_SIZE</a>(_db_table_updater_videos),
+<a name="l00106"></a>00106          _db_table_updater_videos);
+<a name="l00107"></a>00107 }
 <a name="l00108"></a>00108 
-<a name="l00109"></a>00109     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(&amp;_cache, db, &amp;p) == 0) {
-<a name="l00110"></a>00110         ldv = p;
-<a name="l00111"></a>00111         ldv-&gt;_references++;
-<a name="l00112"></a>00112         <span class="keywordflow">return</span> ldv;
-<a name="l00113"></a>00113     }
-<a name="l00114"></a>00114 
-<a name="l00115"></a>00115     <span class="keywordflow">if</span> (!db)
-<a name="l00116"></a>00116         <span class="keywordflow">return</span> NULL;
-<a name="l00117"></a>00117 
-<a name="l00118"></a>00118     <span class="keywordflow">if</span> (_db_create_table_if_required(db) != 0) {
-<a name="l00119"></a>00119         fprintf(stderr, <span class="stringliteral">"ERROR: could not create table.\n"</span>);
-<a name="l00120"></a>00120         <span class="keywordflow">return</span> NULL;
-<a name="l00121"></a>00121     }
-<a name="l00122"></a>00122 
-<a name="l00123"></a>00123     ldv = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a>));
-<a name="l00124"></a>00124     ldv-&gt;_references = 1;
-<a name="l00125"></a>00125     ldv-&gt;db = db;
-<a name="l00126"></a>00126 
-<a name="l00127"></a>00127     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(&amp;_cache, db, ldv) != 0) {
-<a name="l00128"></a>00128         <a class="code" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">lms_db_video_free</a>(ldv);
-<a name="l00129"></a>00129         <span class="keywordflow">return</span> NULL;
-<a name="l00130"></a>00130     }
-<a name="l00131"></a>00131 
-<a name="l00132"></a>00132     <span class="keywordflow">return</span> ldv;
-<a name="l00133"></a>00133 }
+<a name="l00123"></a>00123 <a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *
+<a name="l00124"></a><a class="code" href="group__LMS__DB.html#ga206178e1f883c1bf7a3281f982109b2">00124</a> <a class="code" href="group__LMS__DB.html#ga206178e1f883c1bf7a3281f982109b2">lms_db_video_new</a>(sqlite3 *db)
+<a name="l00125"></a>00125 {
+<a name="l00126"></a>00126     <a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv;
+<a name="l00127"></a>00127     <span class="keywordtype">void</span> *p;
+<a name="l00128"></a>00128 
+<a name="l00129"></a>00129     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#e7a672fa5760bae1a669c737648fe7d3">lms_db_cache_get</a>(&amp;_cache, db, &amp;p) == 0) {
+<a name="l00130"></a>00130         ldv = p;
+<a name="l00131"></a>00131         ldv-&gt;_references++;
+<a name="l00132"></a>00132         <span class="keywordflow">return</span> ldv;
+<a name="l00133"></a>00133     }
 <a name="l00134"></a>00134 
-<a name="l00147"></a>00147 <span class="keywordtype">int</span>
-<a name="l00148"></a><a class="code" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">00148</a> <a class="code" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">lms_db_video_start</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv)
-<a name="l00149"></a>00149 {
-<a name="l00150"></a>00150     <span class="keywordflow">if</span> (!ldv)
-<a name="l00151"></a>00151         <span class="keywordflow">return</span> -1;
-<a name="l00152"></a>00152     <span class="keywordflow">if</span> (ldv-&gt;_is_started)
-<a name="l00153"></a>00153         <span class="keywordflow">return</span> 0;
+<a name="l00135"></a>00135     <span class="keywordflow">if</span> (!db)
+<a name="l00136"></a>00136         <span class="keywordflow">return</span> NULL;
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138     <span class="keywordflow">if</span> (_db_create_table_if_required(db) != 0) {
+<a name="l00139"></a>00139         fprintf(stderr, <span class="stringliteral">"ERROR: could not create table.\n"</span>);
+<a name="l00140"></a>00140         <span class="keywordflow">return</span> NULL;
+<a name="l00141"></a>00141     }
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143     ldv = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a>));
+<a name="l00144"></a>00144     ldv-&gt;_references = 1;
+<a name="l00145"></a>00145     ldv-&gt;db = db;
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__db__common_8c.html#19b0458b9d7b76370588156e931a9c04">lms_db_cache_add</a>(&amp;_cache, db, ldv) != 0) {
+<a name="l00148"></a>00148         <a class="code" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">lms_db_video_free</a>(ldv);
+<a name="l00149"></a>00149         <span class="keywordflow">return</span> NULL;
+<a name="l00150"></a>00150     }
+<a name="l00151"></a>00151 
+<a name="l00152"></a>00152     <span class="keywordflow">return</span> ldv;
+<a name="l00153"></a>00153 }
 <a name="l00154"></a>00154 
-<a name="l00155"></a>00155     ldv-&gt;insert = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(ldv-&gt;db,
-<a name="l00156"></a>00156         <span class="stringliteral">"INSERT OR REPLACE INTO videos (id, title, artist) VALUES (?, ?, ?)"</span>);
-<a name="l00157"></a>00157     <span class="keywordflow">if</span> (!ldv-&gt;insert)
-<a name="l00158"></a>00158         <span class="keywordflow">return</span> -2;
-<a name="l00159"></a>00159 
-<a name="l00160"></a>00160     ldv-&gt;_is_started = 1;
-<a name="l00161"></a>00161     <span class="keywordflow">return</span> 0;
-<a name="l00162"></a>00162 }
-<a name="l00163"></a>00163 
-<a name="l00176"></a>00176 <span class="keywordtype">int</span>
-<a name="l00177"></a><a class="code" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">00177</a> <a class="code" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">lms_db_video_free</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv)
-<a name="l00178"></a>00178 {
-<a name="l00179"></a>00179     <span class="keywordtype">int</span> r;
-<a name="l00180"></a>00180 
-<a name="l00181"></a>00181     <span class="keywordflow">if</span> (!ldv)
-<a name="l00182"></a>00182         <span class="keywordflow">return</span> -1;
-<a name="l00183"></a>00183     <span class="keywordflow">if</span> (ldv-&gt;_references == 0) {
-<a name="l00184"></a>00184         fprintf(stderr, <span class="stringliteral">"ERROR: over-called lms_db_video_free(%p)\n"</span>, ldv);
-<a name="l00185"></a>00185         <span class="keywordflow">return</span> -1;
-<a name="l00186"></a>00186     }
-<a name="l00187"></a>00187 
-<a name="l00188"></a>00188     ldv-&gt;_references--;
-<a name="l00189"></a>00189     <span class="keywordflow">if</span> (ldv-&gt;_references &gt; 0)
-<a name="l00190"></a>00190         <span class="keywordflow">return</span> 0;
-<a name="l00191"></a>00191 
-<a name="l00192"></a>00192     <span class="keywordflow">if</span> (ldv-&gt;insert)
-<a name="l00193"></a>00193         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(ldv-&gt;insert, <span class="stringliteral">"insert"</span>);
-<a name="l00194"></a>00194 
-<a name="l00195"></a>00195     r = <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(&amp;_cache, ldv-&gt;db, ldv);
-<a name="l00196"></a>00196     free(ldv);
-<a name="l00197"></a>00197 
-<a name="l00198"></a>00198     <span class="keywordflow">return</span> r;
-<a name="l00199"></a>00199 }
+<a name="l00167"></a>00167 <span class="keywordtype">int</span>
+<a name="l00168"></a><a class="code" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">00168</a> <a class="code" href="group__LMS__DB.html#g0ebc0dd37b1c9bcaf7741231a411ade2">lms_db_video_start</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv)
+<a name="l00169"></a>00169 {
+<a name="l00170"></a>00170     <span class="keywordflow">if</span> (!ldv)
+<a name="l00171"></a>00171         <span class="keywordflow">return</span> -1;
+<a name="l00172"></a>00172     <span class="keywordflow">if</span> (ldv-&gt;_is_started)
+<a name="l00173"></a>00173         <span class="keywordflow">return</span> 0;
+<a name="l00174"></a>00174 
+<a name="l00175"></a>00175     ldv-&gt;insert = <a class="code" href="lightmediascanner__db__common_8c.html#5fddf47521f83929b0c90a481fa01c5b">lms_db_compile_stmt</a>(ldv-&gt;db,
+<a name="l00176"></a>00176         <span class="stringliteral">"INSERT OR REPLACE INTO videos (id, title, artist) VALUES (?, ?, ?)"</span>);
+<a name="l00177"></a>00177     <span class="keywordflow">if</span> (!ldv-&gt;insert)
+<a name="l00178"></a>00178         <span class="keywordflow">return</span> -2;
+<a name="l00179"></a>00179 
+<a name="l00180"></a>00180     ldv-&gt;_is_started = 1;
+<a name="l00181"></a>00181     <span class="keywordflow">return</span> 0;
+<a name="l00182"></a>00182 }
+<a name="l00183"></a>00183 
+<a name="l00196"></a>00196 <span class="keywordtype">int</span>
+<a name="l00197"></a><a class="code" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">00197</a> <a class="code" href="group__LMS__DB.html#g6be7c0922e76acc29542643424cfeac0">lms_db_video_free</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv)
+<a name="l00198"></a>00198 {
+<a name="l00199"></a>00199     <span class="keywordtype">int</span> r;
 <a name="l00200"></a>00200 
-<a name="l00201"></a>00201 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00202"></a>00202 _db_insert(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__video__info.html">lms_video_info</a> *info)
-<a name="l00203"></a>00203 {
-<a name="l00204"></a>00204     sqlite3_stmt *stmt;
-<a name="l00205"></a>00205     <span class="keywordtype">int</span> r, ret;
-<a name="l00206"></a>00206 
-<a name="l00207"></a>00207     stmt = ldv-&gt;insert;
-<a name="l00208"></a>00208 
-<a name="l00209"></a>00209     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, info-&gt;<a class="code" href="structlms__video__info.html#12b5bc5f8b13bdcb3ee1e919a1e05822">id</a>);
-<a name="l00210"></a>00210     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00211"></a>00211         <span class="keywordflow">goto</span> done;
-<a name="l00212"></a>00212 
-<a name="l00213"></a>00213     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__video__info.html#f3b8a8168ec317daef65da3b06f72bc0">title</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__video__info.html#f3b8a8168ec317daef65da3b06f72bc0">title</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00214"></a>00214     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00215"></a>00215         <span class="keywordflow">goto</span> done;
-<a name="l00216"></a>00216 
-<a name="l00217"></a>00217     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 3, info-&gt;<a class="code" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">artist</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">artist</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
-<a name="l00218"></a>00218     <span class="keywordflow">if</span> (ret != 0)
-<a name="l00219"></a>00219         <span class="keywordflow">goto</span> done;
+<a name="l00201"></a>00201     <span class="keywordflow">if</span> (!ldv)
+<a name="l00202"></a>00202         <span class="keywordflow">return</span> -1;
+<a name="l00203"></a>00203     <span class="keywordflow">if</span> (ldv-&gt;_references == 0) {
+<a name="l00204"></a>00204         fprintf(stderr, <span class="stringliteral">"ERROR: over-called lms_db_video_free(%p)\n"</span>, ldv);
+<a name="l00205"></a>00205         <span class="keywordflow">return</span> -1;
+<a name="l00206"></a>00206     }
+<a name="l00207"></a>00207 
+<a name="l00208"></a>00208     ldv-&gt;_references--;
+<a name="l00209"></a>00209     <span class="keywordflow">if</span> (ldv-&gt;_references &gt; 0)
+<a name="l00210"></a>00210         <span class="keywordflow">return</span> 0;
+<a name="l00211"></a>00211 
+<a name="l00212"></a>00212     <span class="keywordflow">if</span> (ldv-&gt;insert)
+<a name="l00213"></a>00213         <a class="code" href="lightmediascanner__db__common_8c.html#32110a4825e598ca6df329f55b0b62b5">lms_db_finalize_stmt</a>(ldv-&gt;insert, <span class="stringliteral">"insert"</span>);
+<a name="l00214"></a>00214 
+<a name="l00215"></a>00215     r = <a class="code" href="lightmediascanner__db__common_8c.html#296c81e4c64be1c7935ef31038aeb2c0">lms_db_cache_del</a>(&amp;_cache, ldv-&gt;db, ldv);
+<a name="l00216"></a>00216     free(ldv);
+<a name="l00217"></a>00217 
+<a name="l00218"></a>00218     <span class="keywordflow">return</span> r;
+<a name="l00219"></a>00219 }
 <a name="l00220"></a>00220 
-<a name="l00221"></a>00221     r = sqlite3_step(stmt);
-<a name="l00222"></a>00222     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
-<a name="l00223"></a>00223         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert video info: %s\n"</span>,
-<a name="l00224"></a>00224                 sqlite3_errmsg(ldv-&gt;db));
-<a name="l00225"></a>00225         ret = -4;
-<a name="l00226"></a>00226         <span class="keywordflow">goto</span> done;
-<a name="l00227"></a>00227     }
+<a name="l00221"></a>00221 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00222"></a>00222 _db_insert(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__video__info.html">lms_video_info</a> *info)
+<a name="l00223"></a>00223 {
+<a name="l00224"></a>00224     sqlite3_stmt *stmt;
+<a name="l00225"></a>00225     <span class="keywordtype">int</span> r, ret;
+<a name="l00226"></a>00226 
+<a name="l00227"></a>00227     stmt = ldv-&gt;insert;
 <a name="l00228"></a>00228 
-<a name="l00229"></a>00229     ret = 0;
-<a name="l00230"></a>00230 
-<a name="l00231"></a>00231   done:
-<a name="l00232"></a>00232     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
-<a name="l00233"></a>00233 
-<a name="l00234"></a>00234     <span class="keywordflow">return</span> ret;
-<a name="l00235"></a>00235 }
+<a name="l00229"></a>00229     ret = <a class="code" href="lightmediascanner__db__common_8c.html#f2fe78bc45dc33d843313a846db5ce7c">lms_db_bind_int64</a>(stmt, 1, info-&gt;<a class="code" href="structlms__video__info.html#12b5bc5f8b13bdcb3ee1e919a1e05822">id</a>);
+<a name="l00230"></a>00230     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00231"></a>00231         <span class="keywordflow">goto</span> done;
+<a name="l00232"></a>00232 
+<a name="l00233"></a>00233     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 2, info-&gt;<a class="code" href="structlms__video__info.html#f3b8a8168ec317daef65da3b06f72bc0">title</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__video__info.html#f3b8a8168ec317daef65da3b06f72bc0">title</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00234"></a>00234     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00235"></a>00235         <span class="keywordflow">goto</span> done;
 <a name="l00236"></a>00236 
-<a name="l00248"></a>00248 <span class="keywordtype">int</span>
-<a name="l00249"></a><a class="code" href="lightmediascanner__db__video_8c.html#700adc9c25a70e5cd1d77812324b748e">00249</a> <a class="code" href="group__LMS__DB.html#gb07d1e7fe962486b6e9d00581e8aac19">lms_db_video_add</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv, <span class="keyword">struct</span> <a class="code" href="structlms__video__info.html">lms_video_info</a> *info)
-<a name="l00250"></a>00250 {
-<a name="l00251"></a>00251     <span class="keywordflow">if</span> (!ldv)
-<a name="l00252"></a>00252         <span class="keywordflow">return</span> -1;
-<a name="l00253"></a>00253     <span class="keywordflow">if</span> (!info)
-<a name="l00254"></a>00254         <span class="keywordflow">return</span> -2;
-<a name="l00255"></a>00255     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="structlms__video__info.html#12b5bc5f8b13bdcb3ee1e919a1e05822">id</a> &lt; 1)
-<a name="l00256"></a>00256         <span class="keywordflow">return</span> -3;
-<a name="l00257"></a>00257 
-<a name="l00258"></a>00258     <span class="keywordflow">return</span> _db_insert(ldv, info);
-<a name="l00259"></a>00259 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00237"></a>00237     ret = <a class="code" href="lightmediascanner__db__common_8c.html#88c461ae88da3eb47987c5a0b15c5888">lms_db_bind_text</a>(stmt, 3, info-&gt;<a class="code" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">artist</a>.<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, info-&gt;<a class="code" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">artist</a>.<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00238"></a>00238     <span class="keywordflow">if</span> (ret != 0)
+<a name="l00239"></a>00239         <span class="keywordflow">goto</span> done;
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241     r = sqlite3_step(stmt);
+<a name="l00242"></a>00242     <span class="keywordflow">if</span> (r != SQLITE_DONE) {
+<a name="l00243"></a>00243         fprintf(stderr, <span class="stringliteral">"ERROR: could not insert video info: %s\n"</span>,
+<a name="l00244"></a>00244                 sqlite3_errmsg(ldv-&gt;db));
+<a name="l00245"></a>00245         ret = -4;
+<a name="l00246"></a>00246         <span class="keywordflow">goto</span> done;
+<a name="l00247"></a>00247     }
+<a name="l00248"></a>00248 
+<a name="l00249"></a>00249     ret = 0;
+<a name="l00250"></a>00250 
+<a name="l00251"></a>00251   done:
+<a name="l00252"></a>00252     <a class="code" href="lightmediascanner__db__common_8c.html#226c6f7ab2e7923b747b7090357ea419">lms_db_reset_stmt</a>(stmt);
+<a name="l00253"></a>00253 
+<a name="l00254"></a>00254     <span class="keywordflow">return</span> ret;
+<a name="l00255"></a>00255 }
+<a name="l00256"></a>00256 
+<a name="l00268"></a>00268 <span class="keywordtype">int</span>
+<a name="l00269"></a><a class="code" href="lightmediascanner__db__video_8c.html#700adc9c25a70e5cd1d77812324b748e">00269</a> <a class="code" href="group__LMS__DB.html#gb07d1e7fe962486b6e9d00581e8aac19">lms_db_video_add</a>(<a class="code" href="group__LMS__DB.html#gc2e0d2164f90e1ad3c78e05a4d341ec8">lms_db_video_t</a> *ldv, <span class="keyword">struct</span> <a class="code" href="structlms__video__info.html">lms_video_info</a> *info)
+<a name="l00270"></a>00270 {
+<a name="l00271"></a>00271     <span class="keywordflow">if</span> (!ldv)
+<a name="l00272"></a>00272         <span class="keywordflow">return</span> -1;
+<a name="l00273"></a>00273     <span class="keywordflow">if</span> (!info)
+<a name="l00274"></a>00274         <span class="keywordflow">return</span> -2;
+<a name="l00275"></a>00275     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="structlms__video__info.html#12b5bc5f8b13bdcb3ee1e919a1e05822">id</a> &lt; 1)
+<a name="l00276"></a>00276         <span class="keywordflow">return</span> -3;
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278     <span class="keywordflow">return</span> _db_insert(ldv, info);
+<a name="l00279"></a>00279 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 9f3af11..1c7da9b 100644 (file)
@@ -4,30 +4,31 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_db_video.c File Reference</h1><code>#include &lt;<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>&gt;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&quot;</code><br>
 <code>#include &lt;stdlib.h&gt;</code><br>
 <code>#include &lt;stdio.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_db_video.c:<p><center><img src="lightmediascanner__db__video_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_video.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_db_video.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__db__video_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_db_video.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_db_video.c_map">
-<area shape="rect" href="lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="297,107,447,133"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="276,56,468,83"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="519,107,687,133"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="524,157,681,184"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="776,107,904,133"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="737,157,943,184"></map>
+<area shape="rect" href="lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="292,84,471,111"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="33,84,268,111"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="188,161,388,188"><area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="412,161,604,188"><area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__db__video_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -62,7 +63,7 @@ Include dependency graph for lightmediascanner_db_video.c:<p><center><img src="l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -79,14 +80,15 @@ This is usually called from plugin's <b>parse()</b> callback.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__video_8c-source.html#l00249">249</a> of file <a class="el" href="lightmediascanner__db__video_8c-source.html">lightmediascanner_db_video.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__db_8h-source.html#l00106">lms_video_info::id</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__video_8c-source.html#l00269">269</a> of file <a class="el" href="lightmediascanner__db__video_8c-source.html">lightmediascanner_db_video.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__db_8h-source.html#l00106">lms_video_info::id</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:56 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index ddf4717..5296cfa 100644 (file)
@@ -1,6 +1,6 @@
-<area shape="rect" href="$lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="297,107,447,133">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="276,56,468,83">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="519,107,687,133">
-<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="524,157,681,184">
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="776,107,904,133">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="737,157,943,184">
+<area shape="rect" href="$lightmediascanner__db_8h.html" title="lightmediascanner_db.h" alt="" coords="292,84,471,111">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="33,84,268,111">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="188,161,388,188">
+<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="412,161,604,188">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="229,239,384,265">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="408,239,661,265">
index 3b5959f..9339909 100644 (file)
@@ -1 +1 @@
-a70efaba1e5a3952a0630f7f668a914f
\ No newline at end of file
+ab27ed13f05de8c74b0a91bbade0273c
\ No newline at end of file
index eaade59..660ed66 100644 (file)
Binary files a/www/api/lightmediascanner__db__video_8c__incl.png and b/www/api/lightmediascanner__db__video_8c__incl.png differ
index 8b5ec3e..64f75b7 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner_plugin.h</h1><a href="lightmediascanner__plugin_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00121"></a>00121 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_PLUGIN_H_</span>
 <a name="l00122"></a><a class="code" href="lightmediascanner__plugin_8h.html#25abdf2375defcfc83bf95ef930fc739">00122</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_PLUGIN_H_ 1</span>
 <a name="l00145"></a><a class="code" href="structlms__context.html#a5ce50393bbe62f6357934a1d9ce5a61">00145</a>         <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *<a class="code" href="structlms__context.html#a5ce50393bbe62f6357934a1d9ce5a61">cs_conv</a>; 
 <a name="l00146"></a>00146     };
 <a name="l00147"></a>00147 
-<a name="l00148"></a><a class="code" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">00148</a>     <span class="keyword">typedef</span> <span class="keywordtype">void</span> *(*lms_plugin_match_fn_t)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> base);
-<a name="l00149"></a><a class="code" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">00149</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lms_plugin_parse_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> *ctxt, <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, <span class="keywordtype">void</span> *match);
-<a name="l00150"></a><a class="code" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">00150</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lms_plugin_close_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p);
-<a name="l00151"></a><a class="code" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">00151</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lms_plugin_setup_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> *ctxt);
-<a name="l00152"></a><a class="code" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">00152</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lms_plugin_start_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> *ctxt);
-<a name="l00153"></a><a class="code" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">00153</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lms_plugin_finish_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> *ctxt);
+<a name="l00148"></a><a class="code" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">00148</a>     <span class="keyword">typedef</span> <span class="keywordtype">void</span> *(*lms_plugin_match_fn_t)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> base);
+<a name="l00149"></a><a class="code" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">00149</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lms_plugin_parse_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> *ctxt, <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo, <span class="keywordtype">void</span> *match);
+<a name="l00150"></a><a class="code" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">00150</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lms_plugin_close_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p);
+<a name="l00151"></a><a class="code" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">00151</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lms_plugin_setup_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> *ctxt);
+<a name="l00152"></a><a class="code" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">00152</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lms_plugin_start_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> *ctxt);
+<a name="l00153"></a><a class="code" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">00153</a>     <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lms_plugin_finish_fn_t</a>)(<a class="code" href="structlms__plugin.html">lms_plugin_t</a> *p, <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> *ctxt);
 <a name="l00154"></a>00154 
 <a name="l00155"></a><a class="code" href="structlms__plugin.html">00155</a>     <span class="keyword">struct </span><a class="code" href="structlms__plugin.html">lms_plugin</a> {
 <a name="l00156"></a><a class="code" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">00156</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">name</a>; 
-<a name="l00157"></a><a class="code" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">00157</a>         <a class="code" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">lms_plugin_match_fn_t</a> <a class="code" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">match</a>; 
-<a name="l00158"></a><a class="code" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">00158</a>         <a class="code" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lms_plugin_parse_fn_t</a> <a class="code" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">parse</a>; 
-<a name="l00159"></a><a class="code" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">00159</a>         <a class="code" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lms_plugin_close_fn_t</a> <a class="code" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">close</a>; 
-<a name="l00160"></a><a class="code" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">00160</a>         <a class="code" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lms_plugin_setup_fn_t</a> <a class="code" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">setup</a>; 
-<a name="l00161"></a><a class="code" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">00161</a>         <a class="code" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lms_plugin_start_fn_t</a> <a class="code" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">start</a>; 
-<a name="l00162"></a><a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">00162</a>         <a class="code" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lms_plugin_finish_fn_t</a> <a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a>; 
+<a name="l00157"></a><a class="code" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">00157</a>         <a class="code" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">lms_plugin_match_fn_t</a> <a class="code" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">match</a>; 
+<a name="l00158"></a><a class="code" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">00158</a>         <a class="code" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lms_plugin_parse_fn_t</a> <a class="code" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">parse</a>; 
+<a name="l00159"></a><a class="code" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">00159</a>         <a class="code" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lms_plugin_close_fn_t</a> <a class="code" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">close</a>; 
+<a name="l00160"></a><a class="code" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">00160</a>         <a class="code" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lms_plugin_setup_fn_t</a> <a class="code" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">setup</a>; 
+<a name="l00161"></a><a class="code" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">00161</a>         <a class="code" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lms_plugin_start_fn_t</a> <a class="code" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">start</a>; 
+<a name="l00162"></a><a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">00162</a>         <a class="code" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lms_plugin_finish_fn_t</a> <a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a>; 
 <a name="l00163"></a>00163     };
 <a name="l00164"></a>00164 
 <a name="l00165"></a>00165 <span class="preprocessor">#ifdef __cplusplus</span>
 <a name="l00166"></a>00166 <span class="preprocessor"></span>}
 <a name="l00167"></a>00167 <span class="preprocessor">#endif</span>
 <a name="l00168"></a>00168 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_PLUGIN_H_ */</span>
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 49b4848..10223f0 100644 (file)
@@ -4,35 +4,40 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_plugin.h File Reference</h1><code>#include &lt;<a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>&gt;</code><br>
 <code>#include &lt;<a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>&gt;</code><br>
 <code>#include &lt;sqlite3.h&gt;</code><br>
 <code>#include &lt;sys/types.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_plugin.h:<p><center><img src="lightmediascanner__plugin_8h__incl.png" border="0" usemap="#src/lib/lightmediascanner_plugin.h_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_plugin.h:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__plugin_8h__incl.png" border="0" usemap="#src/lib/lightmediascanner_plugin.h_map" alt=""></center>
 <map name="src/lib/lightmediascanner_plugin.h_map">
-<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="301,5,429,32"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="263,56,468,83"></map>
+<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="5,84,160,110"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="184,84,437,110"></map>
+</div>
 
 <p>
-This graph shows which files directly or indirectly include this file:<p><center><img src="lightmediascanner__plugin_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_plugin.hdep_map" alt=""></center>
+<div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__plugin_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_plugin.hdep_map" alt=""></center>
 <map name="src/lib/lightmediascanner_plugin.hdep_map">
-<area shape="rect" href="lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="272,95,480,121"><area shape="rect" href="lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="576,5,741,32"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="261,183,491,209"><area shape="rect" href="lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="283,259,469,285"><area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="557,56,760,83"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="553,107,764,133"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="548,309,769,336"><area shape="rect" href="lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="540,157,777,184"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="547,360,771,387"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="544,208,773,235"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="548,259,769,285"></map>
+<area shape="rect" href="lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="360,84,613,111"><area shape="rect" href="lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="5,162,203,188"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="933,84,1208,111"><area shape="rect" href="lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="1405,84,1627,111"><area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="227,162,472,188"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="496,162,752,188"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="1672,162,1936,188"><area shape="rect" href="lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="776,162,1061,188"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="1960,162,2229,188"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="1085,162,1360,188"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="1384,162,1648,188"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__plugin_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -48,17 +53,17 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#25abdf2375defcfc83bf95ef930fc739">_LIGHTMEDIASCANNER_PLUGIN_H_</a>&nbsp;&nbsp;&nbsp;1</td></tr>
 
 <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">lms_plugin_match_fn_t</a> (<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, const char *path, int len, int base)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">lms_plugin_match_fn_t</a> )(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, const char *path, int len, int base)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lms_plugin_parse_fn_t</a> (<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt, const struct <a class="el" href="structlms__file__info.html">lms_file_info</a> *finfo, void *match)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lms_plugin_parse_fn_t</a> )(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt, const struct <a class="el" href="structlms__file__info.html">lms_file_info</a> *finfo, void *match)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lms_plugin_close_fn_t</a> (<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lms_plugin_close_fn_t</a> )(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lms_plugin_setup_fn_t</a> (<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lms_plugin_setup_fn_t</a> )(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lms_plugin_start_fn_t</a> (<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lms_plugin_start_fn_t</a> )(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lms_plugin_finish_fn_t</a> (<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lms_plugin_finish_fn_t</a> )(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)</td></tr>
 
 </table>
 <hr><h2>Define Documentation</h2>
@@ -75,17 +80,17 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00122">122</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00122">122</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Typedef Documentation</h2>
-<a class="anchor" name="8ce53e0b14aa220d76d552882c1150a4"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_close_fn_t" ref="8ce53e0b14aa220d76d552882c1150a4" args="(lms_plugin_t *p)" -->
+<a class="anchor" name="44576c68c208c78f34f41fcd6c7c2c4b"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_close_fn_t" ref="44576c68c208c78f34f41fcd6c7c2c4b" args=")(lms_plugin_t *p)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef int(*) <a class="el" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lms_plugin_close_fn_t</a>(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p)          </td>
+          <td class="memname">typedef int(* <a class="el" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lms_plugin_close_fn_t</a>)(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p)          </td>
         </tr>
       </table>
 </div>
@@ -93,16 +98,16 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00150">150</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00150">150</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_finish_fn_t" ref="b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7" args="(lms_plugin_t *p, struct lms_context *ctxt)" -->
+<a class="anchor" name="c72facc8d4fa98f660fd064c80d5b321"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_finish_fn_t" ref="c72facc8d4fa98f660fd064c80d5b321" args=")(lms_plugin_t *p, struct lms_context *ctxt)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef int(*) <a class="el" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lms_plugin_finish_fn_t</a>(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)          </td>
+          <td class="memname">typedef int(* <a class="el" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lms_plugin_finish_fn_t</a>)(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)          </td>
         </tr>
       </table>
 </div>
@@ -110,16 +115,16 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00153">153</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00153">153</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="4374f28037e503b570592aed72a27c15"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_match_fn_t" ref="4374f28037e503b570592aed72a27c15" args="(lms_plugin_t *p, const char *path, int len, int base)" -->
+<a class="anchor" name="558e8f031ecb3e6b8adf7d98f3e4fcd6"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_match_fn_t" ref="558e8f031ecb3e6b8adf7d98f3e4fcd6" args=")(lms_plugin_t *p, const char *path, int len, int base)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef void*(*) <a class="el" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">lms_plugin_match_fn_t</a>(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, const char *path, int len, int base)          </td>
+          <td class="memname">typedef void*(* <a class="el" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">lms_plugin_match_fn_t</a>)(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, const char *path, int len, int base)          </td>
         </tr>
       </table>
 </div>
@@ -127,16 +132,16 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00148">148</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00148">148</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="cc0d2d6d376ca4abd084ad313b4d479c"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_parse_fn_t" ref="cc0d2d6d376ca4abd084ad313b4d479c" args="(lms_plugin_t *p, struct lms_context *ctxt, const struct lms_file_info *finfo, void *match)" -->
+<a class="anchor" name="649350fd7015fa63ca86c43906c3f175"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_parse_fn_t" ref="649350fd7015fa63ca86c43906c3f175" args=")(lms_plugin_t *p, struct lms_context *ctxt, const struct lms_file_info *finfo, void *match)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef int(*) <a class="el" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lms_plugin_parse_fn_t</a>(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt, const struct <a class="el" href="structlms__file__info.html">lms_file_info</a> *finfo, void *match)          </td>
+          <td class="memname">typedef int(* <a class="el" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lms_plugin_parse_fn_t</a>)(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt, const struct <a class="el" href="structlms__file__info.html">lms_file_info</a> *finfo, void *match)          </td>
         </tr>
       </table>
 </div>
@@ -144,16 +149,16 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00149">149</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00149">149</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="a8f0f1499d3cfb5fcd6d25928297f45e"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_setup_fn_t" ref="a8f0f1499d3cfb5fcd6d25928297f45e" args="(lms_plugin_t *p, struct lms_context *ctxt)" -->
+<a class="anchor" name="6bfa82e6e83e85747048f41dfb334acd"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_setup_fn_t" ref="6bfa82e6e83e85747048f41dfb334acd" args=")(lms_plugin_t *p, struct lms_context *ctxt)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef int(*) <a class="el" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lms_plugin_setup_fn_t</a>(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)          </td>
+          <td class="memname">typedef int(* <a class="el" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lms_plugin_setup_fn_t</a>)(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)          </td>
         </tr>
       </table>
 </div>
@@ -161,16 +166,16 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00151">151</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00151">151</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="d3b811bbff952ce44516c98119d91b30"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_start_fn_t" ref="d3b811bbff952ce44516c98119d91b30" args="(lms_plugin_t *p, struct lms_context *ctxt)" -->
+<a class="anchor" name="875d300da41e72865452c6ae44687b77"></a><!-- doxytag: member="lightmediascanner_plugin.h::lms_plugin_start_fn_t" ref="875d300da41e72865452c6ae44687b77" args=")(lms_plugin_t *p, struct lms_context *ctxt)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef int(*) <a class="el" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lms_plugin_start_fn_t</a>(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)          </td>
+          <td class="memname">typedef int(* <a class="el" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lms_plugin_start_fn_t</a>)(<a class="el" href="structlms__plugin.html">lms_plugin_t</a> *p, struct <a class="el" href="structlms__context.html">lms_context</a> *ctxt)          </td>
         </tr>
       </table>
 </div>
@@ -178,12 +183,13 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00152">152</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00152">152</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:04 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:57 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 503e827..800db80 100644 (file)
@@ -1,11 +1,11 @@
-<area shape="rect" href="$lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="272,95,480,121">
-<area shape="rect" href="$lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="576,5,741,32">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="261,183,491,209">
-<area shape="rect" href="$lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="283,259,469,285">
-<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="557,56,760,83">
-<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="553,107,764,133">
-<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="548,309,769,336">
-<area shape="rect" href="$lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="540,157,777,184">
-<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="547,360,771,387">
-<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="544,208,773,235">
-<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="548,259,769,285">
+<area shape="rect" href="$lightmediascanner__private_8h.html" title="src/lib/lightmediascanner_private.h" alt="" coords="360,84,613,111">
+<area shape="rect" href="$lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="5,162,203,188">
+<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="src/lib/lightmediascanner_db_private.h" alt="" coords="933,84,1208,111">
+<area shape="rect" href="$lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="1405,84,1627,111">
+<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="227,162,472,188">
+<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="496,162,752,188">
+<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="1672,162,1936,188">
+<area shape="rect" href="$lightmediascanner__db__common_8c.html" title="src/lib/lightmediascanner_db_common.c" alt="" coords="776,162,1061,188">
+<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="1960,162,2229,188">
+<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="1085,162,1360,188">
+<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="1384,162,1648,188">
index d75c63a..aa9d983 100644 (file)
@@ -1 +1 @@
-028a480f4edc1e7a571f0025d6804f4b
\ No newline at end of file
+54a9e424b28cc49232d65f3abcf1b755
\ No newline at end of file
index 060df65..8883696 100644 (file)
Binary files a/www/api/lightmediascanner__plugin_8h__dep__incl.png and b/www/api/lightmediascanner__plugin_8h__dep__incl.png differ
index b12a128..8dd4a89 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="301,5,429,32">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="263,56,468,83">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="5,84,160,110">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="184,84,437,110">
index dbdd8a3..01e3fbd 100644 (file)
@@ -1 +1 @@
-d7a79bb71161929390f7080b91f24c07
\ No newline at end of file
+35059f115e3844d21e2e9865d16bbc13
\ No newline at end of file
index 3d182bb..cc76da7 100644 (file)
Binary files a/www/api/lightmediascanner__plugin_8h__incl.png and b/www/api/lightmediascanner__plugin_8h__incl.png differ
index 48763ad..af362aa 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner_private.h</h1><a href="lightmediascanner__private_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_PRIVATE_H_</span>
 <a name="l00022"></a><a class="code" href="lightmediascanner__private_8h.html#c9783e2105f145aa71f541e0825707ed">00022</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_PRIVATE_H_ 1</span>
 <a name="l00046"></a><a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">00046</a>     <span class="keywordtype">int</span> <a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>;
 <a name="l00047"></a>00047 };
 <a name="l00048"></a>00048 
-<a name="l00049"></a>00049 <span class="comment">/* info to be carried along lms_process() and lms_check() */</span>
-<a name="l00050"></a><a class="code" href="structpinfo.html">00050</a> <span class="keyword">struct </span><a class="code" href="structpinfo.html">pinfo</a> {
-<a name="l00051"></a><a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">00051</a>     <span class="keyword">struct </span><a class="code" href="structfds.html">fds</a> <a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>;
-<a name="l00052"></a><a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">00052</a>     <span class="keyword">struct </span><a class="code" href="structfds.html">fds</a> <a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>;
-<a name="l00053"></a><a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">00053</a>     <span class="keyword">struct </span>pollfd poll;
-<a name="l00054"></a><a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">00054</a>     <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>;
-<a name="l00055"></a><a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">00055</a>     pid_t <a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>;
-<a name="l00056"></a>00056 };
-<a name="l00057"></a>00057 
-<a name="l00058"></a><a class="code" href="structparser.html">00058</a> <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> {
-<a name="l00059"></a><a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">00059</a>     <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *<a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a>;
-<a name="l00060"></a><a class="code" href="structparser.html#3dd2a049d1cd9229ec33645e28803e0a">00060</a>     <span class="keywordtype">void</span> *<a class="code" href="structparser.html#3dd2a049d1cd9229ec33645e28803e0a">dl_handle</a>;
-<a name="l00061"></a><a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">00061</a>     <span class="keywordtype">char</span> *<a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">so_path</a>;
-<a name="l00062"></a>00062 };
-<a name="l00063"></a>00063 
-<a name="l00064"></a><a class="code" href="structlms.html">00064</a> <span class="keyword">struct </span><a class="code" href="structlms.html">lms</a> {
-<a name="l00065"></a><a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">00065</a>     <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> *<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>;
-<a name="l00066"></a><a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">00066</a>     <span class="keywordtype">int</span> <a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>;
-<a name="l00067"></a><a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">00067</a>     <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>;
-<a name="l00068"></a><a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">00068</a>     <span class="keywordtype">char</span> *<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>;
-<a name="l00069"></a><a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">00069</a>     <span class="keywordtype">int</span> <a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>;
-<a name="l00070"></a><a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">00070</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>;
-<a name="l00071"></a><a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">00071</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>:1;
-<a name="l00072"></a>00072 };
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">int</span> i) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00075"></a>00075 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00076"></a>00076 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
-<a name="l00077"></a>00077 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00078"></a>00078 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00079"></a>00079 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*finish)(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00080"></a>00080 
-<a name="l00081"></a>00081 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lms_parsers_setup</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00082"></a>00082 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00083"></a>00083 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00084"></a>00084 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lms_parsers_check_using</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">void</span> **parser_match, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 3);
-<a name="l00085"></a>00085 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db, <span class="keywordtype">void</span> **parser_match, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 3, 4);
-<a name="l00086"></a>00086 
-<a name="l00087"></a>00087 
-<a name="l00088"></a>00088 <span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_PRIVATE_H_ */</span>
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00049"></a><a class="code" href="structcinfo.html">00049</a> <span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> {
+<a name="l00050"></a><a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">00050</a>     <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>;
+<a name="l00051"></a>00051 };
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053 <span class="comment">/* info to be carried along lms_process() and lms_check() */</span>
+<a name="l00054"></a><a class="code" href="structpinfo.html">00054</a> <span class="keyword">struct </span><a class="code" href="structpinfo.html">pinfo</a> {
+<a name="l00055"></a><a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">00055</a>     <span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> <a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>;
+<a name="l00056"></a><a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">00056</a>     pid_t <a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>;
+<a name="l00057"></a><a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">00057</a>     <span class="keyword">struct </span><a class="code" href="structfds.html">fds</a> <a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>;
+<a name="l00058"></a><a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">00058</a>     <span class="keyword">struct </span><a class="code" href="structfds.html">fds</a> <a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>;
+<a name="l00059"></a><a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">00059</a>     <span class="keyword">struct </span>pollfd <a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>;
+<a name="l00060"></a>00060 };
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062 <span class="comment">/* same as struct pinfo for single process versions */</span>
+<a name="l00063"></a><a class="code" href="structsinfo.html">00063</a> <span class="keyword">struct </span><a class="code" href="structsinfo.html">sinfo</a> {
+<a name="l00064"></a><a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">00064</a>     <span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> <a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">common</a>;
+<a name="l00065"></a><a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">00065</a>     <span class="keyword">struct </span><a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a> *<a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a>;
+<a name="l00066"></a><a class="code" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">00066</a>     <span class="keywordtype">void</span> **<a class="code" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">parser_match</a>;
+<a name="l00067"></a><a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">00067</a>     <span class="keywordtype">int</span> <a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a>;
+<a name="l00068"></a>00068 };
+<a name="l00069"></a>00069 
+<a name="l00070"></a><a class="code" href="structparser.html">00070</a> <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> {
+<a name="l00071"></a><a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">00071</a>     <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *<a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a>;
+<a name="l00072"></a><a class="code" href="structparser.html#3dd2a049d1cd9229ec33645e28803e0a">00072</a>     <span class="keywordtype">void</span> *<a class="code" href="structparser.html#3dd2a049d1cd9229ec33645e28803e0a">dl_handle</a>;
+<a name="l00073"></a><a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">00073</a>     <span class="keywordtype">char</span> *<a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">so_path</a>;
+<a name="l00074"></a>00074 };
+<a name="l00075"></a>00075 
+<a name="l00076"></a><a class="code" href="structlms.html">00076</a> <span class="keyword">struct </span><a class="code" href="structlms.html">lms</a> {
+<a name="l00077"></a><a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">00077</a>     <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> *<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>;
+<a name="l00078"></a><a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">00078</a>     <span class="keywordtype">int</span> <a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>;
+<a name="l00079"></a><a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">00079</a>     <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>;
+<a name="l00080"></a><a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">00080</a>     <span class="keywordtype">char</span> *<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>;
+<a name="l00081"></a><a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">00081</a>     <span class="keywordtype">int</span> <a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>;
+<a name="l00082"></a>00082     <span class="keyword">struct </span>{
+<a name="l00083"></a><a class="code" href="structlms.html#94615d22fba40d580a8a0055d28221c4">00083</a>         <a class="code" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> <a class="code" href="structlms.html#94615d22fba40d580a8a0055d28221c4">cb</a>;
+<a name="l00084"></a><a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">00084</a>         <span class="keywordtype">void</span> *<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a>;
+<a name="l00085"></a><a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">00085</a>         <a class="code" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a> <a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">free_data</a>;
+<a name="l00086"></a>00086     } <a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>;
+<a name="l00087"></a><a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">00087</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>;
+<a name="l00088"></a><a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">00088</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>:1;
+<a name="l00089"></a><a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">00089</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a>:1;
+<a name="l00090"></a>00090 };
+<a name="l00091"></a>00091 
+<a name="l00092"></a><a class="code" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">00092</a> <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">process_file_callback_t</a>)(<span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
+<a name="l00093"></a><a class="code" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">00093</a> <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">check_row_callback_t</a>)(<span class="keywordtype">void</span> *db_ptr, <span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> *info);
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">int</span> i) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00096"></a>00096 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00097"></a>00097 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00098"></a>00098 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00099"></a>00099 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00100"></a>00100 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*finish)(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lms_parsers_setup</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00103"></a>00103 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00104"></a>00104 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00105"></a>00105 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lms_parsers_check_using</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">void</span> **parser_match, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 3);
+<a name="l00106"></a>00106 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db, <span class="keywordtype">void</span> **parser_match, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 3, 4);
+<a name="l00107"></a>00107 
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109 <span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_PRIVATE_H_ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index b2638ad..8d9d239 100644 (file)
@@ -4,21 +4,18 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_private.h File Reference</h1><code>#include &quot;<a class="el" href="lightmediascanner_8h-source.html">lightmediascanner.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>&quot;</code><br>
 <code>#include &lt;sqlite3.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_private.h:<p><center><img src="lightmediascanner__private_8h__incl.png" border="0" usemap="#src/lib/lightmediascanner_private.h_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_private.h:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__private_8h__incl.png" border="0" usemap="#src/lib/lightmediascanner_private.h_map" alt=""></center>
 <map name="src/lib/lightmediascanner_private.h_map">
-<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="523,5,651,32"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="265,100,433,127"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="484,68,689,95"></map>
+<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="5,162,160,188"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="293,84,493,111"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="184,162,437,188"></map>
+</div>
 
 <p>
-This graph shows which files directly or indirectly include this file:<p><center><img src="lightmediascanner__private_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_private.hdep_map" alt=""></center>
+<div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__private_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_private.hdep_map" alt=""></center>
 <map name="src/lib/lightmediascanner_private.hdep_map">
-<area shape="rect" href="lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="288,5,453,32"><area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="269,56,472,83"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="265,107,476,133"></map>
+<area shape="rect" href="lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="5,84,203,110"><area shape="rect" href="lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="227,84,472,110"><area shape="rect" href="lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="496,84,752,110"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__private_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -43,8 +48,12 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfds.html">fds</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcinfo.html">cinfo</a></td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html">pinfo</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsinfo.html">sinfo</a></td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structparser.html">parser</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html">lms</a></td></tr>
@@ -56,6 +65,11 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>&nbsp;&nbsp;&nbsp;PATH_MAX</td></tr>
 
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">process_file_callback_t</a> )(struct <a class="el" href="structcinfo.html">cinfo</a> *info, int base, char *path, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">check_row_callback_t</a> )(void *db_ptr, struct <a class="el" href="structcinfo.html">cinfo</a> *info)</td></tr>
+
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__private_8h.html#239fc535d2f20f09eeec9df86aa6ef9b">lms_parser_del_int</a> (<a class="el" href="structlms.html">lms_t</a> *<a class="el" href="structlms.html">lms</a>, int i) GNUC_NON_NULL(1)</td></tr>
 
@@ -77,8 +91,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int int int int int int int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">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) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int int int int int int int <br>
-int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">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) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int int int int int int int int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">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) GNUC_NON_NULL(1</td></tr>
 
 </table>
 <hr><h2>Define Documentation</h2>
@@ -97,11 +110,11 @@ int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="light
 Copyright (C) 2007 by INdT<p>
 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>
 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>
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<p>
+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>
 <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>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="6fe68cac0abf3e2ca61141920414e93a"></a><!-- doxytag: member="lightmediascanner_private.h::GNUC_NON_NULL" ref="6fe68cac0abf3e2ca61141920414e93a" args="(...)" -->
@@ -114,7 +127,7 @@ Definition at line <a class="el" href="lightmediascanner__private_8h-source.html
           <td class="paramtype"> <em>...</em>&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -122,8 +135,8 @@ Definition at line <a class="el" href="lightmediascanner__private_8h-source.html
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00031">31</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00031">31</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="e78bf7e06bbba1c42b740fef55cf20f8"></a><!-- doxytag: member="lightmediascanner_private.h::PATH_SIZE" ref="e78bf7e06bbba1c42b740fef55cf20f8" args="" -->
@@ -139,10 +152,45 @@ Definition at line <a class="el" href="lightmediascanner__private_8h-source.html
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00042">42</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00900">lms_check()</a>, and <a class="el" href="lightmediascanner__check_8c-source.html#l00949">lms_check_single_process()</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="818aa1ae6bb03151823bbd9b56bd0801"></a><!-- doxytag: member="lightmediascanner_private.h::check_row_callback_t" ref="818aa1ae6bb03151823bbd9b56bd0801" args=")(void *db_ptr, struct cinfo *info)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int(* <a class="el" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">check_row_callback_t</a>)(void *db_ptr, struct <a class="el" href="structcinfo.html">cinfo</a> *info)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00042">42</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00093">93</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="ca9b2668fa08b18c630e16d1f7f702a7"></a><!-- doxytag: member="lightmediascanner_private.h::process_file_callback_t" ref="ca9b2668fa08b18c630e16d1f7f702a7" args=")(struct cinfo *info, int base, char *path, const char *name)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int(* <a class="el" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">process_file_callback_t</a>)(struct <a class="el" href="structcinfo.html">cinfo</a> *info, int base, char *path, const char *name)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618">lms_check()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00092">92</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -156,7 +204,7 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
           <td class="paramname"> <em>pinfo</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -164,12 +212,12 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00566">566</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00051">pinfo::master</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00052">pinfo::slave</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618">lms_check()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+<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>
+
+<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>
+
+<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>
+
 </div>
 </div><p>
 <a class="anchor" name="a5952b7aae2fa795396a5a286c2ee4a4"></a><!-- doxytag: member="lightmediascanner_private.h::lms_create_pipes" ref="a5952b7aae2fa795396a5a286c2ee4a4" args="(struct pinfo *pinfo) GNUC_NON_NULL(1)" -->
@@ -182,7 +230,7 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
           <td class="paramname"> <em>pinfo</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -190,12 +238,12 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00577">577</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00051">pinfo::master</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00053">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#l00052">pinfo::slave</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00046">fds::w</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618">lms_check()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+<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>
+
+<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>
+
+<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>
+
 </div>
 </div><p>
 <a class="anchor" name="439b3c62e96d472bdb2125a0a04d4fa6"></a><!-- doxytag: member="lightmediascanner_private.h::lms_create_slave" ref="439b3c62e96d472bdb2125a0a04d4fa6" args="(struct pinfo *pinfo, int(*work)(lms_t *lms, struct fds *fds)) GNUC_NON_NULL(1" -->
@@ -217,7 +265,7 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -225,8 +273,8 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
 
 <p>
 
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00664">lms_restart_slave()</a>.
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01002">lms_process()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00694">lms_restart_slave()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="dd3853bb333e8bee167477933a058ae5"></a><!-- doxytag: member="lightmediascanner_private.h::lms_finish_slave" ref="dd3853bb333e8bee167477933a058ae5" args="(struct pinfo *pinfo, int(*finish)(const struct fds *fds)) GNUC_NON_NULL(1" -->
@@ -248,7 +296,7 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l008
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -256,8 +304,8 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l008
 
 <p>
 
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01002">lms_process()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="239fc535d2f20f09eeec9df86aa6ef9b"></a><!-- doxytag: member="lightmediascanner_private.h::lms_parser_del_int" ref="239fc535d2f20f09eeec9df86aa6ef9b" args="(lms_t *lms, int i) GNUC_NON_NULL(1)" -->
@@ -279,7 +327,7 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l008
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -287,12 +335,12 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l008
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00249">249</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00066">lms::n_parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">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>Definition at line <a class="el" href="lightmediascanner_8c-source.html#l00278">278</a> of file <a class="el" href="lightmediascanner_8c-source.html">lightmediascanner.c</a>.</p>
+
+<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>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00318">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>
+
 </div>
 </div><p>
 <a class="anchor" name="f92504ffd52b8b1d7d90b786af90d1ef"></a><!-- doxytag: member="lightmediascanner_private.h::lms_parsers_check_using" ref="f92504ffd52b8b1d7d90b786af90d1ef" args="(lms_t *lms, void **parser_match, struct lms_file_info *finfo) GNUC_NON_NULL(1" -->
@@ -320,7 +368,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -349,7 +397,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -357,6 +405,8 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
 
 <p>
 
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f61d9ef6ae2e576705bbd445db919e6c"></a><!-- doxytag: member="lightmediascanner_private.h::lms_parsers_run" ref="f61d9ef6ae2e576705bbd445db919e6c" args="(lms_t *lms, sqlite3 *db, void **parser_match, struct lms_file_info *finfo) GNUC_NON_NULL(1" -->
@@ -390,7 +440,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -419,7 +469,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -448,7 +498,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -477,7 +527,7 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -487,8 +537,9 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
 
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:57 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 177ed30..2c1b3cc 100644 (file)
@@ -1,3 +1,3 @@
-<area shape="rect" href="$lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="288,5,453,32">
-<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="269,56,472,83">
-<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="265,107,476,133">
+<area shape="rect" href="$lightmediascanner_8c.html" title="src/lib/lightmediascanner.c" alt="" coords="5,84,203,110">
+<area shape="rect" href="$lightmediascanner__check_8c.html" title="src/lib/lightmediascanner_check.c" alt="" coords="227,84,472,110">
+<area shape="rect" href="$lightmediascanner__process_8c.html" title="src/lib/lightmediascanner_process.c" alt="" coords="496,84,752,110">
index ec2b264..01944fd 100644 (file)
@@ -1 +1 @@
-4d417d15d050e1821629b1854b390812
\ No newline at end of file
+ba95f9c6abb69f3711f23adad29117f0
\ No newline at end of file
index 3bc92ab..875bd0a 100644 (file)
Binary files a/www/api/lightmediascanner__private_8h__dep__incl.png and b/www/api/lightmediascanner__private_8h__dep__incl.png differ
index 9dde33f..dc9bd21 100644 (file)
@@ -1,3 +1,3 @@
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="523,5,651,32">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="265,100,433,127">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="484,68,689,95">
+<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="5,162,160,188">
+<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="293,84,493,111">
+<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="184,162,437,188">
index 27e1e3a..9d67ef1 100644 (file)
@@ -1 +1 @@
-964dddbac26f6db485044d09051fa27b
\ No newline at end of file
+e8df54baffc71a707695af9ed67ef4f1
\ No newline at end of file
index 52d4d23..52e1f6c 100644 (file)
Binary files a/www/api/lightmediascanner__private_8h__incl.png and b/www/api/lightmediascanner__private_8h__incl.png differ
index b39919e..e1c9ee8 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner_process.c</h1><a href="lightmediascanner__process_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00021"></a>00021 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#include "config.h"</span>
 <a name="l00305"></a>00305         r = plugin-&gt;<a class="code" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">setup</a>(plugin, &amp;ctxt);
 <a name="l00306"></a>00306         <span class="keywordflow">if</span> (r != 0) {
 <a name="l00307"></a>00307             fprintf(stderr, <span class="stringliteral">"ERROR: parser \"%s\" failed to setup: %d.\n"</span>,
-<a name="l00308"></a>00308                     plugin-&gt;name, r);
-<a name="l00309"></a>00309             plugin-&gt;finish(plugin, &amp;ctxt);
+<a name="l00308"></a>00308                     plugin-&gt;<a class="code" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">name</a>, r);
+<a name="l00309"></a>00309             plugin-&gt;<a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a>(plugin, &amp;ctxt);
 <a name="l00310"></a>00310             <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(lms, i);
 <a name="l00311"></a>00311             i--; <span class="comment">/* cancel i++ */</span>
 <a name="l00312"></a>00312         }
 <a name="l00316"></a>00316 }
 <a name="l00317"></a>00317 
 <a name="l00318"></a>00318 <span class="keywordtype">int</span>
-<a name="l00319"></a><a class="code" href="lightmediascanner__process_8c.html#6e02f78f026b2ad282184476dca13e45">00319</a> <a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *<a class="code" href="structlms__context.html#310d38a2fab9ecea67601d0c6a3d8d81">db</a>)
+<a name="l00319"></a><a class="code" href="lightmediascanner__process_8c.html#6e02f78f026b2ad282184476dca13e45">00319</a> <a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db)
 <a name="l00320"></a>00320 {
 <a name="l00321"></a>00321     <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> ctxt;
 <a name="l00322"></a>00322     <span class="keywordtype">int</span> i;
 <a name="l00331"></a>00331         r = plugin-&gt;<a class="code" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">start</a>(plugin, &amp;ctxt);
 <a name="l00332"></a>00332         <span class="keywordflow">if</span> (r != 0) {
 <a name="l00333"></a>00333             fprintf(stderr, <span class="stringliteral">"ERROR: parser \"%s\" failed to start: %d.\n"</span>,
-<a name="l00334"></a>00334                     plugin-&gt;name, r);
-<a name="l00335"></a>00335             plugin-&gt;finish(plugin, &amp;ctxt);
+<a name="l00334"></a>00334                     plugin-&gt;<a class="code" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">name</a>, r);
+<a name="l00335"></a>00335             plugin-&gt;<a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a>(plugin, &amp;ctxt);
 <a name="l00336"></a>00336             <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(lms, i);
 <a name="l00337"></a>00337             i--; <span class="comment">/* cancel i++ */</span>
 <a name="l00338"></a>00338         }
 <a name="l00342"></a>00342 }
 <a name="l00343"></a>00343 
 <a name="l00344"></a>00344 <span class="keywordtype">int</span>
-<a name="l00345"></a><a class="code" href="lightmediascanner__process_8c.html#d002464442b08826a1da920bdf4957b7">00345</a> <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *<a class="code" href="structlms__context.html#310d38a2fab9ecea67601d0c6a3d8d81">db</a>)
+<a name="l00345"></a><a class="code" href="lightmediascanner__process_8c.html#d002464442b08826a1da920bdf4957b7">00345</a> <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db)
 <a name="l00346"></a>00346 {
 <a name="l00347"></a>00347     <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> ctxt;
 <a name="l00348"></a>00348     <span class="keywordtype">int</span> i;
 <a name="l00357"></a>00357         r = plugin-&gt;<a class="code" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a>(plugin, &amp;ctxt);
 <a name="l00358"></a>00358         <span class="keywordflow">if</span> (r != 0)
 <a name="l00359"></a>00359             fprintf(stderr, <span class="stringliteral">"ERROR: parser \"%s\" failed to finish: %d.\n"</span>,
-<a name="l00360"></a>00360                     plugin-&gt;name, r);
+<a name="l00360"></a>00360                     plugin-&gt;<a class="code" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">name</a>, r);
 <a name="l00361"></a>00361     }
 <a name="l00362"></a>00362 
 <a name="l00363"></a>00363     <span class="keywordflow">return</span> 0;
 <a name="l00384"></a>00384 }
 <a name="l00385"></a>00385 
 <a name="l00386"></a>00386 <span class="keywordtype">int</span>
-<a name="l00387"></a><a class="code" href="lightmediascanner__process_8c.html#4ab78dfbf29822d91472d18dd7424e77">00387</a> <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *<a class="code" href="structlms__context.html#310d38a2fab9ecea67601d0c6a3d8d81">db</a>, <span class="keywordtype">void</span> **parser_match, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
+<a name="l00387"></a><a class="code" href="lightmediascanner__process_8c.html#4ab78dfbf29822d91472d18dd7424e77">00387</a> <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db, <span class="keywordtype">void</span> **parser_match, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo)
 <a name="l00388"></a>00388 {
 <a name="l00389"></a>00389     <span class="keyword">struct </span><a class="code" href="structlms__context.html">lms_context</a> ctxt;
 <a name="l00390"></a>00390     <span class="keywordtype">int</span> i, failed, available;
 <a name="l00416"></a>00416 }
 <a name="l00417"></a>00417 
 <a name="l00418"></a>00418 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00419"></a>00419 _slave_work(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)
+<a name="l00419"></a>00419 _db_and_parsers_setup(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> db **db_ret, <span class="keywordtype">void</span> ***parser_match_ret)
 <a name="l00420"></a>00420 {
-<a name="l00421"></a>00421     <span class="keywordtype">int</span> r, len, base, counter;
-<a name="l00422"></a>00422     <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>];
-<a name="l00423"></a>00423     <span class="keywordtype">void</span> **parser_match;
-<a name="l00424"></a>00424     <span class="keyword">struct </span>db *db;
-<a name="l00425"></a>00425 
-<a name="l00426"></a>00426     db = _db_open(lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
-<a name="l00427"></a>00427     <span class="keywordflow">if</span> (!db)
-<a name="l00428"></a>00428         <span class="keywordflow">return</span> -1;
-<a name="l00429"></a>00429 
-<a name="l00430"></a>00430     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lms_parsers_setup</a>(lms, db-&gt;handle) != 0) {
-<a name="l00431"></a>00431         fprintf(stderr, <span class="stringliteral">"ERROR: could not setup parsers.\n"</span>);
-<a name="l00432"></a>00432         r = -2;
-<a name="l00433"></a>00433         <span class="keywordflow">goto</span> end;
-<a name="l00434"></a>00434     }
-<a name="l00435"></a>00435 
-<a name="l00436"></a>00436     <span class="keywordflow">if</span> (_db_compile_all_stmts(db) != 0) {
-<a name="l00437"></a>00437         fprintf(stderr, <span class="stringliteral">"ERROR: could not compile statements.\n"</span>);
-<a name="l00438"></a>00438         r = -3;
-<a name="l00439"></a>00439         <span class="keywordflow">goto</span> end;
-<a name="l00440"></a>00440     }
-<a name="l00441"></a>00441 
-<a name="l00442"></a>00442     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(lms, db-&gt;handle) != 0) {
-<a name="l00443"></a>00443         fprintf(stderr, <span class="stringliteral">"ERROR: could not start parsers.\n"</span>);
-<a name="l00444"></a>00444         r = -4;
-<a name="l00445"></a>00445         <span class="keywordflow">goto</span> end;
-<a name="l00446"></a>00446     }
-<a name="l00447"></a>00447     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> &lt; 1) {
-<a name="l00448"></a>00448         fprintf(stderr, <span class="stringliteral">"ERROR: no parser could be started, exit.\n"</span>);
-<a name="l00449"></a>00449         r = -5;
-<a name="l00450"></a>00450         <span class="keywordflow">goto</span> end;
-<a name="l00451"></a>00451     }
-<a name="l00452"></a>00452 
-<a name="l00453"></a>00453     parser_match = malloc(lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> * <span class="keyword">sizeof</span>(*parser_match));
-<a name="l00454"></a>00454     <span class="keywordflow">if</span> (!parser_match) {
-<a name="l00455"></a>00455         perror(<span class="stringliteral">"malloc"</span>);
-<a name="l00456"></a>00456         r = -6;
-<a name="l00457"></a>00457         <span class="keywordflow">goto</span> end;
-<a name="l00458"></a>00458     }
-<a name="l00459"></a>00459 
-<a name="l00460"></a>00460     counter = 0;
-<a name="l00461"></a>00461     <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
-<a name="l00462"></a>00462 
-<a name="l00463"></a>00463     <span class="keywordflow">while</span> (((r = _slave_recv_path(fds, &amp;len, &amp;base, path)) == 0) &amp;&amp; len &gt; 0) {
-<a name="l00464"></a>00464         <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> finfo;
-<a name="l00465"></a>00465         <span class="keywordtype">int</span> used, r;
-<a name="l00466"></a>00466 
-<a name="l00467"></a>00467         finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a> = path;
-<a name="l00468"></a>00468         finfo.<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> = len;
-<a name="l00469"></a>00469         finfo.<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a> = base;
+<a name="l00421"></a>00421     <span class="keywordtype">void</span> **parser_match;
+<a name="l00422"></a>00422     <span class="keyword">struct </span>db *db;
+<a name="l00423"></a>00423     <span class="keywordtype">int</span> r = 0;
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425     db = _db_open(lms-&gt;<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>);
+<a name="l00426"></a>00426     <span class="keywordflow">if</span> (!db) {
+<a name="l00427"></a>00427         r = -1;
+<a name="l00428"></a>00428         <span class="keywordflow">return</span> r;
+<a name="l00429"></a>00429     }
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lms_parsers_setup</a>(lms, db-&gt;handle) != 0) {
+<a name="l00432"></a>00432         fprintf(stderr, <span class="stringliteral">"ERROR: could not setup parsers.\n"</span>);
+<a name="l00433"></a>00433         r = -2;
+<a name="l00434"></a>00434         <span class="keywordflow">goto</span> err;
+<a name="l00435"></a>00435     }
+<a name="l00436"></a>00436 
+<a name="l00437"></a>00437     <span class="keywordflow">if</span> (_db_compile_all_stmts(db) != 0) {
+<a name="l00438"></a>00438         fprintf(stderr, <span class="stringliteral">"ERROR: could not compile statements.\n"</span>);
+<a name="l00439"></a>00439         r = -3;
+<a name="l00440"></a>00440         <span class="keywordflow">goto</span> err;
+<a name="l00441"></a>00441     }
+<a name="l00442"></a>00442 
+<a name="l00443"></a>00443     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(lms, db-&gt;handle) != 0) {
+<a name="l00444"></a>00444         fprintf(stderr, <span class="stringliteral">"ERROR: could not start parsers.\n"</span>);
+<a name="l00445"></a>00445         r = -4;
+<a name="l00446"></a>00446         <span class="keywordflow">goto</span> err;
+<a name="l00447"></a>00447     }
+<a name="l00448"></a>00448     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> &lt; 1) {
+<a name="l00449"></a>00449         fprintf(stderr, <span class="stringliteral">"ERROR: no parser could be started, exit.\n"</span>);
+<a name="l00450"></a>00450         r = -5;
+<a name="l00451"></a>00451         <span class="keywordflow">goto</span> err;
+<a name="l00452"></a>00452     }
+<a name="l00453"></a>00453 
+<a name="l00454"></a>00454     parser_match = malloc(lms-&gt;<a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a> * <span class="keyword">sizeof</span>(*parser_match));
+<a name="l00455"></a>00455     <span class="keywordflow">if</span> (!parser_match) {
+<a name="l00456"></a>00456         perror(<span class="stringliteral">"malloc"</span>);
+<a name="l00457"></a>00457         r = -6;
+<a name="l00458"></a>00458         <span class="keywordflow">goto</span> err;
+<a name="l00459"></a>00459     }
+<a name="l00460"></a>00460 
+<a name="l00461"></a>00461     *parser_match_ret = parser_match;
+<a name="l00462"></a>00462     *db_ret = db;
+<a name="l00463"></a>00463     <span class="keywordflow">return</span> r;
+<a name="l00464"></a>00464 
+<a name="l00465"></a>00465   err:
+<a name="l00466"></a>00466     <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(lms, db-&gt;handle);
+<a name="l00467"></a>00467     _db_close(db);
+<a name="l00468"></a>00468     <span class="keywordflow">return</span> r;
+<a name="l00469"></a>00469 }
 <a name="l00470"></a>00470 
-<a name="l00471"></a>00471         r = _retrieve_file_status(db, &amp;finfo);
-<a name="l00472"></a>00472         <span class="keywordflow">if</span> (r == 0) {
-<a name="l00473"></a>00473             <span class="keywordflow">if</span> (finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>) {
-<a name="l00474"></a>00474                 finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = 0;
-<a name="l00475"></a>00475                 <a class="code" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">lms_db_set_file_dtime</a>(db-&gt;set_file_dtime, &amp;finfo);
-<a name="l00476"></a>00476             }
-<a name="l00477"></a>00477             <span class="keywordflow">goto</span> inform_end;
-<a name="l00478"></a>00478         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 0) {
-<a name="l00479"></a>00479             fprintf(stderr, <span class="stringliteral">"ERROR: could not detect file status.\n"</span>);
-<a name="l00480"></a>00480             <span class="keywordflow">goto</span> inform_end;
-<a name="l00481"></a>00481         }
-<a name="l00482"></a>00482 
-<a name="l00483"></a>00483         used = <a class="code" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lms_parsers_check_using</a>(lms, parser_match, &amp;finfo);
-<a name="l00484"></a>00484         <span class="keywordflow">if</span> (!used)
-<a name="l00485"></a>00485             <span class="keywordflow">goto</span> inform_end;
-<a name="l00486"></a>00486 
-<a name="l00487"></a>00487         finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = 0;
-<a name="l00488"></a>00488         <span class="keywordflow">if</span> (finfo.<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> &gt; 0)
-<a name="l00489"></a>00489             r = <a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lms_db_update_file_info</a>(db-&gt;update_file_info, &amp;finfo);
-<a name="l00490"></a>00490         <span class="keywordflow">else</span>
-<a name="l00491"></a>00491             r = <a class="code" href="lightmediascanner__db__common_8c.html#e529ad5c4478d53685c65ec69dc5b1f4">lms_db_insert_file_info</a>(db-&gt;insert_file_info, &amp;finfo);
-<a name="l00492"></a>00492         <span class="keywordflow">if</span> (r &lt; 0) {
-<a name="l00493"></a>00493             fprintf(stderr, <span class="stringliteral">"ERROR: could not register path in DB\n"</span>);
-<a name="l00494"></a>00494             <span class="keywordflow">goto</span> inform_end;
-<a name="l00495"></a>00495         }
+<a name="l00471"></a>00471 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00472"></a>00472 _db_and_parsers_process_file(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">struct</span> db *db, <span class="keywordtype">void</span> **parser_match, <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> path_len, <span class="keywordtype">int</span> path_base)
+<a name="l00473"></a>00473 {
+<a name="l00474"></a>00474     <span class="keyword">struct </span><a class="code" href="structlms__file__info.html">lms_file_info</a> finfo;
+<a name="l00475"></a>00475     <span class="keywordtype">int</span> used, r;
+<a name="l00476"></a>00476 
+<a name="l00477"></a>00477     finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a> = path;
+<a name="l00478"></a>00478     finfo.<a class="code" href="structlms__file__info.html#9d74df2696cfd0f516e61e9db2b35731">path_len</a> = path_len;
+<a name="l00479"></a>00479     finfo.<a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a> = path_base;
+<a name="l00480"></a>00480 
+<a name="l00481"></a>00481     r = _retrieve_file_status(db, &amp;finfo);
+<a name="l00482"></a>00482     <span class="keywordflow">if</span> (r == 0) {
+<a name="l00483"></a>00483         <span class="keywordflow">if</span> (finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a>) {
+<a name="l00484"></a>00484             finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = 0;
+<a name="l00485"></a>00485             <a class="code" href="lightmediascanner__db__common_8c.html#024e3bd9385fd740f75618716c90b04f">lms_db_set_file_dtime</a>(db-&gt;set_file_dtime, &amp;finfo);
+<a name="l00486"></a>00486         }
+<a name="l00487"></a>00487         <span class="keywordflow">return</span> r;
+<a name="l00488"></a>00488     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00489"></a>00489         fprintf(stderr, <span class="stringliteral">"ERROR: could not detect file status.\n"</span>);
+<a name="l00490"></a>00490         <span class="keywordflow">return</span> r;
+<a name="l00491"></a>00491     }
+<a name="l00492"></a>00492 
+<a name="l00493"></a>00493     used = <a class="code" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lms_parsers_check_using</a>(lms, parser_match, &amp;finfo);
+<a name="l00494"></a>00494     <span class="keywordflow">if</span> (!used)
+<a name="l00495"></a>00495         <span class="keywordflow">return</span> r;
 <a name="l00496"></a>00496 
-<a name="l00497"></a>00497         r = <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(lms, db-&gt;handle, parser_match, &amp;finfo);
-<a name="l00498"></a>00498         <span class="keywordflow">if</span> (r &lt; 0) {
-<a name="l00499"></a>00499             fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
-<a name="l00500"></a>00500                     getpid(), finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>);
-<a name="l00501"></a>00501             <a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lms_db_delete_file_info</a>(db-&gt;delete_file_info, &amp;finfo);
-<a name="l00502"></a>00502         }
-<a name="l00503"></a>00503 
-<a name="l00504"></a>00504       inform_end:
-<a name="l00505"></a>00505         _slave_send_reply(fds, r);
-<a name="l00506"></a>00506         counter++;
-<a name="l00507"></a>00507         <span class="keywordflow">if</span> (counter &gt; lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>) {
-<a name="l00508"></a>00508             <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
-<a name="l00509"></a>00509             <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
-<a name="l00510"></a>00510             counter = 0;
-<a name="l00511"></a>00511         }
+<a name="l00497"></a>00497     finfo.<a class="code" href="structlms__file__info.html#570ae808983e67ae7b22a2fec892cffd">dtime</a> = 0;
+<a name="l00498"></a>00498     <span class="keywordflow">if</span> (finfo.<a class="code" href="structlms__file__info.html#d68ded5c64ae28a4976637f8483e9cfe">id</a> &gt; 0)
+<a name="l00499"></a>00499         r = <a class="code" href="lightmediascanner__db__common_8c.html#0f727cd41bbb90af2e08b3ee7ca76de9">lms_db_update_file_info</a>(db-&gt;update_file_info, &amp;finfo);
+<a name="l00500"></a>00500     <span class="keywordflow">else</span>
+<a name="l00501"></a>00501         r = <a class="code" href="lightmediascanner__db__common_8c.html#e529ad5c4478d53685c65ec69dc5b1f4">lms_db_insert_file_info</a>(db-&gt;insert_file_info, &amp;finfo);
+<a name="l00502"></a>00502     <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00503"></a>00503         fprintf(stderr, <span class="stringliteral">"ERROR: could not register path in DB\n"</span>);
+<a name="l00504"></a>00504         <span class="keywordflow">return</span> r;
+<a name="l00505"></a>00505     }
+<a name="l00506"></a>00506 
+<a name="l00507"></a>00507     r = <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(lms, db-&gt;handle, parser_match, &amp;finfo);
+<a name="l00508"></a>00508     <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00509"></a>00509         fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
+<a name="l00510"></a>00510                 getpid(), finfo.<a class="code" href="structlms__file__info.html#1fa6966afec95bbb00ee01f345948e44">path</a>);
+<a name="l00511"></a>00511         <a class="code" href="lightmediascanner__db__common_8c.html#bb2a9cdbbc7680d1ec85ef3f086b3f63">lms_db_delete_file_info</a>(db-&gt;delete_file_info, &amp;finfo);
 <a name="l00512"></a>00512     }
 <a name="l00513"></a>00513 
-<a name="l00514"></a>00514     free(parser_match);
-<a name="l00515"></a>00515     <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
-<a name="l00516"></a>00516   end:
-<a name="l00517"></a>00517     <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(lms, db-&gt;handle);
-<a name="l00518"></a>00518     _db_close(db);
-<a name="l00519"></a>00519 
-<a name="l00520"></a>00520     <span class="keywordflow">return</span> r;
-<a name="l00521"></a>00521 }
-<a name="l00522"></a>00522 
-<a name="l00523"></a>00523 
-<a name="l00524"></a>00524 <span class="comment">/***********************************************************************</span>
-<a name="l00525"></a>00525 <span class="comment"> * Master-side.</span>
-<a name="l00526"></a>00526 <span class="comment"> ***********************************************************************/</span>
-<a name="l00527"></a>00527 
-<a name="l00528"></a>00528 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00529"></a>00529 _consume_garbage(<span class="keyword">struct</span> pollfd *pfd)
-<a name="l00530"></a>00530 {
-<a name="l00531"></a>00531     <span class="keywordtype">int</span> r;
-<a name="l00532"></a>00532 
-<a name="l00533"></a>00533     <span class="keywordflow">while</span> ((r = poll(pfd, 1, 0)) &gt; 0) {
-<a name="l00534"></a>00534         <span class="keywordflow">if</span> (pfd-&gt;revents &amp; (POLLERR | POLLHUP | POLLNVAL))
-<a name="l00535"></a>00535             <span class="keywordflow">return</span> 0;
-<a name="l00536"></a>00536         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pfd-&gt;revents &amp; POLLIN) {
-<a name="l00537"></a>00537             <span class="keywordtype">char</span> c;
-<a name="l00538"></a>00538 
-<a name="l00539"></a>00539             read(pfd-&gt;fd, &amp;c, <span class="keyword">sizeof</span>(c));
-<a name="l00540"></a>00540         }
-<a name="l00541"></a>00541     }
-<a name="l00542"></a>00542 
-<a name="l00543"></a>00543     <span class="keywordflow">return</span> r;
-<a name="l00544"></a>00544 }
-<a name="l00545"></a>00545 
-<a name="l00546"></a>00546 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00547"></a>00547 _close_fds(<span class="keyword">struct</span> fds *fds)
-<a name="l00548"></a>00548 {
-<a name="l00549"></a>00549     <span class="keywordtype">int</span> r;
-<a name="l00550"></a>00550 
-<a name="l00551"></a>00551     r = 0;
-<a name="l00552"></a>00552     <span class="keywordflow">if</span> (close(fds-&gt;<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>) != 0) {
-<a name="l00553"></a>00553         r--;
-<a name="l00554"></a>00554         perror(<span class="stringliteral">"close"</span>);
-<a name="l00555"></a>00555     }
-<a name="l00556"></a>00556 
-<a name="l00557"></a>00557     <span class="keywordflow">if</span> (close(fds-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>) != 0) {
-<a name="l00558"></a>00558         r--;
-<a name="l00559"></a>00559         perror(<span class="stringliteral">"close"</span>);
-<a name="l00560"></a>00560     }
-<a name="l00561"></a>00561 
-<a name="l00562"></a>00562     <span class="keywordflow">return</span> r;
-<a name="l00563"></a>00563 }
-<a name="l00564"></a>00564 
-<a name="l00565"></a>00565 <span class="keywordtype">int</span>
-<a name="l00566"></a><a class="code" href="lightmediascanner__process_8c.html#6b68b00b80a98a178c7d69b962267a11">00566</a> <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>)
-<a name="l00567"></a>00567 {
-<a name="l00568"></a>00568     <span class="keywordtype">int</span> r;
-<a name="l00569"></a>00569 
-<a name="l00570"></a>00570     r = _close_fds(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>);
-<a name="l00571"></a>00571     r += _close_fds(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>);
+<a name="l00514"></a>00514     <span class="keywordflow">return</span> r;
+<a name="l00515"></a>00515 }
+<a name="l00516"></a>00516 
+<a name="l00517"></a>00517 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00518"></a>00518 _slave_work(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)
+<a name="l00519"></a>00519 {
+<a name="l00520"></a>00520     <span class="keywordtype">int</span> r, len, <a class="code" href="structlms__file__info.html#ccc82711360714ff6ccd373fb7a42112">base</a>, counter;
+<a name="l00521"></a>00521     <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>];
+<a name="l00522"></a>00522     <span class="keywordtype">void</span> **parser_match;
+<a name="l00523"></a>00523     <span class="keyword">struct </span>db *db;
+<a name="l00524"></a>00524 
+<a name="l00525"></a>00525     r = _db_and_parsers_setup(lms, &amp;db, &amp;parser_match);
+<a name="l00526"></a>00526     <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00527"></a>00527         <span class="keywordflow">return</span> r;
+<a name="l00528"></a>00528 
+<a name="l00529"></a>00529     counter = 0;
+<a name="l00530"></a>00530     <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
+<a name="l00531"></a>00531 
+<a name="l00532"></a>00532     <span class="keywordflow">while</span> (((r = _slave_recv_path(fds, &amp;len, &amp;base, path)) == 0) &amp;&amp; len &gt; 0) {
+<a name="l00533"></a>00533         r = _db_and_parsers_process_file(
+<a name="l00534"></a>00534             lms, db, parser_match, path, len, base);
+<a name="l00535"></a>00535 
+<a name="l00536"></a>00536         _slave_send_reply(fds, r);
+<a name="l00537"></a>00537         counter++;
+<a name="l00538"></a>00538         <span class="keywordflow">if</span> (counter &gt; lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>) {
+<a name="l00539"></a>00539             <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
+<a name="l00540"></a>00540             <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
+<a name="l00541"></a>00541             counter = 0;
+<a name="l00542"></a>00542         }
+<a name="l00543"></a>00543     }
+<a name="l00544"></a>00544 
+<a name="l00545"></a>00545     free(parser_match);
+<a name="l00546"></a>00546     <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
+<a name="l00547"></a>00547     <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(lms, db-&gt;handle);
+<a name="l00548"></a>00548     _db_close(db);
+<a name="l00549"></a>00549 
+<a name="l00550"></a>00550     <span class="keywordflow">return</span> r;
+<a name="l00551"></a>00551 }
+<a name="l00552"></a>00552 
+<a name="l00553"></a>00553 
+<a name="l00554"></a>00554 <span class="comment">/***********************************************************************</span>
+<a name="l00555"></a>00555 <span class="comment"> * Master-side.</span>
+<a name="l00556"></a>00556 <span class="comment"> ***********************************************************************/</span>
+<a name="l00557"></a>00557 
+<a name="l00558"></a>00558 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00559"></a>00559 _consume_garbage(<span class="keyword">struct</span> pollfd *pfd)
+<a name="l00560"></a>00560 {
+<a name="l00561"></a>00561     <span class="keywordtype">int</span> r;
+<a name="l00562"></a>00562 
+<a name="l00563"></a>00563     <span class="keywordflow">while</span> ((r = poll(pfd, 1, 0)) &gt; 0) {
+<a name="l00564"></a>00564         <span class="keywordflow">if</span> (pfd-&gt;revents &amp; (POLLERR | POLLHUP | POLLNVAL))
+<a name="l00565"></a>00565             <span class="keywordflow">return</span> 0;
+<a name="l00566"></a>00566         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pfd-&gt;revents &amp; POLLIN) {
+<a name="l00567"></a>00567             <span class="keywordtype">char</span> c;
+<a name="l00568"></a>00568 
+<a name="l00569"></a>00569             read(pfd-&gt;fd, &amp;c, <span class="keyword">sizeof</span>(c));
+<a name="l00570"></a>00570         }
+<a name="l00571"></a>00571     }
 <a name="l00572"></a>00572 
 <a name="l00573"></a>00573     <span class="keywordflow">return</span> r;
 <a name="l00574"></a>00574 }
 <a name="l00575"></a>00575 
-<a name="l00576"></a>00576 <span class="keywordtype">int</span>
-<a name="l00577"></a><a class="code" href="lightmediascanner__process_8c.html#c2e1320b9770e0f522451b13f82efc2b">00577</a> <a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>)
+<a name="l00576"></a>00576 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00577"></a>00577 _close_fds(<span class="keyword">struct</span> fds *fds)
 <a name="l00578"></a>00578 {
-<a name="l00579"></a>00579     <span class="keywordtype">int</span> fds[2];
+<a name="l00579"></a>00579     <span class="keywordtype">int</span> r;
 <a name="l00580"></a>00580 
-<a name="l00581"></a>00581     <span class="keywordflow">if</span> (pipe(fds) != 0) {
-<a name="l00582"></a>00582         perror(<span class="stringliteral">"pipe"</span>);
-<a name="l00583"></a>00583         <span class="keywordflow">return</span> -1;
-<a name="l00584"></a>00584     }
-<a name="l00585"></a>00585     pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>.<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a> = fds[0];
-<a name="l00586"></a>00586     pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>.<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a> = fds[1];
-<a name="l00587"></a>00587 
-<a name="l00588"></a>00588     <span class="keywordflow">if</span> (pipe(fds) != 0) {
-<a name="l00589"></a>00589         perror(<span class="stringliteral">"pipe"</span>);
-<a name="l00590"></a>00590         close(pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>.<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>);
-<a name="l00591"></a>00591         close(pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>.<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>);
-<a name="l00592"></a>00592         <span class="keywordflow">return</span> -1;
-<a name="l00593"></a>00593     }
-<a name="l00594"></a>00594     pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>.<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a> = fds[0];
-<a name="l00595"></a>00595     pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>.<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a> = fds[1];
-<a name="l00596"></a>00596 
-<a name="l00597"></a>00597     pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>.fd = pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>.<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>;
-<a name="l00598"></a>00598     pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>.events = POLLIN;
+<a name="l00581"></a>00581     r = 0;
+<a name="l00582"></a>00582     <span class="keywordflow">if</span> (close(fds-&gt;<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>) != 0) {
+<a name="l00583"></a>00583         r--;
+<a name="l00584"></a>00584         perror(<span class="stringliteral">"close"</span>);
+<a name="l00585"></a>00585     }
+<a name="l00586"></a>00586 
+<a name="l00587"></a>00587     <span class="keywordflow">if</span> (close(fds-&gt;<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>) != 0) {
+<a name="l00588"></a>00588         r--;
+<a name="l00589"></a>00589         perror(<span class="stringliteral">"close"</span>);
+<a name="l00590"></a>00590     }
+<a name="l00591"></a>00591 
+<a name="l00592"></a>00592     <span class="keywordflow">return</span> r;
+<a name="l00593"></a>00593 }
+<a name="l00594"></a>00594 
+<a name="l00595"></a>00595 <span class="keywordtype">int</span>
+<a name="l00596"></a><a class="code" href="lightmediascanner__process_8c.html#6b68b00b80a98a178c7d69b962267a11">00596</a> <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>)
+<a name="l00597"></a>00597 {
+<a name="l00598"></a>00598     <span class="keywordtype">int</span> r;
 <a name="l00599"></a>00599 
-<a name="l00600"></a>00600     <span class="keywordflow">return</span> 0;
-<a name="l00601"></a>00601 }
+<a name="l00600"></a>00600     r = _close_fds(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>);
+<a name="l00601"></a>00601     r += _close_fds(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>);
 <a name="l00602"></a>00602 
-<a name="l00603"></a>00603 <span class="keywordtype">int</span>
-<a name="l00604"></a><a class="code" href="lightmediascanner__process_8c.html#e92fe8fe90d93d5ad9a42387a4b2fc6e">00604</a> <a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">struct</span> fds *fds))
-<a name="l00605"></a>00605 {
-<a name="l00606"></a>00606     <span class="keywordtype">int</span> r;
-<a name="l00607"></a>00607 
-<a name="l00608"></a>00608     pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> = fork();
-<a name="l00609"></a>00609     <span class="keywordflow">if</span> (pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> == -1) {
-<a name="l00610"></a>00610         perror(<span class="stringliteral">"fork"</span>);
-<a name="l00611"></a>00611         <span class="keywordflow">return</span> -1;
-<a name="l00612"></a>00612     }
-<a name="l00613"></a>00613 
-<a name="l00614"></a>00614     <span class="keywordflow">if</span> (pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> &gt; 0)
-<a name="l00615"></a>00615         <span class="keywordflow">return</span> 0;
-<a name="l00616"></a>00616 
-<a name="l00617"></a>00617     _close_fds(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>);
-<a name="l00618"></a>00618     nice(19);
-<a name="l00619"></a>00619     r = work(pinfo-&gt;<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>, &amp;pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>);
-<a name="l00620"></a>00620     <a class="code" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lms_free</a>(pinfo-&gt;<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>);
-<a name="l00621"></a>00621     _exit(r);
-<a name="l00622"></a>00622     <span class="keywordflow">return</span> r; <span class="comment">/* shouldn't reach anyway... */</span>
-<a name="l00623"></a>00623 }
-<a name="l00624"></a>00624 
-<a name="l00625"></a>00625 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00626"></a>00626 _waitpid(pid_t pid)
-<a name="l00627"></a>00627 {
-<a name="l00628"></a>00628     <span class="keywordtype">int</span> status;
-<a name="l00629"></a>00629     pid_t r;
-<a name="l00630"></a>00630 
-<a name="l00631"></a>00631     r = waitpid(pid, &amp;status, 0);
-<a name="l00632"></a>00632     <span class="keywordflow">if</span> (r &gt; -1)
-<a name="l00633"></a>00633         <span class="keywordflow">return</span> 0;
-<a name="l00634"></a>00634     <span class="keywordflow">else</span>
-<a name="l00635"></a>00635         perror(<span class="stringliteral">"waitpid"</span>);
-<a name="l00636"></a>00636 
-<a name="l00637"></a>00637     <span class="keywordflow">return</span> r;
-<a name="l00638"></a>00638 }
-<a name="l00639"></a>00639 
-<a name="l00640"></a>00640 <span class="keywordtype">int</span>
-<a name="l00641"></a><a class="code" href="lightmediascanner__process_8c.html#9f980636d608c6af99477ba37e196050">00641</a> <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*finish)(<span class="keyword">const</span> <span class="keyword">struct</span> fds *fds))
-<a name="l00642"></a>00642 {
-<a name="l00643"></a>00643     <span class="keywordtype">int</span> r;
-<a name="l00644"></a>00644 
-<a name="l00645"></a>00645     <span class="keywordflow">if</span> (pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> &lt;= 0)
-<a name="l00646"></a>00646         <span class="keywordflow">return</span> 0;
-<a name="l00647"></a>00647 
-<a name="l00648"></a>00648     r = finish(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>);
-<a name="l00649"></a>00649     <span class="keywordflow">if</span> (r == 0)
-<a name="l00650"></a>00650         r = _waitpid(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
-<a name="l00651"></a>00651     <span class="keywordflow">else</span> {
-<a name="l00652"></a>00652         r = kill(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>, SIGKILL);
-<a name="l00653"></a>00653         <span class="keywordflow">if</span> (r &lt; 0)
-<a name="l00654"></a>00654             perror(<span class="stringliteral">"kill"</span>);
-<a name="l00655"></a>00655         <span class="keywordflow">else</span>
-<a name="l00656"></a>00656             r =_waitpid(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
-<a name="l00657"></a>00657     }
-<a name="l00658"></a>00658     pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> = 0;
-<a name="l00659"></a>00659 
-<a name="l00660"></a>00660     <span class="keywordflow">return</span> r;
-<a name="l00661"></a>00661 }
-<a name="l00662"></a>00662 
-<a name="l00663"></a>00663 <span class="keywordtype">int</span>
-<a name="l00664"></a><a class="code" href="lightmediascanner__process_8c.html#9bf510645947b478dab39f633bbd35f3">00664</a> <a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">struct</span> fds *fds))
-<a name="l00665"></a>00665 {
-<a name="l00666"></a>00666     <span class="keywordtype">int</span> status;
-<a name="l00667"></a>00667 
-<a name="l00668"></a>00668     <span class="keywordflow">if</span> (waitpid(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>, &amp;status, WNOHANG) &gt; 0) {
-<a name="l00669"></a>00669         <span class="keywordflow">if</span> (WIFEXITED(status)) {
-<a name="l00670"></a>00670             <span class="keywordtype">int</span> code;
-<a name="l00671"></a>00671 
-<a name="l00672"></a>00672             code = WEXITSTATUS(status);
-<a name="l00673"></a>00673             <span class="keywordflow">if</span> (code != 0) {
-<a name="l00674"></a>00674                 fprintf(stderr, <span class="stringliteral">"ERROR: slave returned %d, exit.\n"</span>, code);
-<a name="l00675"></a>00675                 pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> = 0;
-<a name="l00676"></a>00676                 <span class="keywordflow">return</span> -1;
-<a name="l00677"></a>00677             }
-<a name="l00678"></a>00678         } <span class="keywordflow">else</span> {
-<a name="l00679"></a>00679             <span class="keywordflow">if</span> (WIFSIGNALED(status)) {
-<a name="l00680"></a>00680                 <span class="keywordtype">int</span> code;
-<a name="l00681"></a>00681 
-<a name="l00682"></a>00682                 code = WTERMSIG(status);
-<a name="l00683"></a>00683                 fprintf(stderr, <span class="stringliteral">"ERROR: slave was terminated by signal %d.\n"</span>,
-<a name="l00684"></a>00684                         code);
-<a name="l00685"></a>00685             }
-<a name="l00686"></a>00686             pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> = 0;
-<a name="l00687"></a>00687             <span class="keywordflow">return</span> -1;
-<a name="l00688"></a>00688         }
-<a name="l00689"></a>00689     }
-<a name="l00690"></a>00690 
-<a name="l00691"></a>00691     <span class="keywordflow">if</span> (kill(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>, SIGKILL))
-<a name="l00692"></a>00692         perror(<span class="stringliteral">"kill"</span>);
-<a name="l00693"></a>00693 
-<a name="l00694"></a>00694     <span class="keywordflow">if</span> (waitpid(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>, &amp;status, 0) &lt; 0)
-<a name="l00695"></a>00695         perror(<span class="stringliteral">"waitpid"</span>);
-<a name="l00696"></a>00696 
-<a name="l00697"></a>00697     _consume_garbage(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>);
-<a name="l00698"></a>00698     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(pinfo, work);
-<a name="l00699"></a>00699 }
-<a name="l00700"></a>00700 
-<a name="l00701"></a>00701 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00702"></a>00702 _strcat(<span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
-<a name="l00703"></a>00703 {
-<a name="l00704"></a>00704     <span class="keywordtype">int</span> new_len, name_len;
-<a name="l00705"></a>00705 
-<a name="l00706"></a>00706     name_len = strlen(name);
-<a name="l00707"></a>00707     new_len = base + name_len;
-<a name="l00708"></a>00708 
-<a name="l00709"></a>00709     <span class="keywordflow">if</span> (new_len &gt;= <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>) {
-<a name="l00710"></a>00710         path[base] = <span class="charliteral">'\0'</span>;
-<a name="l00711"></a>00711         fprintf(stderr,
-<a name="l00712"></a>00712                 <span class="stringliteral">"ERROR: path concatenation too long %d of %d "</span>
-<a name="l00713"></a>00713                 <span class="stringliteral">"available: \"%s\" + \"%s\"\n"</span>, new_len, <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>,
-<a name="l00714"></a>00714                 path, name);
-<a name="l00715"></a>00715         <span class="keywordflow">return</span> -1;
-<a name="l00716"></a>00716     }
-<a name="l00717"></a>00717 
-<a name="l00718"></a>00718     memcpy(path + base, name, name_len + 1);
-<a name="l00719"></a>00719 
-<a name="l00720"></a>00720     <span class="keywordflow">return</span> new_len;
-<a name="l00721"></a>00721 }
-<a name="l00722"></a>00722 
-<a name="l00723"></a>00723 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00724"></a>00724 _process_file(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
-<a name="l00725"></a>00725 {
-<a name="l00726"></a>00726     <span class="keywordtype">int</span> new_len, reply, r;
-<a name="l00727"></a>00727 
-<a name="l00728"></a>00728     new_len = _strcat(base, path, name);
-<a name="l00729"></a>00729     <span class="keywordflow">if</span> (new_len &lt; 0)
-<a name="l00730"></a>00730         <span class="keywordflow">return</span> -1;
-<a name="l00731"></a>00731 
-<a name="l00732"></a>00732     <span class="keywordflow">if</span> (_master_send_path(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, new_len, base, path) != 0)
-<a name="l00733"></a>00733         <span class="keywordflow">return</span> -2;
-<a name="l00734"></a>00734 
-<a name="l00735"></a>00735     r = _master_recv_reply(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, &amp;pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>, &amp;reply,
-<a name="l00736"></a>00736                            pinfo-&gt;<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>);
-<a name="l00737"></a>00737     <span class="keywordflow">if</span> (r &lt; 0)
-<a name="l00738"></a>00738         <span class="keywordflow">return</span> -3;
-<a name="l00739"></a>00739     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r == 1) {
-<a name="l00740"></a>00740         fprintf(stderr, <span class="stringliteral">"ERROR: slave took too long, restart %d\n"</span>,
-<a name="l00741"></a>00741                 pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
-<a name="l00742"></a>00742         <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(pinfo, _slave_work) != 0)
-<a name="l00743"></a>00743             <span class="keywordflow">return</span> -4;
-<a name="l00744"></a>00744         <span class="keywordflow">return</span> 1;
-<a name="l00745"></a>00745     } <span class="keywordflow">else</span> {
-<a name="l00746"></a>00746         <span class="keywordflow">if</span> (reply &lt; 0) {
-<a name="l00747"></a>00747             <span class="comment">/* XXX callback library users to inform error. */</span>
-<a name="l00748"></a>00748             fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
-<a name="l00749"></a>00749                     getpid(), path);
-<a name="l00750"></a>00750             <span class="keywordflow">return</span> (-reply) &lt;&lt; 8;
-<a name="l00751"></a>00751         } <span class="keywordflow">else</span>
-<a name="l00752"></a>00752             <span class="keywordflow">return</span> reply;
-<a name="l00753"></a>00753     }
-<a name="l00754"></a>00754 }
-<a name="l00755"></a>00755 
-<a name="l00756"></a>00756 <span class="keyword">static</span> <span class="keywordtype">int</span>
-<a name="l00757"></a>00757 _process_dir(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
-<a name="l00758"></a>00758 {
-<a name="l00759"></a>00759     DIR *dir;
-<a name="l00760"></a>00760     <span class="keyword">struct </span>dirent *de;
-<a name="l00761"></a>00761     <span class="keywordtype">int</span> new_len, r;
+<a name="l00603"></a>00603     <span class="keywordflow">return</span> r;
+<a name="l00604"></a>00604 }
+<a name="l00605"></a>00605 
+<a name="l00606"></a>00606 <span class="keywordtype">int</span>
+<a name="l00607"></a><a class="code" href="lightmediascanner__process_8c.html#c2e1320b9770e0f522451b13f82efc2b">00607</a> <a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>)
+<a name="l00608"></a>00608 {
+<a name="l00609"></a>00609     <span class="keywordtype">int</span> fds[2];
+<a name="l00610"></a>00610 
+<a name="l00611"></a>00611     <span class="keywordflow">if</span> (pipe(fds) != 0) {
+<a name="l00612"></a>00612         perror(<span class="stringliteral">"pipe"</span>);
+<a name="l00613"></a>00613         <span class="keywordflow">return</span> -1;
+<a name="l00614"></a>00614     }
+<a name="l00615"></a>00615     pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>.<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a> = fds[0];
+<a name="l00616"></a>00616     pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>.<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a> = fds[1];
+<a name="l00617"></a>00617 
+<a name="l00618"></a>00618     <span class="keywordflow">if</span> (pipe(fds) != 0) {
+<a name="l00619"></a>00619         perror(<span class="stringliteral">"pipe"</span>);
+<a name="l00620"></a>00620         close(pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>.<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>);
+<a name="l00621"></a>00621         close(pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>.<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>);
+<a name="l00622"></a>00622         <span class="keywordflow">return</span> -1;
+<a name="l00623"></a>00623     }
+<a name="l00624"></a>00624     pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>.<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a> = fds[0];
+<a name="l00625"></a>00625     pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>.<a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a> = fds[1];
+<a name="l00626"></a>00626 
+<a name="l00627"></a>00627     pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>.fd = pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>.<a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>;
+<a name="l00628"></a>00628     pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>.events = POLLIN;
+<a name="l00629"></a>00629 
+<a name="l00630"></a>00630     <span class="keywordflow">return</span> 0;
+<a name="l00631"></a>00631 }
+<a name="l00632"></a>00632 
+<a name="l00633"></a>00633 <span class="keywordtype">int</span>
+<a name="l00634"></a><a class="code" href="lightmediascanner__process_8c.html#e92fe8fe90d93d5ad9a42387a4b2fc6e">00634</a> <a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">struct</span> fds *fds))
+<a name="l00635"></a>00635 {
+<a name="l00636"></a>00636     <span class="keywordtype">int</span> r;
+<a name="l00637"></a>00637 
+<a name="l00638"></a>00638     pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> = fork();
+<a name="l00639"></a>00639     <span class="keywordflow">if</span> (pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> == -1) {
+<a name="l00640"></a>00640         perror(<span class="stringliteral">"fork"</span>);
+<a name="l00641"></a>00641         <span class="keywordflow">return</span> -1;
+<a name="l00642"></a>00642     }
+<a name="l00643"></a>00643 
+<a name="l00644"></a>00644     <span class="keywordflow">if</span> (pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> &gt; 0)
+<a name="l00645"></a>00645         <span class="keywordflow">return</span> 0;
+<a name="l00646"></a>00646 
+<a name="l00647"></a>00647     _close_fds(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>);
+<a name="l00648"></a>00648     nice(19);
+<a name="l00649"></a>00649     r = work(pinfo-&gt;<a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>, &amp;pinfo-&gt;<a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>);
+<a name="l00650"></a>00650     <a class="code" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687">lms_free</a>(pinfo-&gt;<a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>);
+<a name="l00651"></a>00651     _exit(r);
+<a name="l00652"></a>00652     <span class="keywordflow">return</span> r; <span class="comment">/* shouldn't reach anyway... */</span>
+<a name="l00653"></a>00653 }
+<a name="l00654"></a>00654 
+<a name="l00655"></a>00655 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00656"></a>00656 _waitpid(pid_t pid)
+<a name="l00657"></a>00657 {
+<a name="l00658"></a>00658     <span class="keywordtype">int</span> status;
+<a name="l00659"></a>00659     pid_t r;
+<a name="l00660"></a>00660 
+<a name="l00661"></a>00661     r = waitpid(pid, &amp;status, 0);
+<a name="l00662"></a>00662     <span class="keywordflow">if</span> (r &gt; -1)
+<a name="l00663"></a>00663         <span class="keywordflow">return</span> 0;
+<a name="l00664"></a>00664     <span class="keywordflow">else</span>
+<a name="l00665"></a>00665         perror(<span class="stringliteral">"waitpid"</span>);
+<a name="l00666"></a>00666 
+<a name="l00667"></a>00667     <span class="keywordflow">return</span> r;
+<a name="l00668"></a>00668 }
+<a name="l00669"></a>00669 
+<a name="l00670"></a>00670 <span class="keywordtype">int</span>
+<a name="l00671"></a><a class="code" href="lightmediascanner__process_8c.html#9f980636d608c6af99477ba37e196050">00671</a> <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*finish)(<span class="keyword">const</span> <span class="keyword">struct</span> fds *fds))
+<a name="l00672"></a>00672 {
+<a name="l00673"></a>00673     <span class="keywordtype">int</span> r;
+<a name="l00674"></a>00674 
+<a name="l00675"></a>00675     <span class="keywordflow">if</span> (pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> &lt;= 0)
+<a name="l00676"></a>00676         <span class="keywordflow">return</span> 0;
+<a name="l00677"></a>00677 
+<a name="l00678"></a>00678     r = finish(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>);
+<a name="l00679"></a>00679     <span class="keywordflow">if</span> (r == 0)
+<a name="l00680"></a>00680         r = _waitpid(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
+<a name="l00681"></a>00681     <span class="keywordflow">else</span> {
+<a name="l00682"></a>00682         r = kill(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>, SIGKILL);
+<a name="l00683"></a>00683         <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l00684"></a>00684             perror(<span class="stringliteral">"kill"</span>);
+<a name="l00685"></a>00685         <span class="keywordflow">else</span>
+<a name="l00686"></a>00686             r =_waitpid(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
+<a name="l00687"></a>00687     }
+<a name="l00688"></a>00688     pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> = 0;
+<a name="l00689"></a>00689 
+<a name="l00690"></a>00690     <span class="keywordflow">return</span> r;
+<a name="l00691"></a>00691 }
+<a name="l00692"></a>00692 
+<a name="l00693"></a>00693 <span class="keywordtype">int</span>
+<a name="l00694"></a><a class="code" href="lightmediascanner__process_8c.html#9bf510645947b478dab39f633bbd35f3">00694</a> <a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">struct</span> fds *fds))
+<a name="l00695"></a>00695 {
+<a name="l00696"></a>00696     <span class="keywordtype">int</span> status;
+<a name="l00697"></a>00697 
+<a name="l00698"></a>00698     <span class="keywordflow">if</span> (waitpid(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>, &amp;status, WNOHANG) &gt; 0) {
+<a name="l00699"></a>00699         <span class="keywordflow">if</span> (WIFEXITED(status)) {
+<a name="l00700"></a>00700             <span class="keywordtype">int</span> code;
+<a name="l00701"></a>00701 
+<a name="l00702"></a>00702             code = WEXITSTATUS(status);
+<a name="l00703"></a>00703             <span class="keywordflow">if</span> (code != 0) {
+<a name="l00704"></a>00704                 fprintf(stderr, <span class="stringliteral">"ERROR: slave returned %d, exit.\n"</span>, code);
+<a name="l00705"></a>00705                 pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> = 0;
+<a name="l00706"></a>00706                 <span class="keywordflow">return</span> -1;
+<a name="l00707"></a>00707             }
+<a name="l00708"></a>00708         } <span class="keywordflow">else</span> {
+<a name="l00709"></a>00709             <span class="keywordflow">if</span> (WIFSIGNALED(status)) {
+<a name="l00710"></a>00710                 <span class="keywordtype">int</span> code;
+<a name="l00711"></a>00711 
+<a name="l00712"></a>00712                 code = WTERMSIG(status);
+<a name="l00713"></a>00713                 fprintf(stderr, <span class="stringliteral">"ERROR: slave was terminated by signal %d.\n"</span>,
+<a name="l00714"></a>00714                         code);
+<a name="l00715"></a>00715             }
+<a name="l00716"></a>00716             pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a> = 0;
+<a name="l00717"></a>00717             <span class="keywordflow">return</span> -1;
+<a name="l00718"></a>00718         }
+<a name="l00719"></a>00719     }
+<a name="l00720"></a>00720 
+<a name="l00721"></a>00721     <span class="keywordflow">if</span> (kill(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>, SIGKILL))
+<a name="l00722"></a>00722         perror(<span class="stringliteral">"kill"</span>);
+<a name="l00723"></a>00723 
+<a name="l00724"></a>00724     <span class="keywordflow">if</span> (waitpid(pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>, &amp;status, 0) &lt; 0)
+<a name="l00725"></a>00725         perror(<span class="stringliteral">"waitpid"</span>);
+<a name="l00726"></a>00726 
+<a name="l00727"></a>00727     _consume_garbage(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>);
+<a name="l00728"></a>00728     <span class="keywordflow">return</span> <a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(pinfo, work);
+<a name="l00729"></a>00729 }
+<a name="l00730"></a>00730 
+<a name="l00731"></a>00731 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00732"></a>00732 _strcat(<span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
+<a name="l00733"></a>00733 {
+<a name="l00734"></a>00734     <span class="keywordtype">int</span> new_len, name_len;
+<a name="l00735"></a>00735 
+<a name="l00736"></a>00736     name_len = strlen(name);
+<a name="l00737"></a>00737     new_len = base + name_len;
+<a name="l00738"></a>00738 
+<a name="l00739"></a>00739     <span class="keywordflow">if</span> (new_len &gt;= <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>) {
+<a name="l00740"></a>00740         path[base] = <span class="charliteral">'\0'</span>;
+<a name="l00741"></a>00741         fprintf(stderr,
+<a name="l00742"></a>00742                 <span class="stringliteral">"ERROR: path concatenation too long %d of %d "</span>
+<a name="l00743"></a>00743                 <span class="stringliteral">"available: \"%s\" + \"%s\"\n"</span>, new_len, <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>,
+<a name="l00744"></a>00744                 path, name);
+<a name="l00745"></a>00745         <span class="keywordflow">return</span> -1;
+<a name="l00746"></a>00746     }
+<a name="l00747"></a>00747 
+<a name="l00748"></a>00748     memcpy(path + base, name, name_len + 1);
+<a name="l00749"></a>00749 
+<a name="l00750"></a>00750     <span class="keywordflow">return</span> new_len;
+<a name="l00751"></a>00751 }
+<a name="l00752"></a>00752 
+<a name="l00753"></a>00753 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>
+<a name="l00754"></a>00754 _report_progress(<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> path_len, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370">lms_progress_status_t</a> status)
+<a name="l00755"></a>00755 {
+<a name="l00756"></a>00756     <a class="code" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> cb;
+<a name="l00757"></a>00757     <a class="code" href="structlms.html">lms_t</a> *lms = info-&gt;<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>;
+<a name="l00758"></a>00758 
+<a name="l00759"></a>00759     cb = lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#94615d22fba40d580a8a0055d28221c4">cb</a>;
+<a name="l00760"></a>00760     <span class="keywordflow">if</span> (!cb)
+<a name="l00761"></a>00761         <span class="keywordflow">return</span>;
 <a name="l00762"></a>00762 
-<a name="l00763"></a>00763     new_len = _strcat(base, path, name);
-<a name="l00764"></a>00764     <span class="keywordflow">if</span> (new_len &lt; 0)
-<a name="l00765"></a>00765         <span class="keywordflow">return</span> -1;
-<a name="l00766"></a>00766     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (new_len + 1 &gt;= <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>) {
-<a name="l00767"></a>00767         fprintf(stderr, <span class="stringliteral">"ERROR: path too long\n"</span>);
-<a name="l00768"></a>00768         <span class="keywordflow">return</span> 2;
-<a name="l00769"></a>00769     }
-<a name="l00770"></a>00770 
-<a name="l00771"></a>00771     dir = opendir(path);
-<a name="l00772"></a>00772     <span class="keywordflow">if</span> (dir == NULL) {
-<a name="l00773"></a>00773         perror(<span class="stringliteral">"opendir"</span>);
-<a name="l00774"></a>00774         <span class="keywordflow">return</span> 3;
-<a name="l00775"></a>00775     }
-<a name="l00776"></a>00776 
-<a name="l00777"></a>00777     path[new_len] = <span class="charliteral">'/'</span>;
-<a name="l00778"></a>00778     new_len++;
-<a name="l00779"></a>00779 
-<a name="l00780"></a>00780     r = 0;
-<a name="l00781"></a>00781     <span class="keywordflow">while</span> ((de = readdir(dir)) != NULL) {
-<a name="l00782"></a>00782         <span class="keywordflow">if</span> (de-&gt;d_name[0] == <span class="charliteral">'.'</span>)
-<a name="l00783"></a>00783             <span class="keywordflow">continue</span>;
-<a name="l00784"></a>00784         <span class="keywordflow">if</span> (de-&gt;d_type == DT_REG) {
-<a name="l00785"></a>00785             <span class="keywordflow">if</span> (_process_file(pinfo, new_len, path, de-&gt;d_name) &lt; 0) {
-<a name="l00786"></a>00786                 path[new_len - 1] = <span class="charliteral">'\0'</span>;
-<a name="l00787"></a>00787                 fprintf(stderr,
-<a name="l00788"></a>00788                         <span class="stringliteral">"ERROR: unrecoverable error parsing file, "</span>
-<a name="l00789"></a>00789                         <span class="stringliteral">"exit \"%s\".\n"</span>, path);
-<a name="l00790"></a>00790                 r = -4;
-<a name="l00791"></a>00791                 <span class="keywordflow">goto</span> end;
-<a name="l00792"></a>00792             }
-<a name="l00793"></a>00793         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (de-&gt;d_type == DT_DIR || de-&gt;d_type == DT_UNKNOWN) {
-<a name="l00794"></a>00794             <span class="keywordflow">if</span> (_process_dir(pinfo, new_len, path, de-&gt;d_name) &lt; 0) {
-<a name="l00795"></a>00795                 path[new_len - 1] = <span class="charliteral">'\0'</span>;
-<a name="l00796"></a>00796                 fprintf(stderr,
-<a name="l00797"></a>00797                         <span class="stringliteral">"ERROR: unrecoverable error parsing dir, "</span>
-<a name="l00798"></a>00798                         <span class="stringliteral">"exit \"%s\".\n"</span>, path);
-<a name="l00799"></a>00799                 r = -5;
-<a name="l00800"></a>00800                 <span class="keywordflow">goto</span> end;
-<a name="l00801"></a>00801             }
+<a name="l00763"></a>00763     cb(lms, path, path_len, status, lms-&gt;<a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>.<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a>);
+<a name="l00764"></a>00764 }
+<a name="l00765"></a>00765 
+<a name="l00766"></a>00766 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00767"></a>00767 _process_file(<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
+<a name="l00768"></a>00768 {
+<a name="l00769"></a>00769     <span class="keyword">struct </span>pinfo *pinfo = (<span class="keyword">struct </span>pinfo *)info;
+<a name="l00770"></a>00770     <span class="keywordtype">int</span> new_len, reply, r;
+<a name="l00771"></a>00771 
+<a name="l00772"></a>00772     new_len = _strcat(base, path, name);
+<a name="l00773"></a>00773     <span class="keywordflow">if</span> (new_len &lt; 0)
+<a name="l00774"></a>00774         <span class="keywordflow">return</span> -1;
+<a name="l00775"></a>00775 
+<a name="l00776"></a>00776     <span class="keywordflow">if</span> (_master_send_path(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, new_len, base, path) != 0)
+<a name="l00777"></a>00777         <span class="keywordflow">return</span> -2;
+<a name="l00778"></a>00778 
+<a name="l00779"></a>00779     r = _master_recv_reply(&amp;pinfo-&gt;<a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>, &amp;pinfo-&gt;<a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>, &amp;reply,
+<a name="l00780"></a>00780                            pinfo-&gt;<a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>-&gt;<a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>);
+<a name="l00781"></a>00781     <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00782"></a>00782         _report_progress(info, path, new_len, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d8c2349ce6dbac01c8be42c29c6c7082">LMS_PROGRESS_STATUS_ERROR_COMM</a>);
+<a name="l00783"></a>00783         <span class="keywordflow">return</span> -3;
+<a name="l00784"></a>00784     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r == 1) {
+<a name="l00785"></a>00785         fprintf(stderr, <span class="stringliteral">"ERROR: slave took too long, restart %d\n"</span>,
+<a name="l00786"></a>00786                 pinfo-&gt;<a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>);
+<a name="l00787"></a>00787         _report_progress(info, path, new_len, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d237015217a2e3f16670fa70738730cd0b152">LMS_PROGRESS_STATUS_KILLED</a>);
+<a name="l00788"></a>00788         <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(pinfo, _slave_work) != 0)
+<a name="l00789"></a>00789             <span class="keywordflow">return</span> -4;
+<a name="l00790"></a>00790         <span class="keywordflow">return</span> 1;
+<a name="l00791"></a>00791     } <span class="keywordflow">else</span> {
+<a name="l00792"></a>00792         <span class="keywordflow">if</span> (reply &lt; 0) {
+<a name="l00793"></a>00793             fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
+<a name="l00794"></a>00794                     getpid(), path);
+<a name="l00795"></a>00795             _report_progress(
+<a name="l00796"></a>00796                 info, path, new_len, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">LMS_PROGRESS_STATUS_ERROR_PARSE</a>);
+<a name="l00797"></a>00797             <span class="keywordflow">return</span> (-reply) &lt;&lt; 8;
+<a name="l00798"></a>00798         } <span class="keywordflow">else</span> {
+<a name="l00799"></a>00799             _report_progress(
+<a name="l00800"></a>00800                 info, path, new_len, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">LMS_PROGRESS_STATUS_PROCESSED</a>);
+<a name="l00801"></a>00801             <span class="keywordflow">return</span> reply;
 <a name="l00802"></a>00802         }
 <a name="l00803"></a>00803     }
-<a name="l00804"></a>00804 
-<a name="l00805"></a>00805   end:
-<a name="l00806"></a>00806     closedir(dir);
-<a name="l00807"></a>00807     <span class="keywordflow">return</span> r;
-<a name="l00808"></a>00808 }
-<a name="l00809"></a>00809 
-<a name="l00820"></a>00820 <span class="keywordtype">int</span>
-<a name="l00821"></a><a class="code" href="lightmediascanner__process_8c.html#c2f07fb73717514237862c98dbf023b2">00821</a> <a class="code" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lms_process</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path)
-<a name="l00822"></a>00822 {
-<a name="l00823"></a>00823     <span class="keyword">struct </span>pinfo pinfo;
-<a name="l00824"></a>00824     <span class="keywordtype">int</span> r, len;
-<a name="l00825"></a>00825     <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>], *bname;
-<a name="l00826"></a>00826 
-<a name="l00827"></a>00827     <span class="keywordflow">if</span> (!<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>) {
-<a name="l00828"></a>00828         r = -1;
-<a name="l00829"></a>00829         <span class="keywordflow">goto</span> end;
-<a name="l00830"></a>00830     }
-<a name="l00831"></a>00831 
-<a name="l00832"></a>00832     <span class="keywordflow">if</span> (!top_path) {
-<a name="l00833"></a>00833         r = -2;
-<a name="l00834"></a>00834         <span class="keywordflow">goto</span> end;
-<a name="l00835"></a>00835     }
-<a name="l00836"></a>00836 
-<a name="l00837"></a>00837     <span class="keywordflow">if</span> (<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>) {
-<a name="l00838"></a>00838         fprintf(stderr, <span class="stringliteral">"ERROR: is already processing.\n"</span>);
-<a name="l00839"></a>00839         r = -3;
-<a name="l00840"></a>00840         <span class="keywordflow">goto</span> end;
-<a name="l00841"></a>00841     }
-<a name="l00842"></a>00842 
-<a name="l00843"></a>00843     <span class="keywordflow">if</span> (!<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>) {
-<a name="l00844"></a>00844         fprintf(stderr, <span class="stringliteral">"ERROR: no plugins registered.\n"</span>);
-<a name="l00845"></a>00845         r = -4;
-<a name="l00846"></a>00846         <span class="keywordflow">goto</span> end;
-<a name="l00847"></a>00847     }
-<a name="l00848"></a>00848 
-<a name="l00849"></a>00849     pinfo.<a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a> = <a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>;
-<a name="l00850"></a>00850 
-<a name="l00851"></a>00851     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(&amp;pinfo) != 0) {
-<a name="l00852"></a>00852         r = -5;
-<a name="l00853"></a>00853         <span class="keywordflow">goto</span> end;
-<a name="l00854"></a>00854     }
-<a name="l00855"></a>00855 
-<a name="l00856"></a>00856     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(&amp;pinfo, _slave_work) != 0) {
-<a name="l00857"></a>00857         r = -6;
-<a name="l00858"></a>00858         <span class="keywordflow">goto</span> close_pipes;
-<a name="l00859"></a>00859     }
-<a name="l00860"></a>00860 
-<a name="l00861"></a>00861     <span class="keywordflow">if</span> (realpath(top_path, path) == NULL) {
-<a name="l00862"></a>00862         perror(<span class="stringliteral">"realpath"</span>);
-<a name="l00863"></a>00863         r = -7;
-<a name="l00864"></a>00864         <span class="keywordflow">goto</span> finish_slave;
-<a name="l00865"></a>00865     }
-<a name="l00866"></a>00866 
-<a name="l00867"></a>00867     <span class="comment">/* search '/' backwards, split dirname and basename, note realpath usage */</span>
-<a name="l00868"></a>00868     len = strlen(path);
-<a name="l00869"></a>00869     <span class="keywordflow">for</span> (; len &gt;= 0 &amp;&amp; path[len] != <span class="charliteral">'/'</span>; len--);
-<a name="l00870"></a>00870     len++;
-<a name="l00871"></a>00871     bname = strdup(path + len);
-<a name="l00872"></a>00872     <span class="keywordflow">if</span> (bname == NULL) {
-<a name="l00873"></a>00873         perror(<span class="stringliteral">"strdup"</span>);
-<a name="l00874"></a>00874         r = -8;
-<a name="l00875"></a>00875         <span class="keywordflow">goto</span> finish_slave;
-<a name="l00876"></a>00876     }
+<a name="l00804"></a>00804 }
+<a name="l00805"></a>00805 
+<a name="l00806"></a>00806 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00807"></a>00807 _process_file_single_process(<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
+<a name="l00808"></a>00808 {
+<a name="l00809"></a>00809     <span class="keyword">struct </span><a class="code" href="structsinfo.html">sinfo</a> *<a class="code" href="structsinfo.html">sinfo</a> = (<span class="keyword">struct </span>sinfo *)info;
+<a name="l00810"></a>00810     <span class="keywordtype">int</span> new_len, r;
+<a name="l00811"></a>00811 
+<a name="l00812"></a>00812     <span class="keywordtype">void</span> **parser_match = sinfo-&gt;<a class="code" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">parser_match</a>;
+<a name="l00813"></a>00813     <span class="keyword">struct </span>db *db = sinfo-&gt;<a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a>;
+<a name="l00814"></a>00814     <a class="code" href="structlms.html">lms_t</a> *lms = sinfo-&gt;<a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>;
+<a name="l00815"></a>00815 
+<a name="l00816"></a>00816     new_len = _strcat(base, path, name);
+<a name="l00817"></a>00817     <span class="keywordflow">if</span> (new_len &lt; 0)
+<a name="l00818"></a>00818         <span class="keywordflow">return</span> -1;
+<a name="l00819"></a>00819 
+<a name="l00820"></a>00820     r = _db_and_parsers_process_file(
+<a name="l00821"></a>00821         lms, db, parser_match, path, new_len, base);
+<a name="l00822"></a>00822     <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l00823"></a>00823         fprintf(stderr, <span class="stringliteral">"ERROR: pid=%d failed to parse \"%s\".\n"</span>,
+<a name="l00824"></a>00824                 getpid(), path);
+<a name="l00825"></a>00825         _report_progress(info, path, new_len, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370ac34bba1176659b7d01c29ffe0b67c82">LMS_PROGRESS_STATUS_ERROR_PARSE</a>);
+<a name="l00826"></a>00826         <span class="keywordflow">return</span> (-r) &lt;&lt; 8;
+<a name="l00827"></a>00827     } <span class="keywordflow">else</span> {
+<a name="l00828"></a>00828         sinfo-&gt;<a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a>++;
+<a name="l00829"></a>00829         <span class="keywordflow">if</span> (sinfo-&gt;<a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a> &gt; lms-&gt;<a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>) {
+<a name="l00830"></a>00830             <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(db-&gt;transaction_commit);
+<a name="l00831"></a>00831             <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(db-&gt;transaction_begin);
+<a name="l00832"></a>00832             sinfo-&gt;<a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a> = 0;
+<a name="l00833"></a>00833         }
+<a name="l00834"></a>00834 
+<a name="l00835"></a>00835         _report_progress(info, path, new_len, <a class="code" href="lightmediascanner_8h.html#52b270a30c58810720ae0650f64d2370d058b5f0e26e414942e96b806d3a7c70">LMS_PROGRESS_STATUS_PROCESSED</a>);
+<a name="l00836"></a>00836         <span class="keywordflow">return</span> r;
+<a name="l00837"></a>00837     }
+<a name="l00838"></a>00838 
+<a name="l00839"></a>00839     <span class="keywordflow">return</span> r;
+<a name="l00840"></a>00840 }
+<a name="l00841"></a>00841 
+<a name="l00842"></a>00842 <span class="keyword">static</span> <span class="keywordtype">int</span> _process_dir(<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">process_file_callback_t</a> process_file);
+<a name="l00843"></a>00843 
+<a name="l00844"></a>00844 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00845"></a>00845 _process_unknown(<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">process_file_callback_t</a> process_file)
+<a name="l00846"></a>00846 {
+<a name="l00847"></a>00847     <span class="keyword">struct </span>stat st;
+<a name="l00848"></a>00848     <span class="keywordtype">int</span> new_len;
+<a name="l00849"></a>00849 
+<a name="l00850"></a>00850     new_len = _strcat(base, path, name);
+<a name="l00851"></a>00851     <span class="keywordflow">if</span> (new_len &lt; 0)
+<a name="l00852"></a>00852         <span class="keywordflow">return</span> -1;
+<a name="l00853"></a>00853 
+<a name="l00854"></a>00854     <span class="keywordflow">if</span> (stat(path, &amp;st) != 0) {
+<a name="l00855"></a>00855         perror(<span class="stringliteral">"stat"</span>);
+<a name="l00856"></a>00856         <span class="keywordflow">return</span> -2;
+<a name="l00857"></a>00857     }
+<a name="l00858"></a>00858 
+<a name="l00859"></a>00859     <span class="keywordflow">if</span> (S_ISREG(st.st_mode))
+<a name="l00860"></a>00860         <span class="keywordflow">return</span> process_file(info, base, path, name);
+<a name="l00861"></a>00861     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (S_ISDIR(st.st_mode))
+<a name="l00862"></a>00862         <span class="keywordflow">return</span> _process_dir(info, base, path, name, process_file);
+<a name="l00863"></a>00863     <span class="keywordflow">else</span> {
+<a name="l00864"></a>00864         fprintf(stderr,
+<a name="l00865"></a>00865                 <span class="stringliteral">"INFO: %s is neither a directory nor a regular file.\n"</span>, path);
+<a name="l00866"></a>00866         <span class="keywordflow">return</span> -3;
+<a name="l00867"></a>00867     }
+<a name="l00868"></a>00868 }
+<a name="l00869"></a>00869 
+<a name="l00870"></a>00870 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00871"></a>00871 _process_dir(<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">process_file_callback_t</a> process_file)
+<a name="l00872"></a>00872 {
+<a name="l00873"></a>00873     <a class="code" href="structlms.html">lms_t</a> *lms = info-&gt;<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>;
+<a name="l00874"></a>00874     <span class="keyword">struct </span>dirent *de;
+<a name="l00875"></a>00875     <span class="keywordtype">int</span> new_len, r;
+<a name="l00876"></a>00876     DIR *dir;
 <a name="l00877"></a>00877 
-<a name="l00878"></a>00878     <a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 1;
-<a name="l00879"></a>00879     r = _process_dir(&amp;pinfo, len, path, bname);
-<a name="l00880"></a>00880     <a class="code" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a>-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 0;
-<a name="l00881"></a>00881     free(bname);
-<a name="l00882"></a>00882 
-<a name="l00883"></a>00883   finish_slave:
-<a name="l00884"></a>00884     <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(&amp;pinfo, _master_send_finish);
-<a name="l00885"></a>00885   close_pipes:
-<a name="l00886"></a>00886     <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(&amp;pinfo);
-<a name="l00887"></a>00887   end:
-<a name="l00888"></a>00888     <span class="keywordflow">return</span> r;
-<a name="l00889"></a>00889 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00878"></a>00878     new_len = _strcat(base, path, name);
+<a name="l00879"></a>00879     <span class="keywordflow">if</span> (new_len &lt; 0)
+<a name="l00880"></a>00880         <span class="keywordflow">return</span> -1;
+<a name="l00881"></a>00881     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (new_len + 1 &gt;= <a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>) {
+<a name="l00882"></a>00882         fprintf(stderr, <span class="stringliteral">"ERROR: path too long\n"</span>);
+<a name="l00883"></a>00883         <span class="keywordflow">return</span> 2;
+<a name="l00884"></a>00884     }
+<a name="l00885"></a>00885 
+<a name="l00886"></a>00886     dir = opendir(path);
+<a name="l00887"></a>00887     <span class="keywordflow">if</span> (dir == NULL) {
+<a name="l00888"></a>00888         perror(<span class="stringliteral">"opendir"</span>);
+<a name="l00889"></a>00889         <span class="keywordflow">return</span> 3;
+<a name="l00890"></a>00890     }
+<a name="l00891"></a>00891 
+<a name="l00892"></a>00892     path[new_len] = <span class="charliteral">'/'</span>;
+<a name="l00893"></a>00893     new_len++;
+<a name="l00894"></a>00894 
+<a name="l00895"></a>00895     r = 0;
+<a name="l00896"></a>00896     <span class="keywordflow">while</span> ((de = readdir(dir)) != NULL &amp;&amp; !lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a>) {
+<a name="l00897"></a>00897         <span class="keywordflow">if</span> (de-&gt;d_name[0] == <span class="charliteral">'.'</span>)
+<a name="l00898"></a>00898             <span class="keywordflow">continue</span>;
+<a name="l00899"></a>00899         <span class="keywordflow">if</span> (de-&gt;d_type == DT_REG) {
+<a name="l00900"></a>00900             <span class="keywordflow">if</span> (process_file(info, new_len, path, de-&gt;d_name) &lt; 0) {
+<a name="l00901"></a>00901                 fprintf(stderr,
+<a name="l00902"></a>00902                         <span class="stringliteral">"ERROR: unrecoverable error parsing file, "</span>
+<a name="l00903"></a>00903                         <span class="stringliteral">"exit \"%s\".\n"</span>, path);
+<a name="l00904"></a>00904                 path[new_len - 1] = <span class="charliteral">'\0'</span>;
+<a name="l00905"></a>00905                 r = -4;
+<a name="l00906"></a>00906                 <span class="keywordflow">goto</span> end;
+<a name="l00907"></a>00907             }
+<a name="l00908"></a>00908         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (de-&gt;d_type == DT_DIR) {
+<a name="l00909"></a>00909             <span class="keywordflow">if</span> (_process_dir(
+<a name="l00910"></a>00910                     info, new_len, path, de-&gt;d_name, process_file) &lt; 0) {
+<a name="l00911"></a>00911                 fprintf(stderr,
+<a name="l00912"></a>00912                         <span class="stringliteral">"ERROR: unrecoverable error parsing dir, "</span>
+<a name="l00913"></a>00913                         <span class="stringliteral">"exit \"%s\".\n"</span>, path);
+<a name="l00914"></a>00914                 path[new_len - 1] = <span class="charliteral">'\0'</span>;
+<a name="l00915"></a>00915                 r = -5;
+<a name="l00916"></a>00916                 <span class="keywordflow">goto</span> end;
+<a name="l00917"></a>00917             }
+<a name="l00918"></a>00918         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (de-&gt;d_type == DT_UNKNOWN) {
+<a name="l00919"></a>00919             <span class="keywordflow">if</span> (_process_unknown(
+<a name="l00920"></a>00920                     info, new_len, path, de-&gt;d_name, process_file) &lt; 0) {
+<a name="l00921"></a>00921                 fprintf(stderr,
+<a name="l00922"></a>00922                         <span class="stringliteral">"ERROR: unrecoverable error parsing DT_UNKNOWN, "</span>
+<a name="l00923"></a>00923                         <span class="stringliteral">"exit \"%s\".\n"</span>, path);
+<a name="l00924"></a>00924                 path[new_len - 1] = <span class="charliteral">'\0'</span>;
+<a name="l00925"></a>00925                 r = -6;
+<a name="l00926"></a>00926                 <span class="keywordflow">goto</span> end;
+<a name="l00927"></a>00927             }
+<a name="l00928"></a>00928         }
+<a name="l00929"></a>00929     }
+<a name="l00930"></a>00930 
+<a name="l00931"></a>00931   end:
+<a name="l00932"></a>00932     closedir(dir);
+<a name="l00933"></a>00933     <span class="keywordflow">return</span> r;
+<a name="l00934"></a>00934 }
+<a name="l00935"></a>00935 
+<a name="l00936"></a>00936 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00937"></a>00937 _lms_process_check_valid(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *path)
+<a name="l00938"></a>00938 {
+<a name="l00939"></a>00939     <span class="keywordflow">if</span> (!lms)
+<a name="l00940"></a>00940         <span class="keywordflow">return</span> -1;
+<a name="l00941"></a>00941 
+<a name="l00942"></a>00942     <span class="keywordflow">if</span> (!path)
+<a name="l00943"></a>00943         <span class="keywordflow">return</span> -2;
+<a name="l00944"></a>00944 
+<a name="l00945"></a>00945     <span class="keywordflow">if</span> (lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>) {
+<a name="l00946"></a>00946         fprintf(stderr, <span class="stringliteral">"ERROR: is already processing.\n"</span>);
+<a name="l00947"></a>00947         <span class="keywordflow">return</span> -3;
+<a name="l00948"></a>00948     }
+<a name="l00949"></a>00949 
+<a name="l00950"></a>00950     <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>) {
+<a name="l00951"></a>00951         fprintf(stderr, <span class="stringliteral">"ERROR: no plugins registered.\n"</span>);
+<a name="l00952"></a>00952         <span class="keywordflow">return</span> -4;
+<a name="l00953"></a>00953     }
+<a name="l00954"></a>00954 
+<a name="l00955"></a>00955     <span class="keywordflow">return</span> 0;
+<a name="l00956"></a>00956 }
+<a name="l00957"></a>00957 
+<a name="l00958"></a>00958 <span class="keyword">static</span> <span class="keywordtype">int</span>
+<a name="l00959"></a>00959 _process_trigger(<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path, <a class="code" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">process_file_callback_t</a> process_file)
+<a name="l00960"></a>00960 {
+<a name="l00961"></a>00961     <span class="keywordtype">char</span> path[<a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">PATH_SIZE</a>], *bname;
+<a name="l00962"></a>00962     <a class="code" href="structlms.html">lms_t</a> *lms = info-&gt;<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>;
+<a name="l00963"></a>00963     <span class="keywordtype">int</span> len;
+<a name="l00964"></a>00964     <span class="keywordtype">int</span> r;
+<a name="l00965"></a>00965 
+<a name="l00966"></a>00966     <span class="keywordflow">if</span> (realpath(top_path, path) == NULL) {
+<a name="l00967"></a>00967         perror(<span class="stringliteral">"realpath"</span>);
+<a name="l00968"></a>00968         <span class="keywordflow">return</span> -1;
+<a name="l00969"></a>00969     }
+<a name="l00970"></a>00970 
+<a name="l00971"></a>00971     <span class="comment">/* search '/' backwards, split dirname and basename, note realpath usage */</span>
+<a name="l00972"></a>00972     len = strlen(path);
+<a name="l00973"></a>00973     <span class="keywordflow">for</span> (; len &gt;= 0 &amp;&amp; path[len] != <span class="charliteral">'/'</span>; len--);
+<a name="l00974"></a>00974     len++;
+<a name="l00975"></a>00975     bname = strdup(path + len);
+<a name="l00976"></a>00976     <span class="keywordflow">if</span> (bname == NULL) {
+<a name="l00977"></a>00977         perror(<span class="stringliteral">"strdup"</span>);
+<a name="l00978"></a>00978         <span class="keywordflow">return</span> -2;
+<a name="l00979"></a>00979     }
+<a name="l00980"></a>00980 
+<a name="l00981"></a>00981     lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 1;
+<a name="l00982"></a>00982     lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a> = 0;
+<a name="l00983"></a>00983     r = _process_dir(info, len, path, bname, process_file);
+<a name="l00984"></a>00984     lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a> = 0;
+<a name="l00985"></a>00985     lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a> = 0;
+<a name="l00986"></a>00986     free(bname);
+<a name="l00987"></a>00987 
+<a name="l00988"></a>00988     <span class="keywordflow">return</span> r;
+<a name="l00989"></a>00989 }
+<a name="l00990"></a>00990 
+<a name="l01001"></a>01001 <span class="keywordtype">int</span>
+<a name="l01002"></a><a class="code" href="lightmediascanner__process_8c.html#c2f07fb73717514237862c98dbf023b2">01002</a> <a class="code" href="lightmediascanner_8h.html#7d2b81cfe07a8cce4c2bef705e7529f4">lms_process</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path)
+<a name="l01003"></a>01003 {
+<a name="l01004"></a>01004     <span class="keyword">struct </span>pinfo pinfo;
+<a name="l01005"></a>01005     <span class="keywordtype">int</span> r;
+<a name="l01006"></a>01006 
+<a name="l01007"></a>01007     r = _lms_process_check_valid(lms, top_path);
+<a name="l01008"></a>01008     <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l01009"></a>01009         <span class="keywordflow">return</span> r;
+<a name="l01010"></a>01010 
+<a name="l01011"></a>01011     pinfo.<a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a> = lms;
+<a name="l01012"></a>01012 
+<a name="l01013"></a>01013     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(&amp;pinfo) != 0) {
+<a name="l01014"></a>01014         r = -1;
+<a name="l01015"></a>01015         <span class="keywordflow">goto</span> end;
+<a name="l01016"></a>01016     }
+<a name="l01017"></a>01017 
+<a name="l01018"></a>01018     <span class="keywordflow">if</span> (<a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(&amp;pinfo, _slave_work) != 0) {
+<a name="l01019"></a>01019         r = -2;
+<a name="l01020"></a>01020         <span class="keywordflow">goto</span> close_pipes;
+<a name="l01021"></a>01021     }
+<a name="l01022"></a>01022 
+<a name="l01023"></a>01023     r = _process_trigger((<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *)&amp;pinfo, top_path, _process_file);
+<a name="l01024"></a>01024 
+<a name="l01025"></a>01025     <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(&amp;pinfo, _master_send_finish);
+<a name="l01026"></a>01026   close_pipes:
+<a name="l01027"></a>01027     <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(&amp;pinfo);
+<a name="l01028"></a>01028   end:
+<a name="l01029"></a>01029     <span class="keywordflow">return</span> r;
+<a name="l01030"></a>01030 }
+<a name="l01031"></a>01031 
+<a name="l01043"></a>01043 <span class="keywordtype">int</span>
+<a name="l01044"></a><a class="code" href="lightmediascanner__process_8c.html#5db83cefb7a50bbecea9de26a6ef1c2c">01044</a> <a class="code" href="lightmediascanner_8h.html#c5eda23c23b2ea76f001ac994c2ba9e2">lms_process_single_process</a>(<a class="code" href="structlms.html">lms_t</a> *lms, <span class="keyword">const</span> <span class="keywordtype">char</span> *top_path)
+<a name="l01045"></a>01045 {
+<a name="l01046"></a>01046     <span class="keyword">struct </span>sinfo sinfo;
+<a name="l01047"></a>01047     <span class="keywordtype">int</span> r;
+<a name="l01048"></a>01048 
+<a name="l01049"></a>01049     r = _lms_process_check_valid(lms, top_path);
+<a name="l01050"></a>01050     <span class="keywordflow">if</span> (r &lt; 0)
+<a name="l01051"></a>01051         <span class="keywordflow">return</span> r;
+<a name="l01052"></a>01052 
+<a name="l01053"></a>01053     sinfo.<a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a> = lms;
+<a name="l01054"></a>01054     sinfo.<a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a> = 0;
+<a name="l01055"></a>01055 
+<a name="l01056"></a>01056     r = _db_and_parsers_setup(sinfo.<a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">common</a>.<a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a>, &amp;sinfo.<a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a>, &amp;sinfo.<a class="code" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">parser_match</a>);
+<a name="l01057"></a>01057     <span class="keywordflow">if</span> (r &lt; 0) {
+<a name="l01058"></a>01058         <span class="keywordflow">if</span> (r == -1)
+<a name="l01059"></a>01059             <span class="keywordflow">return</span> r;
+<a name="l01060"></a>01060         <span class="keywordflow">else</span>
+<a name="l01061"></a>01061             <span class="keywordflow">goto</span> finish;
+<a name="l01062"></a>01062     }
+<a name="l01063"></a>01063 
+<a name="l01064"></a>01064     <a class="code" href="lightmediascanner__db__common_8c.html#5ff807216285c93325ffaf33361dd6fc">lms_db_begin_transaction</a>(sinfo.<a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a>-&gt;transaction_begin);
+<a name="l01065"></a>01065 
+<a name="l01066"></a>01066     r = _process_trigger(
+<a name="l01067"></a>01067         (<span class="keyword">struct</span> <a class="code" href="structcinfo.html">cinfo</a> *)&amp;sinfo, top_path, _process_file_single_process);
+<a name="l01068"></a>01068 
+<a name="l01069"></a>01069     free(sinfo.parser_match);
+<a name="l01070"></a>01070     <a class="code" href="lightmediascanner__db__common_8c.html#ffa877e4fa751f090e7af8c2025d245c">lms_db_end_transaction</a>(sinfo.db-&gt;transaction_commit);
+<a name="l01071"></a>01071 
+<a name="l01072"></a>01072   finish:
+<a name="l01073"></a>01073     <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(lms, sinfo.db-&gt;handle);
+<a name="l01074"></a>01074     _db_close(sinfo.db);
+<a name="l01075"></a>01075     <span class="keywordflow">return</span> r;
+<a name="l01076"></a>01076 }
+<a name="l01077"></a>01077 
+<a name="l01078"></a>01078 <span class="keywordtype">void</span>
+<a name="l01079"></a><a class="code" href="lightmediascanner__process_8c.html#36d624baae0531c20e716c88a82e0aaf">01079</a> <a class="code" href="lightmediascanner_8h.html#30aa1e83907fc1049d2adccb28eef489">lms_stop_processing</a>(<a class="code" href="structlms.html">lms_t</a> *lms)
+<a name="l01080"></a>01080 {
+<a name="l01081"></a>01081     <span class="keywordflow">if</span> (!lms)
+<a name="l01082"></a>01082         <span class="keywordflow">return</span>;
+<a name="l01083"></a>01083     <span class="keywordflow">if</span> (!lms-&gt;<a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>)
+<a name="l01084"></a>01084         <span class="keywordflow">return</span>;
+<a name="l01085"></a>01085 
+<a name="l01086"></a>01086     lms-&gt;<a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a> = 1;
+<a name="l01087"></a>01087 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 7340523..17929e9 100644 (file)
@@ -4,21 +4,18 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_process.c File Reference</h1><code>#include &lt;sys/wait.h&gt;</code><br>
 <code>#include &lt;sys/stat.h&gt;</code><br>
 <code>#include &lt;unistd.h&gt;</code><br>
 <code>#include &quot;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&quot;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_process.c:<p><center><img src="lightmediascanner__process_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_process.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_process.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__process_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_process.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_process.c_map">
-<area shape="rect" href="lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="768,461,896,488"><area shape="rect" href="lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="277,588,451,615"><area shape="rect" href="lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="268,765,460,792"><area shape="rect" href="lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="511,715,679,741"><area shape="rect" href="lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="729,588,935,615"></map>
+<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>
+</div>
 
 <p>
 <a href="lightmediascanner__process_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -65,6 +66,10 @@ Include dependency graph for lightmediascanner_process.c:<p><center><img src="li
 
 <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>
 
+<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>
+
+<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>
+
 </table>
 <hr><h2>Define Documentation</h2>
 <a class="anchor" name="369266c24eacffb87046522897a570d5"></a><!-- doxytag: member="lightmediascanner_process.c::_GNU_SOURCE" ref="369266c24eacffb87046522897a570d5" args="" -->
@@ -82,11 +87,11 @@ Include dependency graph for lightmediascanner_process.c:<p><center><img src="li
 Copyright (C) 2007 by INdT<p>
 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>
 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>
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<p>
+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>
 <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>
 
-<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>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>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
@@ -100,7 +105,7 @@ Definition at line <a class="el" href="lightmediascanner__process_8c-source.html
           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
           <td class="paramname"> <em>pinfo</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -108,12 +113,12 @@ Definition at line <a class="el" href="lightmediascanner__process_8c-source.html
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00566">566</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00051">pinfo::master</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00052">pinfo::slave</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618">lms_check()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+<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>
+
+<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>
+
+<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>
+
 </div>
 </div><p>
 <a class="anchor" name="c2e1320b9770e0f522451b13f82efc2b"></a><!-- doxytag: member="lightmediascanner_process.c::lms_create_pipes" ref="c2e1320b9770e0f522451b13f82efc2b" args="(struct pinfo *pinfo)" -->
@@ -126,7 +131,7 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
           <td class="paramtype">struct <a class="el" href="structpinfo.html">pinfo</a> *&nbsp;</td>
           <td class="paramname"> <em>pinfo</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -134,12 +139,12 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00577">577</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00051">pinfo::master</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00053">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#l00052">pinfo::slave</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00046">fds::w</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618">lms_check()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+<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>
+
+<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>
+
+<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>
+
 </div>
 </div><p>
 <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))" -->
@@ -161,7 +166,7 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -169,14 +174,18 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
 
 <p>
 
+<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>
+
+<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>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00604">604</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00055">pinfo::child</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00054">pinfo::lms</a>, <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00051">pinfo::master</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00052">pinfo::slave</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph_map" alt=""></center>
 <map name="lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph_map">
-<area shape="rect" href="group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687" title="lms_free" alt="" coords="169,5,236,32"><area shape="rect" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="287,5,431,32"></map>
+<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>
+</div>
 
 </div>
 </div><p>
@@ -199,7 +208,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -207,10 +216,10 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00641">641</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00055">pinfo::child</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00051">pinfo::master</a>.
+<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>
+
+<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>
+
 </div>
 </div><p>
 <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)" -->
@@ -238,7 +247,7 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00055"
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -246,10 +255,10 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00055"
 
 <p>
 
-<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>
-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#l00066">lms::n_parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00065">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#l00059">parser::plugin</a>.
+<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>
+
+<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>
+
 </div>
 </div><p>
 <a class="anchor" name="d002464442b08826a1da920bdf4957b7"></a><!-- doxytag: member="lightmediascanner_process.c::lms_parsers_finish" ref="d002464442b08826a1da920bdf4957b7" args="(lms_t *lms, sqlite3 *db)" -->
@@ -271,7 +280,7 @@ References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00136">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -279,10 +288,10 @@ References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00136">
 
 <p>
 
-<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>
-References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00162">lms_plugin::finish</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00066">lms::n_parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00059">parser::plugin</a>.
+<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>
+
+<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>
+
 </div>
 </div><p>
 <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)" -->
@@ -316,7 +325,7 @@ References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00162">
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -324,10 +333,10 @@ References <a class="el" href="lightmediascanner__plugin_8h-source.html#l00162">
 
 <p>
 
-<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>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00066">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#l00065">lms::parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00059">parser::plugin</a>.
+<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>
+
+<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>
+
 </div>
 </div><p>
 <a class="anchor" name="c321bebfc5c24cbbac30031202c460e9"></a><!-- doxytag: member="lightmediascanner_process.c::lms_parsers_setup" ref="c321bebfc5c24cbbac30031202c460e9" args="(lms_t *lms, sqlite3 *db)" -->
@@ -349,7 +358,7 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00066"
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -357,14 +366,18 @@ References <a class="el" href="lightmediascanner__private_8h-source.html#l00066"
 
 <p>
 
+<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>
+
+<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>
+
 <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>
-References <a class="el" href="lightmediascanner_8c-source.html#l00249">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00066">lms::n_parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00059">parser::plugin</a>, and <a class="el" href="lightmediascanner__plugin_8h-source.html#l00160">lms_plugin::setup</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph_map" alt=""></center>
 <map name="lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph_map">
-<area shape="rect" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="175,5,297,32"></map>
+<area shape="rect" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="201,5,345,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -387,7 +400,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -395,14 +408,18 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<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>
+
+<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>
+
 <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>
-References <a class="el" href="lightmediascanner_8c-source.html#l00249">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00066">lms::n_parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00059">parser::plugin</a>, and <a class="el" href="lightmediascanner__plugin_8h-source.html#l00161">lms_plugin::start</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph_map" alt=""></center>
 <map name="lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph_map">
-<area shape="rect" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="169,5,292,32"></map>
+<area shape="rect" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="196,5,340,32"></map>
+</div>
 
 </div>
 </div><p>
@@ -425,7 +442,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -442,14 +459,69 @@ This will add or update media found in the given directory or its children.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
 
+<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>
+
+<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>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00821">821</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph_map" alt=""></center>
+<map name="lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph_map">
+<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>
+</div>
+
+</div>
+</div><p>
+<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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lms_process_single_process           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lms</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>top_path</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00071">lms::is_processing</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00054">pinfo::lms</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00566">lms_close_pipes()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00577">lms_create_pipes()</a>, <a class="el" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave()</a>, <a class="el" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave()</a>, <a class="el" href="lightmediascanner__private_8h-source.html#l00065">lms::parsers</a>, and <a class="el" href="lightmediascanner__private_8h-source.html#l00042">PATH_SIZE</a>.
+Process the given directory *without fork()-ing* into child process.<p>
+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>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <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>
+    <tr><td valign="top"></td><td valign="top"><em>top_path</em>&nbsp;</td><td>top directory to scan.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
+
+<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>
+
+<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>
+
 <p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph_map" alt=""></center>
-<map name="lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph_map">
-<area shape="rect" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed" title="lms_close_pipes" alt="" coords="144,5,253,32"><area shape="rect" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4" title="lms_create_pipes" alt="" coords="143,56,255,83"><area shape="rect" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6" title="lms_create_slave" alt="" coords="143,107,255,133"><area shape="rect" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5" title="lms_finish_slave" alt="" coords="143,157,255,184"></map>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph_map" alt=""></center>
+<map name="lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph_map">
+<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>
+</div>
 
 </div>
 </div><p>
@@ -472,7 +544,7 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -480,19 +552,48 @@ Here is the call graph for this function:<p><center><img src="lightmediascanner_
 
 <p>
 
+<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>
+
+<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>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__process_8c-source.html#l00664">664</a> of file <a class="el" href="lightmediascanner__process_8c-source.html">lightmediascanner_process.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__private_8h-source.html#l00055">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#l00053">pinfo::poll</a>.
-<p>
-Here is the call graph for this function:<p><center><img src="lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph_map" alt=""></center>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph.png" border="0" usemap="#lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph_map" alt=""></center>
 <map name="lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph_map">
-<area shape="rect" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6" title="lms_create_slave" alt="" coords="169,5,281,32"></map>
+<area shape="rect" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6" title="lms_create_slave" alt="" coords="196,5,335,32"></map>
+</div>
 
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+<a class="anchor" name="36d624baae0531c20e716c88a82e0aaf"></a><!-- doxytag: member="lightmediascanner_process.c::lms_stop_processing" ref="36d624baae0531c20e716c88a82e0aaf" args="(lms_t *lms)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lms_stop_processing           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structlms.html">lms_t</a> *&nbsp;</td>
+          <td class="paramname"> <em>lms</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+
+<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>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:57 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
diff --git a/www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.map b/www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.map
new file mode 100644 (file)
index 0000000..e1f0be2
--- /dev/null
@@ -0,0 +1,3 @@
+<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">
diff --git a/www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.md5 b/www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.md5
new file mode 100644 (file)
index 0000000..7cc5371
--- /dev/null
@@ -0,0 +1 @@
+01c9e7a30a3eb96fb74afdc4e98a085b
\ No newline at end of file
diff --git a/www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.png b/www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.png
new file mode 100644 (file)
index 0000000..ca757eb
Binary files /dev/null and b/www/api/lightmediascanner__process_8c_5db83cefb7a50bbecea9de26a6ef1c2c_cgraph.png differ
index 9854bea..321db25 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="169,5,292,32">
+<area shape="rect" href="$lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="196,5,340,32">
index de3d938..9957370 100644 (file)
Binary files a/www/api/lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph.png and b/www/api/lightmediascanner__process_8c_6e02f78f026b2ad282184476dca13e45_cgraph.png differ
index d14f932..3121a30 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6" title="lms_create_slave" alt="" coords="169,5,281,32">
+<area shape="rect" href="$lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6" title="lms_create_slave" alt="" coords="196,5,335,32">
index 2c19cb5..4544200 100644 (file)
Binary files a/www/api/lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph.png and b/www/api/lightmediascanner__process_8c_9bf510645947b478dab39f633bbd35f3_cgraph.png differ
index 28ced31..ed8169a 100644 (file)
@@ -1,5 +1,5 @@
-<area shape="rect" href="$lightmediascanner_8h.html" title="lightmediascanner.h" alt="" coords="768,461,896,488">
-<area shape="rect" href="$lightmediascanner__private_8h.html" title="lightmediascanner_private.h" alt="" coords="277,588,451,615">
-<area shape="rect" href="$lightmediascanner__db__private_8h.html" title="lightmediascanner_db_private.h" alt="" coords="268,765,460,792">
-<area shape="rect" href="$lightmediascanner__plugin_8h.html" title="lightmediascanner_plugin.h" alt="" coords="511,715,679,741">
-<area shape="rect" href="$lightmediascanner__charset__conv_8h.html" title="lightmediascanner_charset_conv.h" alt="" coords="729,588,935,615">
+<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">
index a1902b7..37f327c 100644 (file)
@@ -1 +1 @@
-691954d091cc4954a262a036d6b1422d
\ No newline at end of file
+fb098b2d3521d872c74dd85a2e81eb34
\ No newline at end of file
index d27adfd..bf989c7 100644 (file)
Binary files a/www/api/lightmediascanner__process_8c__incl.png and b/www/api/lightmediascanner__process_8c__incl.png differ
index a8a5d5d..9fe9ed4 100644 (file)
@@ -1,4 +1,4 @@
-<area shape="rect" href="$lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed" title="lms_close_pipes" alt="" coords="144,5,253,32">
-<area shape="rect" href="$lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4" title="lms_create_pipes" alt="" coords="143,56,255,83">
-<area shape="rect" href="$lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6" title="lms_create_slave" alt="" coords="143,107,255,133">
-<area shape="rect" href="$lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5" title="lms_finish_slave" alt="" coords="143,157,255,184">
+<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">
index 218605f..8fbd61f 100644 (file)
Binary files a/www/api/lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph.png and b/www/api/lightmediascanner__process_8c_c2f07fb73717514237862c98dbf023b2_cgraph.png differ
index 788d5ff..c194ff3 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="175,5,297,32">
+<area shape="rect" href="$lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf" title="lms_parser_del_int" alt="" coords="201,5,345,32">
index 9967cd1..2b2f4e3 100644 (file)
Binary files a/www/api/lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph.png and b/www/api/lightmediascanner__process_8c_c321bebfc5c24cbbac30031202c460e9_cgraph.png differ
index 9b56ab4..7ad6e90 100644 (file)
@@ -1,2 +1,2 @@
-<area shape="rect" href="$group__LMS__API.html#gf15f3b0f7de2113155a360df989b7687" title="lms_free" alt="" coords="169,5,236,32">
-<area shape="rect" href="$group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091" title="lms_charset_conv_free" alt="" coords="287,5,431,32">
+<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">
index 5d48330..0858556 100644 (file)
Binary files a/www/api/lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph.png and b/www/api/lightmediascanner__process_8c_e92fe8fe90d93d5ad9a42387a4b2fc6e_cgraph.png differ
index 855670e..168eebb 100644 (file)
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
-<h1>src/lib/lightmediascanner_utils.c</h1><a href="lightmediascanner__utils_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__utils_8h.html">lightmediascanner_utils.h</a>&gt;</span>
-<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;ctype.h&gt;</span>
-<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;alloca.h&gt;</span>
-<a name="l00004"></a>00004 
-<a name="l00012"></a>00012 <span class="keywordtype">void</span>
-<a name="l00013"></a><a class="code" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">00013</a> <a class="code" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">lms_strstrip</a>(<span class="keywordtype">char</span> *str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len)
-<a name="l00014"></a>00014 {
-<a name="l00015"></a>00015     <span class="keywordtype">int</span> i, len;
-<a name="l00016"></a>00016     <span class="keywordtype">char</span> *p;
-<a name="l00017"></a>00017 
-<a name="l00018"></a>00018     len = *p_len;
-<a name="l00019"></a>00019 
-<a name="l00020"></a>00020     <span class="keywordflow">if</span> (len &lt; 2) <span class="comment">/* just '\0'? */</span>
-<a name="l00021"></a>00021         <span class="keywordflow">return</span>;
-<a name="l00022"></a>00022 
-<a name="l00023"></a>00023     p = str + len - 1;
-<a name="l00024"></a>00024     <span class="keywordflow">for</span> (i = len - 1; i &gt;= 0; i--) {
-<a name="l00025"></a>00025         <span class="keywordflow">if</span> (isspace(*p)) {
-<a name="l00026"></a>00026             *p = <span class="charliteral">'\0'</span>;
-<a name="l00027"></a>00027             len--;
-<a name="l00028"></a>00028             p--;
-<a name="l00029"></a>00029         } <span class="keywordflow">else</span>
-<a name="l00030"></a>00030             <span class="keywordflow">break</span>;
-<a name="l00031"></a>00031     }
-<a name="l00032"></a>00032     <span class="keywordflow">if</span> (len == 0) {
-<a name="l00033"></a>00033         *p_len = 0;
-<a name="l00034"></a>00034         <span class="keywordflow">return</span>;
-<a name="l00035"></a>00035     }
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037     p = str;
-<a name="l00038"></a>00038     <span class="keywordflow">for</span> (i = 0; i &lt; len; i++) {
-<a name="l00039"></a>00039         <span class="keywordflow">if</span> (isspace(*p))
-<a name="l00040"></a>00040             p++;
-<a name="l00041"></a>00041         <span class="keywordflow">else</span>
-<a name="l00042"></a>00042             <span class="keywordflow">break</span>;
-<a name="l00043"></a>00043     }
-<a name="l00044"></a>00044     len -= i;
-<a name="l00045"></a>00045     <span class="keywordflow">if</span> (len == 0) {
-<a name="l00046"></a>00046         *str = <span class="charliteral">'\0'</span>;
-<a name="l00047"></a>00047         *p_len = 0;
-<a name="l00048"></a>00048         <span class="keywordflow">return</span>;
-<a name="l00049"></a>00049     }
-<a name="l00050"></a>00050 
-<a name="l00051"></a>00051     *p_len = len;
-<a name="l00052"></a>00052 
-<a name="l00053"></a>00053     <span class="keywordflow">if</span> (str &lt; p)
-<a name="l00054"></a>00054         <span class="keywordflow">for</span> (; len &gt; 0; len--, str++, p++)
-<a name="l00055"></a>00055             *str = *p;
-<a name="l00056"></a>00056 }
-<a name="l00057"></a>00057 
-<a name="l00068"></a>00068 <span class="keywordtype">int</span>
-<a name="l00069"></a><a class="code" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">00069</a> <a class="code" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">lms_which_extension</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> name_len, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *exts, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> exts_len) {
-<a name="l00070"></a>00070     <span class="keywordtype">int</span> i;
-<a name="l00071"></a>00071     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *exts_pos;
-<a name="l00072"></a>00072     <span class="keyword">const</span> <span class="keywordtype">char</span> *s;
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074     exts_pos = alloca(exts_len * <span class="keyword">sizeof</span>(*exts_pos));
-<a name="l00075"></a>00075     <span class="keywordflow">for</span> (i = 0; i &lt; exts_len; i++)
-<a name="l00076"></a>00076         exts_pos[i] = exts[i].len;
-<a name="l00077"></a>00077 
-<a name="l00078"></a>00078     <span class="keywordflow">for</span> (s = name + name_len - 1; s &gt;= name; s--) {
-<a name="l00079"></a>00079         <span class="keywordtype">int</span> i, match;
-<a name="l00080"></a>00080         <span class="keywordtype">char</span> c1, c2;
-<a name="l00081"></a>00081 
-<a name="l00082"></a>00082         c1 = *s;
-<a name="l00083"></a>00083         <span class="keywordflow">if</span> (c1 &gt;= <span class="charliteral">'a'</span>)
-<a name="l00084"></a>00084             c2 = c1;
-<a name="l00085"></a>00085         <span class="keywordflow">else</span>
-<a name="l00086"></a>00086             c2 = <span class="charliteral">'a'</span> + c1 - <span class="charliteral">'A'</span>;
-<a name="l00087"></a>00087 
-<a name="l00088"></a>00088         match = 0;
-<a name="l00089"></a>00089         <span class="keywordflow">for</span> (i = 0; i &lt; exts_len; i++) {
-<a name="l00090"></a>00090             <span class="keywordflow">if</span> (exts_pos[i] &gt; 0) {
-<a name="l00091"></a>00091                 <span class="keywordtype">char</span> ce;
-<a name="l00092"></a>00092 
-<a name="l00093"></a>00093                 ce = exts[i].<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>[exts_pos[i] - 1];
-<a name="l00094"></a>00094                 <span class="keywordflow">if</span> (ce == c1 || ce == c2) {
-<a name="l00095"></a>00095                     <span class="keywordflow">if</span> (exts_pos[i] == 1)
-<a name="l00096"></a>00096                         <span class="keywordflow">return</span> i;
-<a name="l00097"></a>00097                     exts_pos[i]--;
-<a name="l00098"></a>00098                     match = 1;
-<a name="l00099"></a>00099                 } <span class="keywordflow">else</span>
-<a name="l00100"></a>00100                     exts_pos[i] = 0;
-<a name="l00101"></a>00101             }
-<a name="l00102"></a>00102         }
-<a name="l00103"></a>00103         <span class="keywordflow">if</span> (!match)
-<a name="l00104"></a>00104             <span class="keywordflow">return</span> -1;
-<a name="l00105"></a>00105     }
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107     <span class="keywordflow">return</span> -1;
-<a name="l00108"></a>00108 }
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+<h1>src/lib/lightmediascanner_utils.c</h1><a href="lightmediascanner__utils_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="lightmediascanner__utils_8h.html">lightmediascanner_utils.h</a>&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;ctype.h&gt;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;alloca.h&gt;</span>
+<a name="l00025"></a>00025 
+<a name="l00033"></a>00033 <span class="keywordtype">void</span>
+<a name="l00034"></a><a class="code" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">00034</a> <a class="code" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">lms_strstrip</a>(<span class="keywordtype">char</span> *str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len)
+<a name="l00035"></a>00035 {
+<a name="l00036"></a>00036     <span class="keywordtype">int</span> i, len;
+<a name="l00037"></a>00037     <span class="keywordtype">char</span> *p;
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039     len = *p_len;
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041     <span class="keywordflow">if</span> (len == 0)
+<a name="l00042"></a>00042         <span class="keywordflow">return</span>;
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044     <span class="keywordflow">if</span> (*str == <span class="charliteral">'\0'</span>) {
+<a name="l00045"></a>00045         *p_len = 0;
+<a name="l00046"></a>00046         <span class="keywordflow">return</span>;
+<a name="l00047"></a>00047     }
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049     p = str + len - 1;
+<a name="l00050"></a>00050     <span class="keywordflow">for</span> (i = len - 1; i &gt;= 0; i--) {
+<a name="l00051"></a>00051         <span class="keywordflow">if</span> (isspace(*p) || *p == <span class="charliteral">'\0'</span>) {
+<a name="l00052"></a>00052             *p = <span class="charliteral">'\0'</span>;
+<a name="l00053"></a>00053             len--;
+<a name="l00054"></a>00054             p--;
+<a name="l00055"></a>00055         } <span class="keywordflow">else</span>
+<a name="l00056"></a>00056             <span class="keywordflow">break</span>;
+<a name="l00057"></a>00057     }
+<a name="l00058"></a>00058     <span class="keywordflow">if</span> (len == 0) {
+<a name="l00059"></a>00059         *p_len = 0;
+<a name="l00060"></a>00060         <span class="keywordflow">return</span>;
+<a name="l00061"></a>00061     }
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063     p = str;
+<a name="l00064"></a>00064     <span class="keywordflow">for</span> (i = 0; i &lt; len; i++) {
+<a name="l00065"></a>00065         <span class="keywordflow">if</span> (isspace(*p))
+<a name="l00066"></a>00066             p++;
+<a name="l00067"></a>00067         <span class="keywordflow">else</span>
+<a name="l00068"></a>00068             <span class="keywordflow">break</span>;
+<a name="l00069"></a>00069     }
+<a name="l00070"></a>00070     len -= i;
+<a name="l00071"></a>00071     <span class="keywordflow">if</span> (len == 0) {
+<a name="l00072"></a>00072         *str = <span class="charliteral">'\0'</span>;
+<a name="l00073"></a>00073         *p_len = 0;
+<a name="l00074"></a>00074         <span class="keywordflow">return</span>;
+<a name="l00075"></a>00075     }
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077     *p_len = len;
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079     <span class="keywordflow">if</span> (str &lt; p)
+<a name="l00080"></a>00080         <span class="keywordflow">for</span> (; len &gt;= 0; len--, str++, p++)
+<a name="l00081"></a>00081             *str = *p;
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083 
+<a name="l00093"></a>00093 <span class="keywordtype">void</span>
+<a name="l00094"></a><a class="code" href="lightmediascanner__utils_8c.html#45d15c8bfeddaef0d5b1d0bd9ecc0c79">00094</a> <a class="code" href="lightmediascanner__utils_8c.html#45d15c8bfeddaef0d5b1d0bd9ecc0c79">lms_strstrip_and_free</a>(<span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096     <span class="keywordflow">if</span> (!*p_str)
+<a name="l00097"></a>00097         <span class="keywordflow">return</span>;
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099     <a class="code" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">lms_strstrip</a>(*p_str, p_len);
+<a name="l00100"></a>00100     <span class="keywordflow">if</span> (*p_len == 0) {
+<a name="l00101"></a>00101         free(*p_str);
+<a name="l00102"></a>00102         *p_str = NULL;
+<a name="l00103"></a>00103     }
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105 
+<a name="l00113"></a>00113 <span class="keywordtype">void</span>
+<a name="l00114"></a><a class="code" href="lightmediascanner__utils_8h.html#5a7e5da69500a12f447a77177dbb6e0d">00114</a> <a class="code" href="lightmediascanner__utils_8c.html#9ed157dee5c16f4c62c5ae6e281580cf">lms_string_size_strip_and_free</a>(<span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *p)
+<a name="l00115"></a>00115 {
+<a name="l00116"></a>00116     <span class="keywordflow">if</span> (!p-&gt;<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>)
+<a name="l00117"></a>00117         <span class="keywordflow">return</span>;
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119     <a class="code" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">lms_strstrip</a>(p-&gt;<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>, &amp;p-&gt;<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a>);
+<a name="l00120"></a>00120     <span class="keywordflow">if</span> (p-&gt;<a class="code" href="structlms__string__size.html#fc37b712d71c2010e655bbd4f0a22e96">len</a> == 0) {
+<a name="l00121"></a>00121         free(p-&gt;<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>);
+<a name="l00122"></a>00122         p-&gt;<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a> = NULL;
+<a name="l00123"></a>00123     }
+<a name="l00124"></a>00124 }
+<a name="l00125"></a>00125 
+<a name="l00126"></a>00126 
+<a name="l00137"></a>00137 <span class="keywordtype">int</span>
+<a name="l00138"></a><a class="code" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">00138</a> <a class="code" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">lms_which_extension</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> name_len, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *exts, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> exts_len) {
+<a name="l00139"></a>00139     <span class="keywordtype">int</span> i;
+<a name="l00140"></a>00140     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *exts_pos;
+<a name="l00141"></a>00141     <span class="keyword">const</span> <span class="keywordtype">char</span> *s;
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143     exts_pos = alloca(exts_len * <span class="keyword">sizeof</span>(*exts_pos));
+<a name="l00144"></a>00144     <span class="keywordflow">for</span> (i = 0; i &lt; exts_len; i++)
+<a name="l00145"></a>00145         exts_pos[i] = exts[i].len;
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147     <span class="keywordflow">for</span> (s = name + name_len - 1; s &gt;= name; s--) {
+<a name="l00148"></a>00148         <span class="keywordtype">int</span> i, match;
+<a name="l00149"></a>00149         <span class="keywordtype">char</span> c1, c2;
+<a name="l00150"></a>00150 
+<a name="l00151"></a>00151         c1 = *s;
+<a name="l00152"></a>00152         <span class="keywordflow">if</span> (c1 &gt;= <span class="charliteral">'a'</span>)
+<a name="l00153"></a>00153             c2 = c1;
+<a name="l00154"></a>00154         <span class="keywordflow">else</span>
+<a name="l00155"></a>00155             c2 = <span class="charliteral">'a'</span> + c1 - <span class="charliteral">'A'</span>;
+<a name="l00156"></a>00156 
+<a name="l00157"></a>00157         match = 0;
+<a name="l00158"></a>00158         <span class="keywordflow">for</span> (i = 0; i &lt; exts_len; i++) {
+<a name="l00159"></a>00159             <span class="keywordflow">if</span> (exts_pos[i] &gt; 0) {
+<a name="l00160"></a>00160                 <span class="keywordtype">char</span> ce;
+<a name="l00161"></a>00161 
+<a name="l00162"></a>00162                 ce = exts[i].<a class="code" href="structlms__string__size.html#5f4844463b193dadb2286e69200ce8a7">str</a>[exts_pos[i] - 1];
+<a name="l00163"></a>00163                 <span class="keywordflow">if</span> (ce == c1 || ce == c2) {
+<a name="l00164"></a>00164                     <span class="keywordflow">if</span> (exts_pos[i] == 1)
+<a name="l00165"></a>00165                         <span class="keywordflow">return</span> i;
+<a name="l00166"></a>00166                     exts_pos[i]--;
+<a name="l00167"></a>00167                     match = 1;
+<a name="l00168"></a>00168                 } <span class="keywordflow">else</span>
+<a name="l00169"></a>00169                     exts_pos[i] = 0;
+<a name="l00170"></a>00170             }
+<a name="l00171"></a>00171         }
+<a name="l00172"></a>00172         <span class="keywordflow">if</span> (!match)
+<a name="l00173"></a>00173             <span class="keywordflow">return</span> -1;
+<a name="l00174"></a>00174     }
+<a name="l00175"></a>00175 
+<a name="l00176"></a>00176     <span class="keywordflow">return</span> -1;
+<a name="l00177"></a>00177 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 041b6ad..5235f6b 100644 (file)
@@ -4,29 +4,31 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_utils.c File Reference</h1><code>#include &lt;<a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>&gt;</code><br>
 <code>#include &lt;ctype.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
 <code>#include &lt;alloca.h&gt;</code><br>
 
 <p>
-Include dependency graph for lightmediascanner_utils.c:<p><center><img src="lightmediascanner__utils_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_utils.c_map" alt=""></center>
+<div class="dynheader">
+Include dependency graph for lightmediascanner_utils.c:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__utils_8c__incl.png" border="0" usemap="#src/lib/lightmediascanner_utils.c_map" alt=""></center>
 <map name="src/lib/lightmediascanner_utils.c_map">
-<area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="249,5,407,32"></map>
+<area shape="rect" href="lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="5,84,197,110"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__utils_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -34,10 +36,54 @@ Include dependency graph for lightmediascanner_utils.c:<p><center><img src="ligh
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">lms_strstrip</a> (char *str, unsigned int *p_len)</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8c.html#45d15c8bfeddaef0d5b1d0bd9ecc0c79">lms_strstrip_and_free</a> (char **p_str, unsigned int *p_len)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8c.html#9ed157dee5c16f4c62c5ae6e281580cf">lms_string_size_strip_and_free</a> (struct <a class="el" href="structlms__string__size.html">lms_string_size</a> *p)</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">lms_which_extension</a> (const char *name, unsigned int name_len, const struct <a class="el" href="structlms__string__size.html">lms_string_size</a> *exts, unsigned int exts_len)</td></tr>
 
 </table>
 <hr><h2>Function Documentation</h2>
+<a class="anchor" name="9ed157dee5c16f4c62c5ae6e281580cf"></a><!-- doxytag: member="lightmediascanner_utils.c::lms_string_size_strip_and_free" ref="9ed157dee5c16f4c62c5ae6e281580cf" args="(struct lms_string_size *p)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lms_string_size_strip_and_free           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structlms__string__size.html">lms_string_size</a> *&nbsp;</td>
+          <td class="paramname"> <em>p</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<a class="el" href="structlms__string__size.html">lms_string_size</a> version of <a class="el" href="lightmediascanner__utils_8c.html#45d15c8bfeddaef0d5b1d0bd9ecc0c79">lms_strstrip_and_free()</a>.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*p</em>&nbsp;</td><td>pointer to <a class="el" href="structlms__string__size.html">lms_string_size</a> to be stripped.</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>this will call free() on lms_string_size-&gt;str if it becomes empty. </dd></dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8c-source.html#l00114">114</a> of file <a class="el" href="lightmediascanner__utils_8c-source.html">lightmediascanner_utils.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__utils_8h-source.html#l00051">lms_string_size::len</a>, <a class="el" href="lightmediascanner__utils_8c-source.html#l00034">lms_strstrip()</a>, and <a class="el" href="lightmediascanner__utils_8h-source.html#l00050">lms_string_size::str</a>.</p>
+
+<p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.png" border="0" usemap="#lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph_map" alt=""></center>
+<map name="lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph_map">
+<area shape="rect" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6" title="lms_strstrip" alt="" coords="281,5,380,32"></map>
+</div>
+
+</div>
+</div><p>
 <a class="anchor" name="086d2449129976541c66a83984bffbe6"></a><!-- doxytag: member="lightmediascanner_utils.c::lms_strstrip" ref="086d2449129976541c66a83984bffbe6" args="(char *str, unsigned int *p_len)" -->
 <div class="memitem">
 <div class="memproto">
@@ -57,14 +103,18 @@ Include dependency graph for lightmediascanner_utils.c:<p><center><img src="ligh
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Strips string, in place.<p>
+Copyright (C) 2007 by INdT<p>
+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>
+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>
+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>
+<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; Strips string, in place.</dd></dl>
 <dl compact><dt><b>Parameters:</b></dt><dd>
   <table border="0" cellspacing="2" cellpadding="0">
     <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string to be stripped. </td></tr>
@@ -72,8 +122,60 @@ Strips string, in place.<p>
   </table>
 </dl>
 
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8c-source.html#l00034">34</a> of file <a class="el" href="lightmediascanner__utils_8c-source.html">lightmediascanner_utils.c</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__utils_8c-source.html#l00114">lms_string_size_strip_and_free()</a>, and <a class="el" href="lightmediascanner__utils_8c-source.html#l00094">lms_strstrip_and_free()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="45d15c8bfeddaef0d5b1d0bd9ecc0c79"></a><!-- doxytag: member="lightmediascanner_utils.c::lms_strstrip_and_free" ref="45d15c8bfeddaef0d5b1d0bd9ecc0c79" args="(char **p_str, unsigned int *p_len)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lms_strstrip_and_free           </td>
+          <td>(</td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>p_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int *&nbsp;</td>
+          <td class="paramname"> <em>p_len</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+If string exists, strips it, in place, free if *p_len = 0<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>p_str</em>&nbsp;</td><td>pointer to string to be stripped. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>p_len</em>&nbsp;</td><td>string length to analyse, also the place where the final size is stored.</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>this will call free() on *p_str if it becomes empty. </dd></dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8c-source.html#l00094">94</a> of file <a class="el" href="lightmediascanner__utils_8c-source.html">lightmediascanner_utils.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__utils_8c-source.html#l00034">lms_strstrip()</a>.</p>
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__utils_8c-source.html#l00013">13</a> of file <a class="el" href="lightmediascanner__utils_8c-source.html">lightmediascanner_utils.c</a>.
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.png" border="0" usemap="#lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph_map" alt=""></center>
+<map name="lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph_map">
+<area shape="rect" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6" title="lms_strstrip" alt="" coords="223,5,321,32"></map>
+</div>
+
 </div>
 </div><p>
 <a class="anchor" name="71ee8b57cf7c5eba8ec0593e756d2529"></a><!-- doxytag: member="lightmediascanner_utils.c::lms_which_extension" ref="71ee8b57cf7c5eba8ec0593e756d2529" args="(const char *name, unsigned int name_len, const struct lms_string_size *exts, unsigned int exts_len)" -->
@@ -107,7 +209,7 @@ Definition at line <a class="el" href="lightmediascanner__utils_8c-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -125,14 +227,15 @@ Find out which of the given extensions matches the given name.<p>
 </dl>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>index in <code>exts</code> or -1 if it doesn't match none. </dd></dl>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8c-source.html#l00069">69</a> of file <a class="el" href="lightmediascanner__utils_8c-source.html">lightmediascanner_utils.c</a>.
-<p>
-References <a class="el" href="lightmediascanner__utils_8h-source.html#l00050">lms_string_size::str</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8c-source.html#l00138">138</a> of file <a class="el" href="lightmediascanner__utils_8c-source.html">lightmediascanner_utils.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__utils_8h-source.html#l00050">lms_string_size::str</a>.</p>
+
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:57 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
diff --git a/www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.map b/www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.map
new file mode 100644 (file)
index 0000000..ee39702
--- /dev/null
@@ -0,0 +1 @@
+<area shape="rect" href="$lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6" title="lms_strstrip" alt="" coords="223,5,321,32">
diff --git a/www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.md5 b/www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.md5
new file mode 100644 (file)
index 0000000..d7e44d0
--- /dev/null
@@ -0,0 +1 @@
+72bdbbcc143b3b97c8fea244d43482b0
\ No newline at end of file
diff --git a/www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.png b/www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.png
new file mode 100644 (file)
index 0000000..d9c14de
Binary files /dev/null and b/www/api/lightmediascanner__utils_8c_45d15c8bfeddaef0d5b1d0bd9ecc0c79_cgraph.png differ
diff --git a/www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.map b/www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.map
new file mode 100644 (file)
index 0000000..f411cc3
--- /dev/null
@@ -0,0 +1 @@
+<area shape="rect" href="$lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6" title="lms_strstrip" alt="" coords="281,5,380,32">
diff --git a/www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.md5 b/www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.md5
new file mode 100644 (file)
index 0000000..325b6f3
--- /dev/null
@@ -0,0 +1 @@
+24da7041fa9ee873d9835dfd0e9a5326
\ No newline at end of file
diff --git a/www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.png b/www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.png
new file mode 100644 (file)
index 0000000..e544027
Binary files /dev/null and b/www/api/lightmediascanner__utils_8c_9ed157dee5c16f4c62c5ae6e281580cf_cgraph.png differ
index 4ead8cf..cc8a2f8 100644 (file)
@@ -1 +1 @@
-<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="249,5,407,32">
+<area shape="rect" href="$lightmediascanner__utils_8h.html" title="lightmediascanner_utils.h" alt="" coords="5,84,197,110">
index ad1fc86..95ef88f 100644 (file)
@@ -1 +1 @@
-adc98e112bb9938acab1c866f3f8d1b8
\ No newline at end of file
+b3a85badbf3d629e2c7716abbe7dd5f1
\ No newline at end of file
index c24d1cb..6410c66 100644 (file)
Binary files a/www/api/lightmediascanner__utils_8c__incl.png and b/www/api/lightmediascanner__utils_8c__incl.png differ
index a813c99..e07333f 100644 (file)
@@ -4,21 +4,16 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 <h1>src/lib/lightmediascanner_utils.h</h1><a href="lightmediascanner__utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_UTILS_H_</span>
 <a name="l00022"></a><a class="code" href="lightmediascanner__utils_8h.html#8ad3460b8bb014878af2cdfd42fcf5c6">00022</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_UTILS_H_ 1</span>
 <a name="l00056"></a>00056 <span class="preprocessor"></span>
 <a name="l00057"></a>00057 
 <a name="l00058"></a>00058     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6">lms_strstrip</a>(<span class="keywordtype">char</span> *str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
-<a name="l00059"></a>00059     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">lms_which_extension</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> name_len, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *exts, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> exts_len) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 3);
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061 
+<a name="l00059"></a>00059     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="lightmediascanner__utils_8c.html#45d15c8bfeddaef0d5b1d0bd9ecc0c79">lms_strstrip_and_free</a>(<span class="keywordtype">char</span> **p_str, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *p_len) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
+<a name="l00060"></a>00060     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">void</span> <a class="code" href="lightmediascanner__utils_8c.html#9ed157dee5c16f4c62c5ae6e281580cf">lms_string_size_strip_and_free</a>(<span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *p) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
+<a name="l00061"></a>00061     <a class="code" href="lightmediascanner_8h.html#d8ce4efaa307683d3d763b37b4711c53">API</a> <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__utils_8c.html#71ee8b57cf7c5eba8ec0593e756d2529">lms_which_extension</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> name_len, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlms__string__size.html">lms_string_size</a> *exts, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> exts_len) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 3);
 <a name="l00062"></a>00062 
-<a name="l00063"></a>00063 <span class="preprocessor">#ifdef __cplusplus</span>
-<a name="l00064"></a>00064 <span class="preprocessor"></span>}
-<a name="l00065"></a>00065 <span class="preprocessor">#endif</span>
-<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_UTILS_H_ */</span>
-</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by&nbsp;
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00066"></a>00066 <span class="preprocessor"></span>}
+<a name="l00067"></a>00067 <span class="preprocessor">#endif</span>
+<a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_UTILS_H_ */</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:53 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index f788ac2..6d205d2 100644 (file)
@@ -4,26 +4,27 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li class="current"><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
-    <li><a href="globals.html"><span>Globals</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>src/lib/lightmediascanner_utils.h File Reference</h1>
 <p>
-This graph shows which files directly or indirectly include this file:<p><center><img src="lightmediascanner__utils_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_utils.hdep_map" alt=""></center>
+<div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__utils_8h__dep__incl.png" border="0" usemap="#src/lib/lightmediascanner_utils.hdep_map" alt=""></center>
 <map name="src/lib/lightmediascanner_utils.hdep_map">
-<area shape="rect" href="lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="255,81,441,108"><area shape="rect" href="lightmediascanner__utils_8c.html" title="src/lib/lightmediascanner_utils.c" alt="" coords="251,132,445,159"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="499,5,720,32"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="497,56,721,83"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="495,107,724,133"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="499,157,720,184"></map>
+<area shape="rect" href="lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="465,84,687,111"><area shape="rect" href="lightmediascanner__utils_8c.html" title="src/lib/lightmediascanner_utils.c" alt="" coords="711,84,943,111"><area shape="rect" href="lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="5,162,269,188"><area shape="rect" href="lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="293,162,563,188"><area shape="rect" href="lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="587,162,861,188"><area shape="rect" href="lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="885,162,1149,188"></map>
+</div>
 
 <p>
 <a href="lightmediascanner__utils_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
@@ -45,7 +46,11 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8h.html#281568969e526a7bdf687da4d1cc75ab">lms_strstrip</a> (char *str, unsigned int *p_len) GNUC_NON_NULL(1</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">API void API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8h.html#92c63007e7d04f626cafc6eef48f7022">lms_which_extension</a> (const char *name, unsigned int name_len, const struct <a class="el" href="structlms__string__size.html">lms_string_size</a> *exts, unsigned int exts_len) GNUC_NON_NULL(1</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API void API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8h.html#01cee33e2410ae7081905a4e06d890cc">lms_strstrip_and_free</a> (char **p_str, unsigned int *p_len) GNUC_NON_NULL(1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API void API void API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8h.html#5a7e5da69500a12f447a77177dbb6e0d">lms_string_size_strip_and_free</a> (struct <a class="el" href="structlms__string__size.html">lms_string_size</a> *p) GNUC_NON_NULL(1)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__utils_8h.html#7dfc23066442e00fff5cbe77e6f1426e">lms_which_extension</a> (const char *name, unsigned int name_len, const struct <a class="el" href="structlms__string__size.html">lms_string_size</a> *exts, unsigned int exts_len) GNUC_NON_NULL(1</td></tr>
 
 </table>
 <hr><h2>Define Documentation</h2>
@@ -64,11 +69,11 @@ This graph shows which files directly or indirectly include this file:<p><center
 Copyright (C) 2007 by INdT<p>
 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>
 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>
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<p>
+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>
 <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>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00022">22</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="d8ce4efaa307683d3d763b37b4711c53"></a><!-- doxytag: member="lightmediascanner_utils.h::API" ref="d8ce4efaa307683d3d763b37b4711c53" args="" -->
@@ -84,8 +89,8 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00040">40</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00040">40</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="6fe68cac0abf3e2ca61141920414e93a"></a><!-- doxytag: member="lightmediascanner_utils.h::GNUC_NON_NULL" ref="6fe68cac0abf3e2ca61141920414e93a" args="(...)" -->
@@ -98,7 +103,7 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
           <td class="paramtype"> <em>...</em>&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -106,8 +111,8 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00041">41</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00041">41</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="13a0622cfcc91eec261da4285621bdcc"></a><!-- doxytag: member="lightmediascanner_utils.h::LMS_ARRAY_SIZE" ref="13a0622cfcc91eec261da4285621bdcc" args="(a)" -->
@@ -120,7 +125,7 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
           <td class="paramtype">a&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%">&nbsp;&nbsp;&nbsp;(sizeof(a) / sizeof(*a))</td>
+          <td>&nbsp;&nbsp;&nbsp;(sizeof(a) / sizeof(*a))</td>
         </tr>
       </table>
 </div>
@@ -128,8 +133,8 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00055">55</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00055">55</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="786c453d995be000d52360f327a6816b"></a><!-- doxytag: member="lightmediascanner_utils.h::LMS_STATIC_STRING_SIZE" ref="786c453d995be000d52360f327a6816b" args="(s)" -->
@@ -142,7 +147,7 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
           <td class="paramtype">s&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%">&nbsp;&nbsp;&nbsp;{s, sizeof(s) - 1}</td>
+          <td>&nbsp;&nbsp;&nbsp;{s, sizeof(s) - 1}</td>
         </tr>
       </table>
 </div>
@@ -150,11 +155,51 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00054">54</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00054">54</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.</p>
+
 </div>
 </div><p>
 <hr><h2>Function Documentation</h2>
+<a class="anchor" name="5a7e5da69500a12f447a77177dbb6e0d"></a><!-- doxytag: member="lightmediascanner_utils.h::lms_string_size_strip_and_free" ref="5a7e5da69500a12f447a77177dbb6e0d" args="(struct lms_string_size *p) GNUC_NON_NULL(1)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">API void API void API void lms_string_size_strip_and_free           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structlms__string__size.html">lms_string_size</a> *&nbsp;</td>
+          <td class="paramname"> <em>p</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<a class="el" href="structlms__string__size.html">lms_string_size</a> version of <a class="el" href="lightmediascanner__utils_8c.html#45d15c8bfeddaef0d5b1d0bd9ecc0c79">lms_strstrip_and_free()</a>.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*p</em>&nbsp;</td><td>pointer to <a class="el" href="structlms__string__size.html">lms_string_size</a> to be stripped.</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>this will call free() on lms_string_size-&gt;str if it becomes empty. </dd></dl>
+
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8c-source.html#l00114">114</a> of file <a class="el" href="lightmediascanner__utils_8c-source.html">lightmediascanner_utils.c</a>.</p>
+
+<p>References <a class="el" href="lightmediascanner__utils_8h-source.html#l00051">lms_string_size::len</a>, <a class="el" href="lightmediascanner__utils_8c-source.html#l00034">lms_strstrip()</a>, and <a class="el" href="lightmediascanner__utils_8h-source.html#l00050">lms_string_size::str</a>.</p>
+
+<p>
+<div class="dynheader">
+Here is the call graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.png" border="0" usemap="#lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph_map" alt=""></center>
+<map name="lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph_map">
+<area shape="rect" href="lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6" title="lms_strstrip" alt="" coords="281,5,380,32"></map>
+</div>
+
+</div>
+</div><p>
 <a class="anchor" name="281568969e526a7bdf687da4d1cc75ab"></a><!-- doxytag: member="lightmediascanner_utils.h::lms_strstrip" ref="281568969e526a7bdf687da4d1cc75ab" args="(char *str, unsigned int *p_len) GNUC_NON_NULL(1" -->
 <div class="memitem">
 <div class="memproto">
@@ -174,7 +219,36 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="01cee33e2410ae7081905a4e06d890cc"></a><!-- doxytag: member="lightmediascanner_utils.h::lms_strstrip_and_free" ref="01cee33e2410ae7081905a4e06d890cc" args="(char **p_str, unsigned int *p_len) GNUC_NON_NULL(1" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">API void API void lms_strstrip_and_free           </td>
+          <td>(</td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>p_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int *&nbsp;</td>
+          <td class="paramname"> <em>p_len</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -184,12 +258,12 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
 
 </div>
 </div><p>
-<a class="anchor" name="92c63007e7d04f626cafc6eef48f7022"></a><!-- doxytag: member="lightmediascanner_utils.h::lms_which_extension" ref="92c63007e7d04f626cafc6eef48f7022" args="(const char *name, unsigned int name_len, const struct lms_string_size *exts, unsigned int exts_len) GNUC_NON_NULL(1" -->
+<a class="anchor" name="7dfc23066442e00fff5cbe77e6f1426e"></a><!-- doxytag: member="lightmediascanner_utils.h::lms_which_extension" ref="7dfc23066442e00fff5cbe77e6f1426e" args="(const char *name, unsigned int name_len, const struct lms_string_size *exts, unsigned int exts_len) GNUC_NON_NULL(1" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">API void API int lms_which_extension           </td>
+          <td class="memname">API int lms_which_extension           </td>
           <td>(</td>
           <td class="paramtype">const char *&nbsp;</td>
           <td class="paramname"> <em>name</em>, </td>
@@ -215,7 +289,7 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -225,8 +299,9 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
 
 </div>
 </div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:57 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
diff --git a/www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.map b/www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.map
new file mode 100644 (file)
index 0000000..f411cc3
--- /dev/null
@@ -0,0 +1 @@
+<area shape="rect" href="$lightmediascanner__utils_8c.html#086d2449129976541c66a83984bffbe6" title="lms_strstrip" alt="" coords="281,5,380,32">
diff --git a/www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.md5 b/www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.md5
new file mode 100644 (file)
index 0000000..325b6f3
--- /dev/null
@@ -0,0 +1 @@
+24da7041fa9ee873d9835dfd0e9a5326
\ No newline at end of file
diff --git a/www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.png b/www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.png
new file mode 100644 (file)
index 0000000..e544027
Binary files /dev/null and b/www/api/lightmediascanner__utils_8h_5a7e5da69500a12f447a77177dbb6e0d_cgraph.png differ
index 39a63d3..7197d83 100644 (file)
@@ -1,6 +1,6 @@
-<area shape="rect" href="$lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="255,81,441,108">
-<area shape="rect" href="$lightmediascanner__utils_8c.html" title="src/lib/lightmediascanner_utils.c" alt="" coords="251,132,445,159">
-<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="499,5,720,32">
-<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="497,56,721,83">
-<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="495,107,724,133">
-<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="499,157,720,184">
+<area shape="rect" href="$lightmediascanner__db_8h.html" title="src/lib/lightmediascanner_db.h" alt="" coords="465,84,687,111">
+<area shape="rect" href="$lightmediascanner__utils_8c.html" title="src/lib/lightmediascanner_utils.c" alt="" coords="711,84,943,111">
+<area shape="rect" href="$lightmediascanner__db__audio_8c.html" title="src/lib/lightmediascanner_db_audio.c" alt="" coords="5,162,269,188">
+<area shape="rect" href="$lightmediascanner__db__image_8c.html" title="src/lib/lightmediascanner_db_image.c" alt="" coords="293,162,563,188">
+<area shape="rect" href="$lightmediascanner__db__playlist_8c.html" title="src/lib/lightmediascanner_db_playlist.c" alt="" coords="587,162,861,188">
+<area shape="rect" href="$lightmediascanner__db__video_8c.html" title="src/lib/lightmediascanner_db_video.c" alt="" coords="885,162,1149,188">
index f3955cd..def2241 100644 (file)
@@ -1 +1 @@
-6c1cec54a95c40d2c24f0fa27d3ca603
\ No newline at end of file
+df8726f7d7945e004c69a7d7dafc25fb
\ No newline at end of file
index c9c7883..27bbe4b 100644 (file)
Binary files a/www/api/lightmediascanner__utils_8h__dep__incl.png and b/www/api/lightmediascanner__utils_8h__dep__incl.png differ
index 33ea460..725f4b3 100644 (file)
@@ -4,23 +4,27 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li class="current"><a href="modules.html"><span>Modules</span></a></li>
-    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
 </div>
-<h1>Light Media Scanner Modules</h1>Here is a list of all modules:<ul>
+<div class="contents">
+<h1>Modules</h1>Here is a list of all modules:<ul>
 <li><a class="el" href="group__LMS__API.html">User-API</a>
 <li><a class="el" href="group__LMS__CHARSET.html">Charset Conversion</a>
 <li><a class="el" href="group__LMS__DB.html">DataBase-API</a>
 <li><a class="el" href="group__LMS__Plugin.html">Plugins-API</a>
 </ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
diff --git a/www/api/structcinfo.html b/www/api/structcinfo.html
new file mode 100644 (file)
index 0000000..50f4a9c
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Light Media Scanner: cinfo Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>cinfo Struct Reference</h1><!-- doxytag: class="cinfo" --><code>#include &lt;<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Collaboration diagram for cinfo:</div>
+<div class="dynsection">
+<p><center><img src="structcinfo__coll__graph.png" border="0" usemap="#cinfo__coll__map" alt="Collaboration graph"></center>
+<map name="cinfo__coll__map">
+<area shape="rect" href="structlms.html" title="{lms\n|+ parsers\l+ n_parsers\l+ cs_conv\l+ db_path\l+ slave_timeout\l+ cb\l+ data\l+ free_data\l+ progress\l+ commit_interval\l+ is_processing\l+ stop_processing\l|}" alt="" coords="60,483,204,758"><area shape="rect" href="structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="171,280,267,398"><area shape="rect" href="structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="175,7,263,194"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<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="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">lms</a></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00049">49</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="eff7e00325ac7d8674f42f4bfc198b5a"></a><!-- doxytag: member="cinfo::lms" ref="eff7e00325ac7d8674f42f4bfc198b5a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structlms.html">lms_t</a>* <a class="el" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">cinfo::lms</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00050">50</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00900">lms_check()</a>, <a class="el" href="lightmediascanner__check_8c-source.html#l00949">lms_check_single_process()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00634">lms_create_slave()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l01002">lms_process()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
+</div>
+</div><p>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li>src/lib/<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
diff --git a/www/api/structcinfo__coll__graph.map b/www/api/structcinfo__coll__graph.map
new file mode 100644 (file)
index 0000000..973a609
--- /dev/null
@@ -0,0 +1,3 @@
+<area shape="rect" href="$structlms.html" title="{lms\n|+ parsers\l+ n_parsers\l+ cs_conv\l+ db_path\l+ slave_timeout\l+ cb\l+ data\l+ free_data\l+ progress\l+ commit_interval\l+ is_processing\l+ stop_processing\l|}" alt="" coords="60,483,204,758">
+<area shape="rect" href="$structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="171,280,267,398">
+<area shape="rect" href="$structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="175,7,263,194">
diff --git a/www/api/structcinfo__coll__graph.md5 b/www/api/structcinfo__coll__graph.md5
new file mode 100644 (file)
index 0000000..d2c5f44
--- /dev/null
@@ -0,0 +1 @@
+d66944abf653c4abbaeca0b632cb80f3
\ No newline at end of file
diff --git a/www/api/structcinfo__coll__graph.png b/www/api/structcinfo__coll__graph.png
new file mode 100644 (file)
index 0000000..57148f2
Binary files /dev/null and b/www/api/structcinfo__coll__graph.png differ
index a6a24c9..995d98b 100644 (file)
@@ -4,22 +4,25 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>fds Struct Reference</h1><!-- doxytag: class="fds" --><code>#include &lt;<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00044">44</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00044">44</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="c49bfa8d58564d4c483eb434b9ff5710"></a><!-- doxytag: member="fds::r" ref="c49bfa8d58564d4c483eb434b9ff5710" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -49,10 +50,10 @@ Definition at line <a class="el" href="lightmediascanner__private_8h-source.html
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00045">45</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00577">lms_create_pipes()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00045">45</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00607">lms_create_pipes()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="d13e19697072e306771103286a8316d0"></a><!-- doxytag: member="fds::w" ref="d13e19697072e306771103286a8316d0" args="" -->
@@ -68,16 +69,17 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l005
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00046">46</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00577">lms_create_pipes()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00046">46</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00607">lms_create_pipes()</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:58 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index e72fd70..1618b5e 100644 (file)
@@ -4,31 +4,38 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>lms Struct Reference</h1><!-- doxytag: class="lms" --><code>#include &lt;<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>&gt;</code>
 <p>
-Collaboration diagram for lms:<p><center><img src="structlms__coll__graph.png" border="0" usemap="#lms__coll__map" alt="Collaboration graph"></center>
+<div class="dynheader">
+Collaboration diagram for lms:</div>
+<div class="dynsection">
+<p><center><img src="structlms__coll__graph.png" border="0" usemap="#lms__coll__map" alt="Collaboration graph"></center>
 <map name="lms__coll__map">
-<area shape="rect" href="structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="23,245,108,357"><area shape="rect" title="parsers" alt="" coords="61,353,69,361"><area shape="rect" title="parsers" alt="" coords="61,417,69,425"><area shape="rect" href="structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="25,5,105,181"><area shape="rect" title="plugin" alt="" coords="61,177,69,185"><area shape="rect" title="plugin" alt="" coords="61,241,69,249"></map>
-<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<area shape="rect" href="structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="171,280,267,398"><area shape="rect" href="structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="175,7,263,194"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structparser.html">parser</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structparser.html">parser</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a></td></tr>
 
@@ -38,17 +45,27 @@ Collaboration diagram for lms:<p><center><img src="structlms__coll__graph.png" b
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap>struct {</td></tr>
+
+<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="structlms.html#94615d22fba40d580a8a0055d28221c4">cb</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;void *&nbsp;&nbsp;&nbsp;<a class="el" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">free_data</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap valign="top">}&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a></td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>:1</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a>:1</td></tr>
+
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00064">64</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00076">76</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="52883423c9a1276420ba2bb9b50a138c"></a><!-- doxytag: member="lms::parsers" ref="52883423c9a1276420ba2bb9b50a138c" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -62,10 +79,10 @@ Definition at line <a class="el" href="lightmediascanner__private_8h-source.html
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00065">65</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618">lms_check()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00190">lms_parser_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_parser_del()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00249">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00387">lms_parsers_run()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00293">lms_parsers_setup()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00319">lms_parsers_start()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00077">77</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00219">lms_parser_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00318">lms_parser_del()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00278">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00387">lms_parsers_run()</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>
+
 </div>
 </div><p>
 <a class="anchor" name="9cdd3a937a0a2bd4515e9e888bb519e3"></a><!-- doxytag: member="lms::n_parsers" ref="9cdd3a937a0a2bd4515e9e888bb519e3" args="" -->
@@ -81,10 +98,10 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00066">66</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00190">lms_parser_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_parser_del()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00249">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00387">lms_parsers_run()</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>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00078">78</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00219">lms_parser_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00318">lms_parser_del()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00278">lms_parser_del_int()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00387">lms_parsers_run()</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>
+
 </div>
 </div><p>
 <a class="anchor" name="eba2db305bafddedf143ff7b9f2396db"></a><!-- doxytag: member="lms::cs_conv" ref="eba2db305bafddedf143ff7b9f2396db" args="" -->
@@ -100,10 +117,10 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_f
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00067">67</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00451">lms_charset_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00474">lms_charset_del()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00079">79</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00480">lms_charset_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00503">lms_charset_del()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="02e767169813808f193c23733ba89b4b"></a><!-- doxytag: member="lms::db_path" ref="02e767169813808f193c23733ba89b4b" args="" -->
@@ -119,10 +136,10 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00451">lms_c
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00068">68</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00340">lms_get_db_path()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00080">80</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00369">lms_get_db_path()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="0f545adf2fc37994b7f55f7ea7aac555"></a><!-- doxytag: member="lms::slave_timeout" ref="0f545adf2fc37994b7f55f7ea7aac555" args="" -->
@@ -138,10 +155,84 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_f
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00081">81</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00391">lms_get_slave_timeout()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00411">lms_set_slave_timeout()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="94615d22fba40d580a8a0055d28221c4"></a><!-- doxytag: member="lms::cb" ref="94615d22fba40d580a8a0055d28221c4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> <a class="el" href="structlms.html#94615d22fba40d580a8a0055d28221c4">lms::cb</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00083">83</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00193">lms_set_progress_callback()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="2416f15bfd15aaa5e75606b5a0686362"></a><!-- doxytag: member="lms::data" ref="2416f15bfd15aaa5e75606b5a0686362" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* <a class="el" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">lms::data</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00084">84</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00193">lms_set_progress_callback()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3f04a1830b8ffa69c9da089b7e6fb258"></a><!-- doxytag: member="lms::free_data" ref="3f04a1830b8ffa69c9da089b7e6fb258" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a> <a class="el" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">lms::free_data</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00069">69</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00085">85</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00193">lms_set_progress_callback()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3f4bc299aa74c9255b730e106e0e7a8f"></a><!-- doxytag: member="lms::progress" ref="3f4bc299aa74c9255b730e106e0e7a8f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct { ... }   <a class="el" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">lms::progress</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00362">lms_get_slave_timeout()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00382">lms_set_slave_timeout()</a>.
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00193">lms_set_progress_callback()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="1dc82aac2ab3ff643027878bb1aa3cb8"></a><!-- doxytag: member="lms::commit_interval" ref="1dc82aac2ab3ff643027878bb1aa3cb8" args="" -->
@@ -157,10 +248,10 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00362">lms_g
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00070">70</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00404">lms_get_commit_interval()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00427">lms_set_commit_interval()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00087">87</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00433">lms_get_commit_interval()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00119">lms_new()</a>, and <a class="el" href="lightmediascanner_8c-source.html#l00456">lms_set_commit_interval()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="bb03533445b77299e964b2ec02bca039"></a><!-- doxytag: member="lms::is_processing" ref="bb03533445b77299e964b2ec02bca039" args="" -->
@@ -176,16 +267,36 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00404">lms_g
 
 <p>
 
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00088">88</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00900">lms_check()</a>, <a class="el" href="lightmediascanner__check_8c-source.html#l00949">lms_check_single_process()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00350">lms_is_processing()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00219">lms_parser_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00318">lms_parser_del()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l01079">lms_stop_processing()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d028e3681568215f6facd7d477c74461"></a><!-- doxytag: member="lms::stop_processing" ref="d028e3681568215f6facd7d477c74461" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int <a class="el" href="structlms.html#d028e3681568215f6facd7d477c74461">lms::stop_processing</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
 <p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00071">71</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618">lms_check()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00157">lms_free()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00321">lms_is_processing()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00190">lms_parser_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_parser_del()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00089">89</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00900">lms_check()</a>, <a class="el" href="lightmediascanner__check_8c-source.html#l00949">lms_check_single_process()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l01079">lms_stop_processing()</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 45588c3..e5de8c0 100644 (file)
@@ -4,42 +4,49 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>lms_audio_info Struct Reference<br>
 <small>
 [<a class="el" href="group__LMS__DB.html">DataBase-API</a>]</small>
 </h1><!-- doxytag: class="lms_audio_info" --><code>#include &lt;<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>&gt;</code>
 <p>
-Collaboration diagram for lms_audio_info:<p><center><img src="structlms__audio__info__coll__graph.png" border="0" usemap="#lms__audio__info__coll__map" alt="Collaboration graph"></center>
+<div class="dynheader">
+Collaboration diagram for lms_audio_info:</div>
+<div class="dynsection">
+<p><center><img src="structlms__audio__info__coll__graph.png" border="0" usemap="#lms__audio__info__coll__map" alt="Collaboration graph"></center>
 <map name="lms__audio__info__coll__map">
-<area shape="rect" href="structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="5,5,109,101"><area shape="rect" title="title\nartist\nalbum\ngenre" alt="" coords="53,97,61,105"><area shape="rect" title="title\nartist\nalbum\ngenre" alt="" coords="53,209,61,217"></map>
-<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<area shape="rect" href="structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="5,6,128,107"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#b59ffe210521786be5fe579167b24bc4">id</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">title</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#c87982b6b219add6aff3ce9c25fe00bf">title</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">artist</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#6f9fa88539da4867bc34fa1e7c17816c">artist</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#caeda14ddf0051e9dd69861171fb66a2">album</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#72efb9991c5f49eabd62aa61ead91031">genre</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#72efb9991c5f49eabd62aa61ead91031">genre</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__audio__info.html#7197e471d313274c4e361b2ff9e60e8a">playcnt</a></td></tr>
 
@@ -50,10 +57,8 @@ Collaboration diagram for lms_audio_info:<p><center><img src="structlms__audio__
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00086">86</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00086">86</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="b59ffe210521786be5fe579167b24bc4"></a><!-- doxytag: member="lms_audio_info::id" ref="b59ffe210521786be5fe579167b24bc4" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -67,10 +72,10 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00087">87</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00648">lms_db_audio_add()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00087">87</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l00694">lms_db_audio_add()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="c87982b6b219add6aff3ce9c25fe00bf"></a><!-- doxytag: member="lms_audio_info::title" ref="c87982b6b219add6aff3ce9c25fe00bf" args="" -->
@@ -86,8 +91,8 @@ Referenced by <a class="el" href="lightmediascanner__db__audio_8c-source.html#l0
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00088">88</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00088">88</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="6f9fa88539da4867bc34fa1e7c17816c"></a><!-- doxytag: member="lms_audio_info::artist" ref="6f9fa88539da4867bc34fa1e7c17816c" args="" -->
@@ -103,8 +108,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00089">89</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00089">89</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="caeda14ddf0051e9dd69861171fb66a2"></a><!-- doxytag: member="lms_audio_info::album" ref="caeda14ddf0051e9dd69861171fb66a2" args="" -->
@@ -120,8 +125,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00090">90</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00090">90</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="72efb9991c5f49eabd62aa61ead91031"></a><!-- doxytag: member="lms_audio_info::genre" ref="72efb9991c5f49eabd62aa61ead91031" args="" -->
@@ -137,8 +142,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00091">91</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00091">91</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="7197e471d313274c4e361b2ff9e60e8a"></a><!-- doxytag: member="lms_audio_info::playcnt" ref="7197e471d313274c4e361b2ff9e60e8a" args="" -->
@@ -154,8 +159,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00092">92</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00092">92</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="d372f08ada955f75be8f218d90093242"></a><!-- doxytag: member="lms_audio_info::trackno" ref="d372f08ada955f75be8f218d90093242" args="" -->
@@ -171,8 +176,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00093">93</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00093">93</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="932e73ccd8ff946831930be65d1ba2d2"></a><!-- doxytag: member="lms_audio_info::rating" ref="932e73ccd8ff946831930be65d1ba2d2" args="" -->
@@ -188,14 +193,15 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00094">94</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00094">94</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 689b1a2..d575274 100644 (file)
@@ -1,3 +1 @@
-<area shape="rect" href="$structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="5,5,109,101">
-<area shape="rect" title="title\nartist\nalbum\ngenre" alt="" coords="53,97,61,105">
-<area shape="rect" title="title\nartist\nalbum\ngenre" alt="" coords="53,209,61,217">
+<area shape="rect" href="$structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="5,6,128,107">
index 6e0ee24..5aa8b41 100644 (file)
@@ -1 +1 @@
-c7008461ae99ff64e800f12d9eac3b09
\ No newline at end of file
+e0be3b7945b4f70a98ee5623dfde7333
\ No newline at end of file
index e265082..075ad36 100644 (file)
Binary files a/www/api/structlms__audio__info__coll__graph.png and b/www/api/structlms__audio__info__coll__graph.png differ
index 99644d7..6b15570 100644 (file)
@@ -1,6 +1,2 @@
-<area shape="rect" href="$structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="23,245,108,357">
-<area shape="rect" title="parsers" alt="" coords="61,353,69,361">
-<area shape="rect" title="parsers" alt="" coords="61,417,69,425">
-<area shape="rect" href="$structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="25,5,105,181">
-<area shape="rect" title="plugin" alt="" coords="61,177,69,185">
-<area shape="rect" title="plugin" alt="" coords="61,241,69,249">
+<area shape="rect" href="$structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="171,280,267,398">
+<area shape="rect" href="$structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="175,7,263,194">
index bb8a9c0..bafff2e 100644 (file)
@@ -1 +1 @@
-56358638e762e6352c9d8267ea330915
\ No newline at end of file
+75efd8910a178f7b8b334455f4f34abf
\ No newline at end of file
index 2d9f909..3d2b095 100644 (file)
Binary files a/www/api/structlms__coll__graph.png and b/www/api/structlms__coll__graph.png differ
index cd1df77..8a27932 100644 (file)
@@ -4,24 +4,32 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>lms_context Struct Reference</h1><!-- doxytag: class="lms_context" --><code>#include &lt;<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>&gt;</code>
 <p>
+<div class="dynheader">
+Collaboration diagram for lms_context:</div>
+<div class="dynsection">
+<p><center><img src="structlms__context__coll__graph.png" border="0" usemap="#lms__context__coll__map" alt="Collaboration graph"></center>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00143">143</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00143">143</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="310d38a2fab9ecea67601d0c6a3d8d81"></a><!-- doxytag: member="lms_context::db" ref="310d38a2fab9ecea67601d0c6a3d8d81" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -49,8 +55,8 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 database instance 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00144">144</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00144">144</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="a5ce50393bbe62f6357934a1d9ce5a61"></a><!-- doxytag: member="lms_context::cs_conv" ref="a5ce50393bbe62f6357934a1d9ce5a61" args="" -->
@@ -66,14 +72,15 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 charset conversion tool 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00145">145</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00145">145</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
diff --git a/www/api/structlms__context__coll__graph.map b/www/api/structlms__context__coll__graph.map
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/www/api/structlms__context__coll__graph.md5 b/www/api/structlms__context__coll__graph.md5
new file mode 100644 (file)
index 0000000..5226f3d
--- /dev/null
@@ -0,0 +1 @@
+2b9e69086ae997b1388bfb3cf5516287
\ No newline at end of file
diff --git a/www/api/structlms__context__coll__graph.png b/www/api/structlms__context__coll__graph.png
new file mode 100644 (file)
index 0000000..12733c2
Binary files /dev/null and b/www/api/structlms__context__coll__graph.png differ
index a08f905..3ee893b 100644 (file)
@@ -4,41 +4,46 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>lms_db_cache Struct Reference</h1><!-- doxytag: class="lms_db_cache" --><code>#include &lt;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&gt;</code>
 <p>
-Collaboration diagram for lms_db_cache:<p><center><img src="structlms__db__cache__coll__graph.png" border="0" usemap="#lms__db__cache__coll__map" alt="Collaboration graph"></center>
+<div class="dynheader">
+Collaboration diagram for lms_db_cache:</div>
+<div class="dynsection">
+<p><center><img src="structlms__db__cache__coll__graph.png" border="0" usemap="#lms__db__cache__coll__map" alt="Collaboration graph"></center>
 <map name="lms__db__cache__coll__map">
-<area shape="rect" href="structlms__db__cache__entry.html" title="{lms_db_cache_entry\n|+ db\l+ data\l|}" alt="" coords="5,5,136,101"><area shape="rect" title="entries" alt="" coords="67,97,75,105"><area shape="rect" title="entries" alt="" coords="67,161,75,169"></map>
-<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<area shape="rect" href="structlms__db__cache__entry.html" title="{lms_db_cache_entry\n|+ db\l+ data\l|}" alt="" coords="5,5,165,107"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__db__cache.html#b325e01e42fd3b0f11d52328522c6414">size</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__db__cache__entry.html">lms_db_cache_entry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__db__cache__entry.html">lms_db_cache_entry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__db__cache.html#0056bfe95b38863dc9b067d699230690">entries</a></td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00062">62</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00062">62</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="b325e01e42fd3b0f11d52328522c6414"></a><!-- doxytag: member="lms_db_cache::size" ref="b325e01e42fd3b0f11d52328522c6414" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -52,10 +57,10 @@ Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00063">63</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">lms_db_cache_add()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00417">lms_db_cache_del()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00063">63</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">lms_db_cache_add()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00437">lms_db_cache_del()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="0056bfe95b38863dc9b067d699230690"></a><!-- doxytag: member="lms_db_cache::entries" ref="0056bfe95b38863dc9b067d699230690" args="" -->
@@ -71,16 +76,17 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00064">64</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00417">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00442">lms_db_cache_get()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00064">64</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00437">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00462">lms_db_cache_get()</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 45a2167..452b56b 100644 (file)
@@ -1,3 +1 @@
-<area shape="rect" href="$structlms__db__cache__entry.html" title="{lms_db_cache_entry\n|+ db\l+ data\l|}" alt="" coords="5,5,136,101">
-<area shape="rect" title="entries" alt="" coords="67,97,75,105">
-<area shape="rect" title="entries" alt="" coords="67,161,75,169">
+<area shape="rect" href="$structlms__db__cache__entry.html" title="{lms_db_cache_entry\n|+ db\l+ data\l|}" alt="" coords="5,5,165,107">
index 48211c2..5c50bfa 100644 (file)
@@ -1 +1 @@
-5d26d8dd87da6e66eaffed71640915d7
\ No newline at end of file
+e804c7879db75bc661f4f6c4594184b0
\ No newline at end of file
index d99c733..44b56a2 100644 (file)
Binary files a/www/api/structlms__db__cache__coll__graph.png and b/www/api/structlms__db__cache__coll__graph.png differ
index b293ccd..5f8926b 100644 (file)
@@ -4,22 +4,25 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>lms_db_cache_entry Struct Reference</h1><!-- doxytag: class="lms_db_cache_entry" --><code>#include &lt;<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00057">57</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00057">57</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="01aadf6d9a8161696019d39566b15760"></a><!-- doxytag: member="lms_db_cache_entry::db" ref="01aadf6d9a8161696019d39566b15760" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -49,10 +50,10 @@ Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00058">58</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">lms_db_cache_add()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00058">58</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">lms_db_cache_add()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="53488063740ff72c830be3103e7150fe"></a><!-- doxytag: member="lms_db_cache_entry::data" ref="53488063740ff72c830be3103e7150fe" args="" -->
@@ -68,16 +69,17 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00059">59</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00387">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00417">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00442">lms_db_cache_get()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db__private_8h-source.html#l00059">59</a> of file <a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00407">lms_db_cache_add()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00437">lms_db_cache_del()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00462">lms_db_cache_get()</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__db__private_8h-source.html">lightmediascanner_db_private.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index e364ff2..018b8f1 100644 (file)
@@ -4,22 +4,25 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>lms_file_info Struct Reference</h1><!-- doxytag: class="lms_file_info" --><code>#include &lt;<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00133">133</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00133">133</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="1fa6966afec95bbb00ee01f345948e44"></a><!-- doxytag: member="lms_file_info::path" ref="1fa6966afec95bbb00ee01f345948e44" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -59,10 +60,10 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 file path 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00134">134</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00134">134</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="9d74df2696cfd0f516e61e9db2b35731"></a><!-- doxytag: member="lms_file_info::path_len" ref="9d74df2696cfd0f516e61e9db2b35731" args="" -->
@@ -78,10 +79,10 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 path length 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00135">135</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00135">135</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="ccc82711360714ff6ccd373fb7a42112"></a><!-- doxytag: member="lms_file_info::base" ref="ccc82711360714ff6ccd373fb7a42112" args="" -->
@@ -97,10 +98,10 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 index of basename inside path 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00136">136</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00136">136</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="d68ded5c64ae28a4976637f8483e9cfe"></a><!-- doxytag: member="lms_file_info::id" ref="d68ded5c64ae28a4976637f8483e9cfe" args="" -->
@@ -116,10 +117,10 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l003
 
 <p>
 database id 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">137</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00697">lms_db_delete_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">lms_db_set_file_dtime()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">lms_db_update_file_info()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00137">137</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00717">lms_db_delete_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">lms_db_set_file_dtime()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">lms_db_update_file_info()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="4aa878eefdde84541021087192b9dacd"></a><!-- doxytag: member="lms_file_info::mtime" ref="4aa878eefdde84541021087192b9dacd" args="" -->
@@ -135,10 +136,10 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 in-disk modification time 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00138">138</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">lms_db_update_file_info()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00138">138</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">lms_db_update_file_info()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="570ae808983e67ae7b22a2fec892cffd"></a><!-- doxytag: member="lms_file_info::dtime" ref="570ae808983e67ae7b22a2fec892cffd" args="" -->
@@ -154,10 +155,10 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 deletion time 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">139</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00727">lms_db_set_file_dtime()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">lms_db_update_file_info()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00139">139</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00747">lms_db_set_file_dtime()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">lms_db_update_file_info()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="b318b81fc934636a904f5d84efe8c1ee"></a><!-- doxytag: member="lms_file_info::size" ref="b318b81fc934636a904f5d84efe8c1ee" args="" -->
@@ -173,16 +174,17 @@ Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l
 
 <p>
 file size in bytes 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00140">140</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00567">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00653">lms_db_insert_file_info()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00609">lms_db_update_file_info()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00140">140</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__common_8c-source.html#l00587">lms_db_get_file_info()</a>, <a class="el" href="lightmediascanner__db__common_8c-source.html#l00673">lms_db_insert_file_info()</a>, and <a class="el" href="lightmediascanner__db__common_8c-source.html#l00629">lms_db_update_file_info()</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 8bdcb40..72a61e3 100644 (file)
@@ -4,22 +4,25 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>lms_gps_info Struct Reference<br>
 <small>
 [<a class="el" href="group__LMS__DB.html">DataBase-API</a>]</small>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00061">61</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00061">61</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="70f152098accf3d46f18bc159e3b4359"></a><!-- doxytag: member="lms_gps_info::latitude" ref="70f152098accf3d46f18bc159e3b4359" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -54,8 +55,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00062">62</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00062">62</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="109202a83eb79b9a10df135600260e1b"></a><!-- doxytag: member="lms_gps_info::longitude" ref="109202a83eb79b9a10df135600260e1b" args="" -->
@@ -71,8 +72,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00063">63</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00063">63</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="9b56b5dbae3e5c5722f7331c2bcbd520"></a><!-- doxytag: member="lms_gps_info::altitude" ref="9b56b5dbae3e5c5722f7331c2bcbd520" args="" -->
@@ -88,14 +89,15 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00064">64</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00064">64</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 18be860..12774a1 100644 (file)
@@ -4,38 +4,45 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>lms_image_info Struct Reference<br>
 <small>
 [<a class="el" href="group__LMS__DB.html">DataBase-API</a>]</small>
 </h1><!-- doxytag: class="lms_image_info" --><code>#include &lt;<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>&gt;</code>
 <p>
-Collaboration diagram for lms_image_info:<p><center><img src="structlms__image__info__coll__graph.png" border="0" usemap="#lms__image__info__coll__map" alt="Collaboration graph"></center>
+<div class="dynheader">
+Collaboration diagram for lms_image_info:</div>
+<div class="dynsection">
+<p><center><img src="structlms__image__info__coll__graph.png" border="0" usemap="#lms__image__info__coll__map" alt="Collaboration graph"></center>
 <map name="lms__image__info__coll__map">
-<area shape="rect" href="structlms__gps__info.html" title="{lms_gps_info\n|+ latitude\l+ longitude\l+ altitude\l|}" alt="" coords="5,5,99,117"><area shape="rect" title="gps" alt="" coords="63,113,71,121"><area shape="rect" title="gps" alt="" coords="84,193,92,201"><area shape="rect" href="structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="123,13,227,109"><area shape="rect" title="title\nartist" alt="" coords="157,105,165,113"><area shape="rect" title="title\nartist" alt="" coords="135,193,143,201"></map>
-<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<area shape="rect" href="structlms__gps__info.html" title="{lms_gps_info\n|+ latitude\l+ longitude\l+ altitude\l|}" alt="" coords="5,7,109,124"><area shape="rect" href="structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="133,15,256,116"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#e6af5a9d85600a7694991681d141844b">id</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#6242d231ae1972fb25bdaeed614d7a63">title</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#6242d231ae1972fb25bdaeed614d7a63">title</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">artist</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#ee7b8401f3272a0855ea27a2249a8aab">artist</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#150973d3ac9f60f1b74f0a0d08c7f288">date</a></td></tr>
 
@@ -45,15 +52,13 @@ Collaboration diagram for lms_image_info:<p><center><img src="structlms__image__
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#434330468b69d0f14b344c672d4778af">orientation</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__gps__info.html">lms_gps_info</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__gps__info.html">lms_gps_info</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__image__info.html#2f003c2cfb937ed5d667a188ba0d54e3">gps</a></td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00067">67</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00067">67</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="e6af5a9d85600a7694991681d141844b"></a><!-- doxytag: member="lms_image_info::id" ref="e6af5a9d85600a7694991681d141844b" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -67,10 +72,10 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00068">68</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__image_8c-source.html#l00273">lms_db_image_add()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00068">68</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__image_8c-source.html#l00293">lms_db_image_add()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="6242d231ae1972fb25bdaeed614d7a63"></a><!-- doxytag: member="lms_image_info::title" ref="6242d231ae1972fb25bdaeed614d7a63" args="" -->
@@ -86,8 +91,8 @@ Referenced by <a class="el" href="lightmediascanner__db__image_8c-source.html#l0
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00069">69</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00069">69</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="ee7b8401f3272a0855ea27a2249a8aab"></a><!-- doxytag: member="lms_image_info::artist" ref="ee7b8401f3272a0855ea27a2249a8aab" args="" -->
@@ -103,8 +108,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00070">70</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00070">70</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="150973d3ac9f60f1b74f0a0d08c7f288"></a><!-- doxytag: member="lms_image_info::date" ref="150973d3ac9f60f1b74f0a0d08c7f288" args="" -->
@@ -120,8 +125,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00071">71</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00071">71</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="fbd2df9f6f5f290ac02ce4d803677249"></a><!-- doxytag: member="lms_image_info::width" ref="fbd2df9f6f5f290ac02ce4d803677249" args="" -->
@@ -137,8 +142,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00072">72</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00072">72</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f2ae81781dadf7ecaa307b3bc91e710e"></a><!-- doxytag: member="lms_image_info::height" ref="f2ae81781dadf7ecaa307b3bc91e710e" args="" -->
@@ -154,8 +159,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00073">73</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00073">73</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="434330468b69d0f14b344c672d4778af"></a><!-- doxytag: member="lms_image_info::orientation" ref="434330468b69d0f14b344c672d4778af" args="" -->
@@ -171,8 +176,8 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00074">74</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00074">74</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="2f003c2cfb937ed5d667a188ba0d54e3"></a><!-- doxytag: member="lms_image_info::gps" ref="2f003c2cfb937ed5d667a188ba0d54e3" args="" -->
@@ -188,14 +193,15 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l000
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00075">75</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00075">75</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 4d1fd17..2eacc33 100644 (file)
@@ -1,6 +1,2 @@
-<area shape="rect" href="$structlms__gps__info.html" title="{lms_gps_info\n|+ latitude\l+ longitude\l+ altitude\l|}" alt="" coords="5,5,99,117">
-<area shape="rect" title="gps" alt="" coords="63,113,71,121">
-<area shape="rect" title="gps" alt="" coords="84,193,92,201">
-<area shape="rect" href="$structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="123,13,227,109">
-<area shape="rect" title="title\nartist" alt="" coords="157,105,165,113">
-<area shape="rect" title="title\nartist" alt="" coords="135,193,143,201">
+<area shape="rect" href="$structlms__gps__info.html" title="{lms_gps_info\n|+ latitude\l+ longitude\l+ altitude\l|}" alt="" coords="5,7,109,124">
+<area shape="rect" href="$structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="133,15,256,116">
index bed778b..64b1201 100644 (file)
@@ -1 +1 @@
-ca323b96e715712e3e3f470c8b804d76
\ No newline at end of file
+99371c771b39a024f9b4b7298cf782c8
\ No newline at end of file
index fa7d7bf..a16123c 100644 (file)
Binary files a/www/api/structlms__image__info__coll__graph.png and b/www/api/structlms__image__info__coll__graph.png differ
index 6579024..2c33627 100644 (file)
@@ -4,46 +4,51 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>lms_playlist_info Struct Reference<br>
 <small>
 [<a class="el" href="group__LMS__DB.html">DataBase-API</a>]</small>
 </h1><!-- doxytag: class="lms_playlist_info" --><code>#include &lt;<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>&gt;</code>
 <p>
-Collaboration diagram for lms_playlist_info:<p><center><img src="structlms__playlist__info__coll__graph.png" border="0" usemap="#lms__playlist__info__coll__map" alt="Collaboration graph"></center>
+<div class="dynheader">
+Collaboration diagram for lms_playlist_info:</div>
+<div class="dynsection">
+<p><center><img src="structlms__playlist__info__coll__graph.png" border="0" usemap="#lms__playlist__info__coll__map" alt="Collaboration graph"></center>
 <map name="lms__playlist__info__coll__map">
-<area shape="rect" href="structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="11,5,115,101"><area shape="rect" title="title" alt="" coords="59,97,67,105"><area shape="rect" title="title" alt="" coords="59,161,67,169"></map>
-<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<area shape="rect" href="structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="8,6,131,107"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__playlist__info.html#c1b12bb87ec0bdbc356a6f6ce9b7eebf">id</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__playlist__info.html#515e63ba413a60d21ee73687151387f0">title</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__playlist__info.html#515e63ba413a60d21ee73687151387f0">title</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__playlist__info.html#81cc52f5b6ce04cd64cf3884cb774663">n_entries</a></td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00119">119</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00119">119</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="c1b12bb87ec0bdbc356a6f6ce9b7eebf"></a><!-- doxytag: member="lms_playlist_info::id" ref="c1b12bb87ec0bdbc356a6f6ce9b7eebf" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -57,10 +62,10 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l001
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00120">120</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00237">lms_db_playlist_add()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00120">120</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__playlist_8c-source.html#l00257">lms_db_playlist_add()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="515e63ba413a60d21ee73687151387f0"></a><!-- doxytag: member="lms_playlist_info::title" ref="515e63ba413a60d21ee73687151387f0" args="" -->
@@ -76,8 +81,8 @@ Referenced by <a class="el" href="lightmediascanner__db__playlist_8c-source.html
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00121">121</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00121">121</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="81cc52f5b6ce04cd64cf3884cb774663"></a><!-- doxytag: member="lms_playlist_info::n_entries" ref="81cc52f5b6ce04cd64cf3884cb774663" args="" -->
@@ -93,14 +98,15 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l001
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00122">122</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00122">122</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 38594d2..d211c68 100644 (file)
@@ -1,3 +1 @@
-<area shape="rect" href="$structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="11,5,115,101">
-<area shape="rect" title="title" alt="" coords="59,97,67,105">
-<area shape="rect" title="title" alt="" coords="59,161,67,169">
+<area shape="rect" href="$structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="8,6,131,107">
index c80de5d..3cfa451 100644 (file)
@@ -1 +1 @@
-ede7ac5cfd36a43bf5db1e6c87fe9f7a
\ No newline at end of file
+478d04b378df976299f9ea51b47f3f5b
\ No newline at end of file
index c5f4b8e..5fe9577 100644 (file)
Binary files a/www/api/structlms__playlist__info__coll__graph.png and b/www/api/structlms__playlist__info__coll__graph.png differ
index ca276a4..de71f81 100644 (file)
@@ -4,22 +4,25 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
-</div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
 <h1>lms_plugin Struct Reference</h1><!-- doxytag: class="lms_plugin" --><code>#include &lt;<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#2048d92b3d8918a6a2bb2cf39a375e9a">name</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">lms_plugin_match_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">match</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">lms_plugin_match_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">match</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lms_plugin_parse_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">parse</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lms_plugin_parse_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">parse</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lms_plugin_close_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">close</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lms_plugin_close_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">close</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lms_plugin_setup_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">setup</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lms_plugin_setup_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">setup</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lms_plugin_start_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">start</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lms_plugin_start_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">start</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lms_plugin_finish_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lms_plugin_finish_fn_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">finish</a></td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00155">155</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00155">155</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="2048d92b3d8918a6a2bb2cf39a375e9a"></a><!-- doxytag: member="lms_plugin::name" ref="2048d92b3d8918a6a2bb2cf39a375e9a" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -59,8 +60,10 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 plugin name 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00156">156</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00156">156</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</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>
+
 </div>
 </div><p>
 <a class="anchor" name="5b532e6e50911f02fd9e123489c62a0f"></a><!-- doxytag: member="lms_plugin::match" ref="5b532e6e50911f02fd9e123489c62a0f" args="" -->
@@ -68,7 +71,7 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#4374f28037e503b570592aed72a27c15">lms_plugin_match_fn_t</a> <a class="el" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">lms_plugin::match</a>          </td>
+          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#558e8f031ecb3e6b8adf7d98f3e4fcd6">lms_plugin_match_fn_t</a> <a class="el" href="structlms__plugin.html#5b532e6e50911f02fd9e123489c62a0f">lms_plugin::match</a>          </td>
         </tr>
       </table>
 </div>
@@ -76,10 +79,10 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 check match 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00157">157</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00157">157</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="0d3361b489eb7c7c4ecc7917c0390b9e"></a><!-- doxytag: member="lms_plugin::parse" ref="0d3361b489eb7c7c4ecc7917c0390b9e" args="" -->
@@ -87,7 +90,7 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l003
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#cc0d2d6d376ca4abd084ad313b4d479c">lms_plugin_parse_fn_t</a> <a class="el" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">lms_plugin::parse</a>          </td>
+          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#649350fd7015fa63ca86c43906c3f175">lms_plugin_parse_fn_t</a> <a class="el" href="structlms__plugin.html#0d3361b489eb7c7c4ecc7917c0390b9e">lms_plugin::parse</a>          </td>
         </tr>
       </table>
 </div>
@@ -95,10 +98,10 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l003
 
 <p>
 parse matched file 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00158">158</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00387">lms_parsers_run()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00158">158</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00387">lms_parsers_run()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="4921b3b79c7ecdddbe9f1a7c9f5019c7"></a><!-- doxytag: member="lms_plugin::close" ref="4921b3b79c7ecdddbe9f1a7c9f5019c7" args="" -->
@@ -106,7 +109,7 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l003
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#8ce53e0b14aa220d76d552882c1150a4">lms_plugin_close_fn_t</a> <a class="el" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">lms_plugin::close</a>          </td>
+          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#44576c68c208c78f34f41fcd6c7c2c4b">lms_plugin_close_fn_t</a> <a class="el" href="structlms__plugin.html#4921b3b79c7ecdddbe9f1a7c9f5019c7">lms_plugin::close</a>          </td>
         </tr>
       </table>
 </div>
@@ -114,8 +117,8 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l003
 
 <p>
 close plugin 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00159">159</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00159">159</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="aeff2e030242ffdf3bdc512a5ef6cbec"></a><!-- doxytag: member="lms_plugin::setup" ref="aeff2e030242ffdf3bdc512a5ef6cbec" args="" -->
@@ -123,7 +126,7 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#a8f0f1499d3cfb5fcd6d25928297f45e">lms_plugin_setup_fn_t</a> <a class="el" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">lms_plugin::setup</a>          </td>
+          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#6bfa82e6e83e85747048f41dfb334acd">lms_plugin_setup_fn_t</a> <a class="el" href="structlms__plugin.html#aeff2e030242ffdf3bdc512a5ef6cbec">lms_plugin::setup</a>          </td>
         </tr>
       </table>
 </div>
@@ -131,10 +134,10 @@ Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#
 
 <p>
 setup (1st phase init) 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00160">160</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00293">lms_parsers_setup()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00160">160</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00293">lms_parsers_setup()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="b3dffd208749a53ad2eb5ffb6d1b7d07"></a><!-- doxytag: member="lms_plugin::start" ref="b3dffd208749a53ad2eb5ffb6d1b7d07" args="" -->
@@ -142,7 +145,7 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l002
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#d3b811bbff952ce44516c98119d91b30">lms_plugin_start_fn_t</a> <a class="el" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">lms_plugin::start</a>          </td>
+          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#875d300da41e72865452c6ae44687b77">lms_plugin_start_fn_t</a> <a class="el" href="structlms__plugin.html#b3dffd208749a53ad2eb5ffb6d1b7d07">lms_plugin::start</a>          </td>
         </tr>
       </table>
 </div>
@@ -150,10 +153,10 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l002
 
 <p>
 start (2nd phase init) 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00161">161</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00319">lms_parsers_start()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00161">161</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00319">lms_parsers_start()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="839d286e12caa0711f3987adb4b803f0"></a><!-- doxytag: member="lms_plugin::finish" ref="839d286e12caa0711f3987adb4b803f0" args="" -->
@@ -161,7 +164,7 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l003
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#b8b7e5fe20b1dcd0fe9ef4e9e5db9fe7">lms_plugin_finish_fn_t</a> <a class="el" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">lms_plugin::finish</a>          </td>
+          <td class="memname"><a class="el" href="lightmediascanner__plugin_8h.html#c72facc8d4fa98f660fd064c80d5b321">lms_plugin_finish_fn_t</a> <a class="el" href="structlms__plugin.html#839d286e12caa0711f3987adb4b803f0">lms_plugin::finish</a>          </td>
         </tr>
       </table>
 </div>
@@ -169,16 +172,17 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l003
 
 <p>
 finish plugin 
-<p>
-Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00162">162</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__plugin_8h-source.html#l00162">162</a> of file <a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</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>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__plugin_8h-source.html">lightmediascanner_plugin.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 985791e..a5712c7 100644 (file)
@@ -4,22 +4,25 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>lms_string_size Struct Reference</h1><!-- doxytag: class="lms_string_size" --><code>#include &lt;<a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>&gt;</code>
 <p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00049">49</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00049">49</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="5f4844463b193dadb2286e69200ce8a7"></a><!-- doxytag: member="lms_string_size::str" ref="5f4844463b193dadb2286e69200ce8a7" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -49,10 +50,10 @@ Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00050">50</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__utils_8c-source.html#l00069">lms_which_extension()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00050">50</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__utils_8c-source.html#l00114">lms_string_size_strip_and_free()</a>, and <a class="el" href="lightmediascanner__utils_8c-source.html#l00138">lms_which_extension()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="fc37b712d71c2010e655bbd4f0a22e96"></a><!-- doxytag: member="lms_string_size::len" ref="fc37b712d71c2010e655bbd4f0a22e96" args="" -->
@@ -68,14 +69,17 @@ Referenced by <a class="el" href="lightmediascanner__utils_8c-source.html#l00069
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00051">51</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__utils_8h-source.html#l00051">51</a> of file <a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__utils_8c-source.html#l00114">lms_string_size_strip_and_free()</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__utils_8h-source.html">lightmediascanner_utils.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 1b3c06e..864cc38 100644 (file)
@@ -4,46 +4,51 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>lms_video_info Struct Reference<br>
 <small>
 [<a class="el" href="group__LMS__DB.html">DataBase-API</a>]</small>
 </h1><!-- doxytag: class="lms_video_info" --><code>#include &lt;<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>&gt;</code>
 <p>
-Collaboration diagram for lms_video_info:<p><center><img src="structlms__video__info__coll__graph.png" border="0" usemap="#lms__video__info__coll__map" alt="Collaboration graph"></center>
+<div class="dynheader">
+Collaboration diagram for lms_video_info:</div>
+<div class="dynsection">
+<p><center><img src="structlms__video__info__coll__graph.png" border="0" usemap="#lms__video__info__coll__map" alt="Collaboration graph"></center>
 <map name="lms__video__info__coll__map">
-<area shape="rect" href="structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="5,5,109,101"><area shape="rect" title="title\nartist" alt="" coords="53,97,61,105"><area shape="rect" title="title\nartist" alt="" coords="53,177,61,185"></map>
-<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<area shape="rect" href="structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="5,5,128,107"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__video__info.html#12b5bc5f8b13bdcb3ee1e919a1e05822">id</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__video__info.html#f3b8a8168ec317daef65da3b06f72bc0">title</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__video__info.html#f3b8a8168ec317daef65da3b06f72bc0">title</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">artist</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlms__string__size.html">lms_string_size</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlms__video__info.html#c0bfe0cf4fe29e3c24a6df4248c7640e">artist</a></td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00105">105</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00105">105</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="12b5bc5f8b13bdcb3ee1e919a1e05822"></a><!-- doxytag: member="lms_video_info::id" ref="12b5bc5f8b13bdcb3ee1e919a1e05822" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -57,10 +62,10 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l001
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00106">106</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__db__video_8c-source.html#l00249">lms_db_video_add()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00106">106</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__db__video_8c-source.html#l00269">lms_db_video_add()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f3b8a8168ec317daef65da3b06f72bc0"></a><!-- doxytag: member="lms_video_info::title" ref="f3b8a8168ec317daef65da3b06f72bc0" args="" -->
@@ -76,8 +81,8 @@ Referenced by <a class="el" href="lightmediascanner__db__video_8c-source.html#l0
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00107">107</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00107">107</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="c0bfe0cf4fe29e3c24a6df4248c7640e"></a><!-- doxytag: member="lms_video_info::artist" ref="c0bfe0cf4fe29e3c24a6df4248c7640e" args="" -->
@@ -93,14 +98,15 @@ Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l001
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00108">108</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__db_8h-source.html#l00108">108</a> of file <a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__db_8h-source.html">lightmediascanner_db.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 9bac214..125f1c6 100644 (file)
@@ -1,3 +1 @@
-<area shape="rect" href="$structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="5,5,109,101">
-<area shape="rect" title="title\nartist" alt="" coords="53,97,61,105">
-<area shape="rect" title="title\nartist" alt="" coords="53,177,61,185">
+<area shape="rect" href="$structlms__string__size.html" title="{lms_string_size\n|+ str\l+ len\l|}" alt="" coords="5,5,128,107">
index 8b2bade..762cb90 100644 (file)
@@ -1 +1 @@
-affb01d2ca5625f9c002e3364b21c1de
\ No newline at end of file
+c02273d822e27764a24ef9fadbf38980
\ No newline at end of file
index 2ba506f..c62e50a 100644 (file)
Binary files a/www/api/structlms__video__info__coll__graph.png and b/www/api/structlms__video__info__coll__graph.png differ
index 627f580..025fa57 100644 (file)
@@ -4,28 +4,35 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>parser Struct Reference</h1><!-- doxytag: class="parser" --><code>#include &lt;<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>&gt;</code>
 <p>
-Collaboration diagram for parser:<p><center><img src="structparser__coll__graph.png" border="0" usemap="#parser__coll__map" alt="Collaboration graph"></center>
+<div class="dynheader">
+Collaboration diagram for parser:</div>
+<div class="dynsection">
+<p><center><img src="structparser__coll__graph.png" border="0" usemap="#parser__coll__map" alt="Collaboration graph"></center>
 <map name="parser__coll__map">
-<area shape="rect" href="structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="8,5,88,181"><area shape="rect" title="plugin" alt="" coords="44,177,52,185"><area shape="rect" title="plugin" alt="" coords="44,241,52,249"></map>
-<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<area shape="rect" href="structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="9,7,97,194"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
 <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="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a></td></tr>
@@ -37,10 +44,8 @@ Collaboration diagram for parser:<p><center><img src="structparser__coll__graph.
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00058">58</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.<hr><h2>Field Documentation</h2>
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00070">70</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+<hr><h2>Field Documentation</h2>
 <a class="anchor" name="6c71e3299d4bac660320e7ca935f9b32"></a><!-- doxytag: member="parser::plugin" ref="6c71e3299d4bac660320e7ca935f9b32" args="" -->
 <div class="memitem">
 <div class="memproto">
@@ -54,10 +59,10 @@ Definition at line <a class="el" href="lightmediascanner__private_8h-source.html
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00059">59</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_parser_del()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00387">lms_parsers_run()</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>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00071">71</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00219">lms_parser_add()</a>, <a class="el" href="lightmediascanner_8c-source.html#l00318">lms_parser_del()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00367">lms_parsers_check_using()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00345">lms_parsers_finish()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00387">lms_parsers_run()</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>
+
 </div>
 </div><p>
 <a class="anchor" name="3dd2a049d1cd9229ec33645e28803e0a"></a><!-- doxytag: member="parser::dl_handle" ref="3dd2a049d1cd9229ec33645e28803e0a" args="" -->
@@ -73,8 +78,8 @@ Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00289">lms_p
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00060">60</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00072">72</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="f29cac42dbdf498606fae3f5b9fc3762"></a><!-- doxytag: member="parser::so_path" ref="f29cac42dbdf498606fae3f5b9fc3762" args="" -->
@@ -90,16 +95,17 @@ Definition at line <a class="el" href="lightmediascanner__private_8h-source.html
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00061">61</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00235">lms_parser_find_and_add()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00073">73</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00264">lms_parser_find_and_add()</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index 6512b75..be30f2e 100644 (file)
@@ -1,3 +1 @@
-<area shape="rect" href="$structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="8,5,88,181">
-<area shape="rect" title="plugin" alt="" coords="44,177,52,185">
-<area shape="rect" title="plugin" alt="" coords="44,241,52,249">
+<area shape="rect" href="$structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="9,7,97,194">
index b2625fa..77bbb9b 100644 (file)
@@ -1 +1 @@
-41c356210d44353f0ab99eadd6a24cbd
\ No newline at end of file
+8e425c85a8b02b1c8849b61d62328509
\ No newline at end of file
index 64cf5d8..2ccec59 100644 (file)
Binary files a/www/api/structparser__coll__graph.png and b/www/api/structparser__coll__graph.png differ
index 57bfcd7..b806885 100644 (file)
@@ -4,53 +4,58 @@
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.5.2 -->
-<div class="tabs">
-  <ul>
-    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
-    <li><a href="modules.html"><span>Modules</span></a></li>
-    <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="files.html"><span>Files</span></a></li>
-  </ul>
-</div>
-<div class="tabs">
-  <ul>
-    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
-    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
-    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
-  </ul>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
 </div>
+<div class="contents">
 <h1>pinfo Struct Reference</h1><!-- doxytag: class="pinfo" --><code>#include &lt;<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>&gt;</code>
 <p>
-Collaboration diagram for pinfo:<p><center><img src="structpinfo__coll__graph.png" border="0" usemap="#pinfo__coll__map" alt="Collaboration graph"></center>
+<div class="dynheader">
+Collaboration diagram for pinfo:</div>
+<div class="dynsection">
+<p><center><img src="structpinfo__coll__graph.png" border="0" usemap="#pinfo__coll__map" alt="Collaboration graph"></center>
 <map name="pinfo__coll__map">
-<area shape="rect" href="structlms.html" title="{lms\n|+ parsers\l+ n_parsers\l+ cs_conv\l+ db_path\l+ slave_timeout\l+ commit_interval\l+ is_processing\l|}" alt="" coords="5,421,125,597"><area shape="rect" title="lms" alt="" coords="89,593,97,601"><area shape="rect" title="lms" alt="" coords="116,673,124,681"><area shape="rect" href="structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="23,245,108,357"><area shape="rect" title="parsers" alt="" coords="61,353,69,361"><area shape="rect" title="parsers" alt="" coords="61,417,69,425"><area shape="rect" href="structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="25,5,105,181"><area shape="rect" title="plugin" alt="" coords="61,177,69,185"><area shape="rect" title="plugin" alt="" coords="61,241,69,249"><area shape="rect" href="structfds.html" title="{fds\n|+ r\l+ w\l|}" alt="" coords="149,461,189,557"><area shape="rect" title="slave\nmaster" alt="" coords="160,553,168,561"><area shape="rect" title="slave\nmaster" alt="" coords="147,673,155,681"></map>
-<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<area shape="rect" href="structcinfo.html" title="{cinfo\n|+ lms\l|}" alt="" coords="89,833,148,916"><area shape="rect" href="structlms.html" title="{lms\n|+ parsers\l+ n_parsers\l+ cs_conv\l+ db_path\l+ slave_timeout\l+ cb\l+ data\l+ free_data\l+ progress\l+ commit_interval\l+ is_processing\l+ stop_processing\l|}" alt="" coords="47,483,191,757"><area shape="rect" href="structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="171,280,267,397"><area shape="rect" href="structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="175,7,263,193"><area shape="rect" href="structfds.html" title="{fds\n|+ r\l+ w\l|}" alt="" coords="185,824,231,925"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structfds.html">fds</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structcinfo.html">cinfo</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structfds.html">fds</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">pollfd&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structfds.html">fds</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a></td></tr>
 
-<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="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">lms</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structfds.html">fds</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct pollfd&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a></td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>
-
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00050">50</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.<hr><h2>Field Documentation</h2>
-<a class="anchor" name="246dfd29e81101866ccb01cc70224156"></a><!-- doxytag: member="pinfo::master" ref="246dfd29e81101866ccb01cc70224156" args="" -->
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00054">54</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="46a4fc606bd47def48714760afcbc18b"></a><!-- doxytag: member="pinfo::common" ref="46a4fc606bd47def48714760afcbc18b" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">struct <a class="el" href="structfds.html">fds</a> <a class="el" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">pinfo::master</a><code> [read]</code>          </td>
+          <td class="memname">struct <a class="el" href="structcinfo.html">cinfo</a> <a class="el" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">pinfo::common</a><code> [read]</code>          </td>
         </tr>
       </table>
 </div>
@@ -58,18 +63,18 @@ Definition at line <a class="el" href="lightmediascanner__private_8h-source.html
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00051">51</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00566">lms_close_pipes()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00577">lms_create_pipes()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00604">lms_create_slave()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00641">lms_finish_slave()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00055">55</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00900">lms_check()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00634">lms_create_slave()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l01002">lms_process()</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="62bbc538af7f9e1d6aa9073458d5cc52"></a><!-- doxytag: member="pinfo::slave" ref="62bbc538af7f9e1d6aa9073458d5cc52" args="" -->
+<a class="anchor" name="d31b28f6373d19531cd208c4c2a71a51"></a><!-- doxytag: member="pinfo::child" ref="d31b28f6373d19531cd208c4c2a71a51" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">struct <a class="el" href="structfds.html">fds</a> <a class="el" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">pinfo::slave</a><code> [read]</code>          </td>
+          <td class="memname">pid_t <a class="el" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">pinfo::child</a>          </td>
         </tr>
       </table>
 </div>
@@ -77,18 +82,18 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l005
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00052">52</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00566">lms_close_pipes()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00577">lms_create_pipes()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00604">lms_create_slave()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00056">56</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00634">lms_create_slave()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00671">lms_finish_slave()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00694">lms_restart_slave()</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="ee9c21ae165e7daf968a7ed87c736076"></a><!-- doxytag: member="pinfo::poll" ref="ee9c21ae165e7daf968a7ed87c736076" args="" -->
+<a class="anchor" name="246dfd29e81101866ccb01cc70224156"></a><!-- doxytag: member="pinfo::master" ref="246dfd29e81101866ccb01cc70224156" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">struct pollfd <a class="el" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">pinfo::poll</a><code> [read]</code>          </td>
+          <td class="memname">struct <a class="el" href="structfds.html">fds</a> <a class="el" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">pinfo::master</a><code> [read]</code>          </td>
         </tr>
       </table>
 </div>
@@ -96,18 +101,18 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l005
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00053">53</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00577">lms_create_pipes()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00664">lms_restart_slave()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00057">57</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <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__process_8c-source.html#l00634">lms_create_slave()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00671">lms_finish_slave()</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="9958e1d447ffadf40c871a6cdaa86b4c"></a><!-- doxytag: member="pinfo::lms" ref="9958e1d447ffadf40c871a6cdaa86b4c" args="" -->
+<a class="anchor" name="62bbc538af7f9e1d6aa9073458d5cc52"></a><!-- doxytag: member="pinfo::slave" ref="62bbc538af7f9e1d6aa9073458d5cc52" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structlms.html">lms_t</a>* <a class="el" href="structpinfo.html#9958e1d447ffadf40c871a6cdaa86b4c">pinfo::lms</a>          </td>
+          <td class="memname">struct <a class="el" href="structfds.html">fds</a> <a class="el" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">pinfo::slave</a><code> [read]</code>          </td>
         </tr>
       </table>
 </div>
@@ -115,18 +120,18 @@ Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l005
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00054">54</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618">lms_check()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00604">lms_create_slave()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00821">lms_process()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00058">58</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <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>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00634">lms_create_slave()</a>.</p>
+
 </div>
 </div><p>
-<a class="anchor" name="d31b28f6373d19531cd208c4c2a71a51"></a><!-- doxytag: member="pinfo::child" ref="d31b28f6373d19531cd208c4c2a71a51" args="" -->
+<a class="anchor" name="ee9c21ae165e7daf968a7ed87c736076"></a><!-- doxytag: member="pinfo::poll" ref="ee9c21ae165e7daf968a7ed87c736076" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">pid_t <a class="el" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">pinfo::child</a>          </td>
+          <td class="memname">struct pollfd <a class="el" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">pinfo::poll</a><code> [read]</code>          </td>
         </tr>
       </table>
 </div>
@@ -134,16 +139,17 @@ Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00618
 
 <p>
 
-<p>
-Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00055">55</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.
-<p>
-Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00604">lms_create_slave()</a>, <a class="el" href="lightmediascanner__process_8c-source.html#l00641">lms_finish_slave()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00664">lms_restart_slave()</a>.
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00059">59</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l00607">lms_create_pipes()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l00694">lms_restart_slave()</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li>src/lib/<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a></ul>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 13 02:04:05 2007 for Light Media Scanner by&nbsp;
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
index b5be902..06bfd87 100644 (file)
@@ -1,12 +1,5 @@
-<area shape="rect" href="$structlms.html" title="{lms\n|+ parsers\l+ n_parsers\l+ cs_conv\l+ db_path\l+ slave_timeout\l+ commit_interval\l+ is_processing\l|}" alt="" coords="5,421,125,597">
-<area shape="rect" title="lms" alt="" coords="89,593,97,601">
-<area shape="rect" title="lms" alt="" coords="116,673,124,681">
-<area shape="rect" href="$structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="23,245,108,357">
-<area shape="rect" title="parsers" alt="" coords="61,353,69,361">
-<area shape="rect" title="parsers" alt="" coords="61,417,69,425">
-<area shape="rect" href="$structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="25,5,105,181">
-<area shape="rect" title="plugin" alt="" coords="61,177,69,185">
-<area shape="rect" title="plugin" alt="" coords="61,241,69,249">
-<area shape="rect" href="$structfds.html" title="{fds\n|+ r\l+ w\l|}" alt="" coords="149,461,189,557">
-<area shape="rect" title="slave\nmaster" alt="" coords="160,553,168,561">
-<area shape="rect" title="slave\nmaster" alt="" coords="147,673,155,681">
+<area shape="rect" href="$structcinfo.html" title="{cinfo\n|+ lms\l|}" alt="" coords="89,833,148,916">
+<area shape="rect" href="$structlms.html" title="{lms\n|+ parsers\l+ n_parsers\l+ cs_conv\l+ db_path\l+ slave_timeout\l+ cb\l+ data\l+ free_data\l+ progress\l+ commit_interval\l+ is_processing\l+ stop_processing\l|}" alt="" coords="47,483,191,757">
+<area shape="rect" href="$structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="171,280,267,397">
+<area shape="rect" href="$structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="175,7,263,193">
+<area shape="rect" href="$structfds.html" title="{fds\n|+ r\l+ w\l|}" alt="" coords="185,824,231,925">
index 65651cb..0f0ee74 100644 (file)
@@ -1 +1 @@
-e8aa5ab1319012540c6e71adc8699ec9
\ No newline at end of file
+5afaf47859ff93f3e06aa9d66402d28c
\ No newline at end of file
index 6a7f07e..5d525b5 100644 (file)
Binary files a/www/api/structpinfo__coll__graph.png and b/www/api/structpinfo__coll__graph.png differ
diff --git a/www/api/structsinfo.html b/www/api/structsinfo.html
new file mode 100644 (file)
index 0000000..e6ac2f6
--- /dev/null
@@ -0,0 +1,134 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Light Media Scanner: sinfo Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>sinfo Struct Reference</h1><!-- doxytag: class="sinfo" --><code>#include &lt;<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Collaboration diagram for sinfo:</div>
+<div class="dynsection">
+<p><center><img src="structsinfo__coll__graph.png" border="0" usemap="#sinfo__coll__map" alt="Collaboration graph"></center>
+<map name="sinfo__coll__map">
+<area shape="rect" href="structcinfo.html" title="{cinfo\n|+ lms\l|}" alt="" coords="89,885,148,968"><area shape="rect" href="structlms.html" title="{lms\n|+ parsers\l+ n_parsers\l+ cs_conv\l+ db_path\l+ slave_timeout\l+ cb\l+ data\l+ free_data\l+ progress\l+ commit_interval\l+ is_processing\l+ stop_processing\l|}" alt="" coords="47,482,191,757"><area shape="rect" href="structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="171,280,267,397"><area shape="rect" href="structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="175,6,263,193"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structcinfo.html">cinfo</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">common</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">parser_match</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00063">63</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="aa9d846b49c394348027d31e49c535be"></a><!-- doxytag: member="sinfo::common" ref="aa9d846b49c394348027d31e49c535be" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct <a class="el" href="structcinfo.html">cinfo</a> <a class="el" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">sinfo::common</a><code> [read]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00064">64</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00949">lms_check_single_process()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e15c5adc74f2f712a8becebff37a06d4"></a><!-- doxytag: member="sinfo::db" ref="e15c5adc74f2f712a8becebff37a06d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct <a class="el" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a>* <a class="el" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">sinfo::db</a><code> [read]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00065">65</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="453d67e0467608c10700c7217cfe19fd"></a><!-- doxytag: member="sinfo::parser_match" ref="453d67e0467608c10700c7217cfe19fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void** <a class="el" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">sinfo::parser_match</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00066">66</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4dc79e3c97d069939b8ba2d65d85fa1f"></a><!-- doxytag: member="sinfo::commit_counter" ref="4dc79e3c97d069939b8ba2d65d85fa1f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">sinfo::commit_counter</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="lightmediascanner__private_8h-source.html#l00067">67</a> of file <a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a>.</p>
+
+<p>Referenced by <a class="el" href="lightmediascanner__check_8c-source.html#l00949">lms_check_single_process()</a>, and <a class="el" href="lightmediascanner__process_8c-source.html#l01044">lms_process_single_process()</a>.</p>
+
+</div>
+</div><p>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li>src/lib/<a class="el" href="lightmediascanner__private_8h-source.html">lightmediascanner_private.h</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Oct 5 12:24:59 2008 for Light Media Scanner by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
diff --git a/www/api/structsinfo__coll__graph.map b/www/api/structsinfo__coll__graph.map
new file mode 100644 (file)
index 0000000..86a1c9e
--- /dev/null
@@ -0,0 +1,4 @@
+<area shape="rect" href="$structcinfo.html" title="{cinfo\n|+ lms\l|}" alt="" coords="89,885,148,968">
+<area shape="rect" href="$structlms.html" title="{lms\n|+ parsers\l+ n_parsers\l+ cs_conv\l+ db_path\l+ slave_timeout\l+ cb\l+ data\l+ free_data\l+ progress\l+ commit_interval\l+ is_processing\l+ stop_processing\l|}" alt="" coords="47,482,191,757">
+<area shape="rect" href="$structparser.html" title="{parser\n|+ plugin\l+ dl_handle\l+ so_path\l|}" alt="" coords="171,280,267,397">
+<area shape="rect" href="$structlms__plugin.html" title="{lms_plugin\n|+ name\l+ match\l+ parse\l+ close\l+ setup\l+ start\l+ finish\l|}" alt="" coords="175,6,263,193">
diff --git a/www/api/structsinfo__coll__graph.md5 b/www/api/structsinfo__coll__graph.md5
new file mode 100644 (file)
index 0000000..7f1366e
--- /dev/null
@@ -0,0 +1 @@
+6709f32326a2d1ee2fa7b29b05733490
\ No newline at end of file
diff --git a/www/api/structsinfo__coll__graph.png b/www/api/structsinfo__coll__graph.png
new file mode 100644 (file)
index 0000000..4ffeca7
Binary files /dev/null and b/www/api/structsinfo__coll__graph.png differ
index c37faaf..95f00a9 100644 (file)
@@ -94,7 +94,7 @@ DIV.tabs LI.current SPAN
    padding-bottom   : 6px;
 }
 
-DIV.nav
+DIV.navpath
 {
    background       : none;
    border           : none;
index c9297dd..4a08ef4 100644 (file)
@@ -22,7 +22,9 @@ body {
       Provides an optimized way to recursively scan directories,
       handling the parser in a child process, avoiding breaks of the
       main process when parsers break (quite common with such bad libs
-      and tags).
+      and tags). One can opt to use the single process version, but be
+      aware that if something bad happens during parsing, your
+      application will suffer.
     </p>
     <p>
       Parsers are plugins in the form of shared objects, so it's easy
@@ -75,21 +77,21 @@ body {
         Library:
         <ul>
           <li><a
-                  href="https://garage.maemo.org/frs/shownotes.php?release_id=1252">Last tarball</a></li>
+                  href="https://garage.maemo.org/frs/shownotes.php?release_id=2088">Last tarball (0.2)</a></li>
           <li><code>git clone git://git.profusion.mobi/lightmediascanner.git</code></li>
         </ul>
       </li>
       <li>
         Python bindings:
         <ul>
-          <li><a href="https://garage.maemo.org/frs/shownotes.php?release_id=1253">Last tarball</a></li>
+          <li><a href="https://garage.maemo.org/frs/download.php/4626/lightmediascanner-0.2.0.0.tar.bz2">Last tarball (0.2)</a></li>
           <li><code>git clone git://git.profusion.mobi/python-lightmediascanner.git</code></li>
           </ul>
         </li>
       <li>
         Ruby bindings:
         <ul>
-          <li><a href="https://garage.maemo.org/frs/shownotes.php?release_id=1326">Last tarball</a></li>
+          <li><a href="https://garage.maemo.org/frs/download.php/4627/python-lightmediascanner-0.2.0.tar.gz">Last tarball (0.1)</a></li>
           <li><code>svn co <a
           href="https://garage.maemo.org/svn/lms/ruby-lightmediascanner">https://garage.maemo.org/svn/lms/ruby-lightmediascanner</a></code></li>
           </ul>
diff --git a/www/python-api/api-objects.txt b/www/python-api/api-objects.txt
new file mode 100644 (file)
index 0000000..fec7da0
--- /dev/null
@@ -0,0 +1,36 @@
+lightmediascanner.c_lightmediascanner  lightmediascanner.c_lightmediascanner-module.html
+lightmediascanner.c_lightmediascanner.LightMediaScanner        lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html
+lightmediascanner.c_lightmediascanner.LightMediaScanner.process        lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process
+lightmediascanner.c_lightmediascanner.LightMediaScanner.set_slave_timeout      lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_slave_timeout
+lightmediascanner.c_lightmediascanner.LightMediaScanner.__str__        lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__str__
+lightmediascanner.c_lightmediascanner.LightMediaScanner.commit_interval        lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#commit_interval
+lightmediascanner.c_lightmediascanner.LightMediaScanner.parsers        lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parsers
+lightmediascanner.c_lightmediascanner.LightMediaScanner.check  lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check
+lightmediascanner.c_lightmediascanner.LightMediaScanner.__init__       lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__init__
+lightmediascanner.c_lightmediascanner.LightMediaScanner.get_commit_interval    lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_commit_interval
+lightmediascanner.c_lightmediascanner.LightMediaScanner.__new__        lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__new__
+lightmediascanner.c_lightmediascanner.LightMediaScanner.slave_timeout  lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#slave_timeout
+lightmediascanner.c_lightmediascanner.LightMediaScanner.process_single_process lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process_single_process
+lightmediascanner.c_lightmediascanner.LightMediaScanner.stop_processing        lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#stop_processing
+lightmediascanner.c_lightmediascanner.LightMediaScanner.set_progress_callback  lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_progress_callback
+lightmediascanner.c_lightmediascanner.LightMediaScanner.charset_add    lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_add
+lightmediascanner.c_lightmediascanner.LightMediaScanner.get_slave_timeout      lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_slave_timeout
+lightmediascanner.c_lightmediascanner.LightMediaScanner.is_processing  lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#is_processing
+lightmediascanner.c_lightmediascanner.LightMediaScanner.db_path        lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#db_path
+lightmediascanner.c_lightmediascanner.LightMediaScanner.charset_del    lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_del
+lightmediascanner.c_lightmediascanner.LightMediaScanner.parser_add     lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_add
+lightmediascanner.c_lightmediascanner.LightMediaScanner.parsers_clear  lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parsers_clear
+lightmediascanner.c_lightmediascanner.LightMediaScanner.parser_find_and_add    lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_find_and_add
+lightmediascanner.c_lightmediascanner.LightMediaScanner.parser_del     lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_del
+lightmediascanner.c_lightmediascanner.LightMediaScanner.set_commit_interval    lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_commit_interval
+lightmediascanner.c_lightmediascanner.LightMediaScanner.check_single_process   lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check_single_process
+lightmediascanner.c_lightmediascanner.LightMediaScanner.__repr__       lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__repr__
+lightmediascanner.c_lightmediascanner.LightMediaScanner.delete lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#delete
+lightmediascanner.c_lightmediascanner.Parser   lightmediascanner.c_lightmediascanner.Parser-class.html
+lightmediascanner.c_lightmediascanner.Parser.__new__   lightmediascanner.c_lightmediascanner.Parser-class.html#__new__
+lightmediascanner.c_lightmediascanner.Parser.__str__   lightmediascanner.c_lightmediascanner.Parser-class.html#__str__
+lightmediascanner.c_lightmediascanner.Parser.name      lightmediascanner.c_lightmediascanner.Parser-class.html#name
+lightmediascanner.c_lightmediascanner.Parser.__repr__  lightmediascanner.c_lightmediascanner.Parser-class.html#__repr__
+lightmediascanner.c_lightmediascanner.Parser.delete    lightmediascanner.c_lightmediascanner.Parser-class.html#delete
+lightmediascanner.c_lightmediascanner.Parser.__init__  lightmediascanner.c_lightmediascanner.Parser-class.html#__init__
+lightmediascanner.c_lightmediascanner.Parser.scanner   lightmediascanner.c_lightmediascanner.Parser-class.html#scanner
diff --git a/www/python-api/class-tree.html b/www/python-api/class-tree.html
new file mode 100644 (file)
index 0000000..aaf12fa
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Class Hierarchy</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">&nbsp;</td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="class-tree.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Class Hierarchy</h1>
+<ul class="nomargin-top">
+    <li> <strong class="uidlink">object</strong>:
+      <em class="summary">The most base type</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">lightmediascanner.c_lightmediascanner.LightMediaScanner</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html">lightmediascanner.c_lightmediascanner.Parser</a></strong>
+    </li>
+    </ul>
+    </li>
+</ul>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:12 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/crarr.png b/www/python-api/crarr.png
new file mode 100644 (file)
index 0000000..26b43c5
Binary files /dev/null and b/www/python-api/crarr.png differ
index 46080bd..86d4170 100644 (file)
 
-/* Body color */ 
-body               { background: #ffffff; color: #000000; } 
-/* Tables */ 
-table.summary, table.details, table.index
-                   { background: #e8f0f8; color: #000000; } 
-tr.summary, tr.details, tr.index
-                   { background: #70b0f0; color: #000000;  
-                     text-align: left; font-size: 120%; } 
-tr.group           { background: #c0e0f8; color: #000000;
-                     text-align: left; font-size: 120%;
-                     font-style: italic; } 
-
-/* Documentation page titles */
-h2.module          { margin-top: 0.2em; }
-h2.class           { margin-top: 0.2em; }
+
+/* Epydoc CSS Stylesheet
+ *
+ * This stylesheet can be used to customize the appearance of epydoc's
+ * HTML output.
+ *
+ */
+
+/* Default Colors & Styles
+ *   - Set the default foreground & background color with 'body'; and 
+ *     link colors with 'a:link' and 'a:visited'.
+ *   - Use bold for decision list terms.
+ *   - The heading styles defined here are used for headings *within*
+ *     docstring descriptions.  All headings used by epydoc itself use
+ *     either class='epydoc' or class='toc' (CSS styles for both
+ *     defined below).
+ */
+body                        { background: #ffffff; color: #000000; }
+p                           { margin-top: 0.5em; margin-bottom: 0.5em; }
+a:link                      { color: #0000ff; }
+a:visited                   { color: #204080; }
+dt                          { font-weight: bold; }
+h1                          { font-size: +140%; font-style: italic;
+                              font-weight: bold; }
+h2                          { font-size: +125%; font-style: italic;
+                              font-weight: bold; }
+h3                          { font-size: +110%; font-style: italic;
+                              font-weight: normal; }
+code                        { font-size: 100%; }
+/* N.B.: class, not pseudoclass */
+a.link                      { font-family: monospace; }
  
-/* Headings */
-h1.heading         { font-size: +140%; font-style: italic;
-                     font-weight: bold; }
-h2.heading         { font-size: +125%; font-style: italic;
-                     font-weight: bold; }
-h3.heading         { font-size: +110%; font-style: italic;
-                     font-weight: normal; }
-                    
-/* Base tree */
-pre.base-tree      { font-size: 80%; margin: 0; }
-
-/* Details Sections */
-table.func-details { background: #e8f0f8; color: #000000;
-                     border: 2px groove #c0d0d0;
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.func-detail     { background: transparent; color: #000000;
-                     margin: 0 0 1em 0; }
-
-table.var-details  { background: #e8f0f8; color: #000000;
-                     border: 2px groove #c0d0d0;
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.var-details     { background: transparent; color: #000000;
-                     margin: 0 0 1em 0; }
-
-/* Function signatures */
-.sig               { background: transparent; color: #000000;
-                     font-weight: bold; }  
-.sig-name          { background: transparent; color: #006080; }  
-.sig-arg, .sig-kwarg, .sig-vararg
-                   { background: transparent; color: #008060; }  
-.sig-default       { background: transparent; color: #602000; }  
-.summary-sig       { background: transparent; color: #000000; }  
-.summary-sig-name  { background: transparent; color: #204080; }
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
-                   { background: transparent; color: #008060; }  
-
-/* Doctest blocks */
-.py-src            { background: transparent; color: #000000; }
-.py-prompt         { background: transparent; color: #005050;
-                     font-weight: bold;}
-.py-string         { background: transparent; color: #006030; }
-.py-comment        { background: transparent; color: #003060; }
-.py-keyword        { background: transparent; color: #600000; }
-.py-output         { background: transparent; color: #404040; }
-pre.doctestblock   { background: #f4faff; color: #000000; 
-                     padding: .5em; margin: 1em;
-                     border: 1px solid #708890; }
-table pre.doctestblock
-                   { background: #dce4ec; color: #000000; 
-                     padding: .5em; margin: 1em;
-                     border: 1px solid #708890; }
-
-/* Variable values */
-pre.variable       { background: #dce4ec; color: #000000;
-                     padding: .5em; margin: 0;
-                     border: 1px solid #708890; }
-.variable-linewrap { background: transparent; color: #604000; }
-.variable-ellipsis { background: transparent; color: #604000; }
-.variable-quote    { background: transparent; color: #604000; }
-.re                { background: transparent; color: #000000; }
-.re-char           { background: transparent; color: #006030; }
-.re-op             { background: transparent; color: #600000; }
-.re-group          { background: transparent; color: #003060; }
-.re-ref            { background: transparent; color: #404040; }
-
-/* Navigation bar */ 
-table.navbar       { background: #a0c0ff; color: #0000ff;
-                     border: 2px groove #c0d0d0; }
-th.navbar          { background: #a0c0ff; color: #0000ff; } 
-th.navselect       { background: #70b0ff; color: #000000; } 
-.nomargin          { margin: 0; }
-
-/* Links */ 
-a:link             { background: transparent; color: #0000ff; }  
-a:visited          { background: transparent; color: #204080; }  
-a.navbar:link      { background: transparent; color: #0000ff; 
-                     text-decoration: none; }  
-a.navbar:visited   { background: transparent; color: #204080; 
-                     text-decoration: none; }  
-
-/* Lists */
-ul { margin-top: 0; }
+/* Page Header & Footer
+ *   - The standard page header consists of a navigation bar (with
+ *     pointers to standard pages such as 'home' and 'trees'); a
+ *     breadcrumbs list, which can be used to navigate to containing
+ *     classes or modules; options links, to show/hide private
+ *     variables and to show/hide frames; and a page title (using
+ *     <h1>).  The page title may be followed by a link to the
+ *     corresponding source code (using 'span.codelink').
+ *   - The footer consists of a navigation bar, a timestamp, and a
+ *     pointer to epydoc's homepage.
+ */ 
+h1.epydoc                   { margin: 0; font-size: +140%; font-weight: bold; }
+h2.epydoc                   { font-size: +130%; font-weight: bold; }
+h3.epydoc                   { font-size: +115%; font-weight: bold;
+                              margin-top: 0.2em; }
+td h3.epydoc                { font-size: +115%; font-weight: bold;
+                              margin-bottom: 0; }
+table.navbar                { background: #a0c0ff; color: #000000;
+                              border: 2px groove #c0d0d0; }
+table.navbar table          { color: #000000; }
+th.navbar-select            { background: #70b0ff;
+                              color: #000000; } 
+table.navbar a              { text-decoration: none; }  
+table.navbar a:link         { color: #0000ff; }
+table.navbar a:visited      { color: #204080; }
+span.breadcrumbs            { font-size: 85%; font-weight: bold; }
+span.options                { font-size: 70%; }
+span.codelink               { font-size: 85%; }
+td.footer                   { font-size: 85%; }
+
+/* Table Headers
+ *   - Each summary table and details section begins with a 'header'
+ *     row.  This row contains a section title (marked by
+ *     'span.table-header') as well as a show/hide private link
+ *     (marked by 'span.options', defined above).
+ *   - Summary tables that contain user-defined groups mark those
+ *     groups using 'group header' rows.
+ */
+td.table-header             { background: #70b0ff; color: #000000;
+                              border: 1px solid #608090; }
+td.table-header table       { color: #000000; }
+td.table-header table a:link      { color: #0000ff; }
+td.table-header table a:visited   { color: #204080; }
+span.table-header           { font-size: 120%; font-weight: bold; }
+th.group-header             { background: #c0e0f8; color: #000000;
+                              text-align: left; font-style: italic; 
+                              font-size: 115%; 
+                              border: 1px solid #608090; }
+
+/* Summary Tables (functions, variables, etc)
+ *   - Each object is described by a single row of the table with
+ *     two cells.  The left cell gives the object's type, and is
+ *     marked with 'code.summary-type'.  The right cell gives the
+ *     object's name and a summary description.
+ *   - CSS styles for the table's header and group headers are
+ *     defined above, under 'Table Headers'
+ */
+table.summary               { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090;
+                              margin-bottom: 0.5em; }
+td.summary                  { border: 1px solid #608090; }
+code.summary-type           { font-size: 85%; }
+table.summary a:link        { color: #0000ff; }
+table.summary a:visited     { color: #204080; }
+
+
+/* Details Tables (functions, variables, etc)
+ *   - Each object is described in its own div.
+ *   - A single-row summary table w/ table-header is used as
+ *     a header for each details section (CSS style for table-header
+ *     is defined above, under 'Table Headers').
+ */
+table.details               { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090;
+                              margin: .2em 0 0 0; }
+table.details table         { color: #000000; }
+table.details a:link        { color: #0000ff; }
+table.details a:visited     { color: #204080; }
+
+/* Fields */
+dl.fields                   { margin-left: 2em; margin-top: 1em;
+                              margin-bottom: 1em; }
+dl.fields dd ul             { margin-left: 0em; padding-left: 0em; }
+dl.fields dd ul li ul       { margin-left: 2em; padding-left: 0em; }
+div.fields                  { margin-left: 2em; }
+div.fields p                { margin-bottom: 0.5em; }
+
+/* Index tables (identifier index, term index, etc)
+ *   - link-index is used for indices containing lists of links
+ *     (namely, the identifier index & term index).
+ *   - index-where is used in link indices for the text indicating
+ *     the container/source for each link.
+ *   - metadata-index is used for indices containing metadata
+ *     extracted from fields (namely, the bug index & todo index).
+ */
+table.link-index            { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090; }
+td.link-index               { border-width: 0px; }
+table.link-index a:link     { color: #0000ff; }
+table.link-index a:visited  { color: #204080; }
+span.index-where            { font-size: 70%; }
+table.metadata-index        { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090; 
+                              margin: .2em 0 0 0; }
+td.metadata-index           { border-width: 1px; border-style: solid; }
+table.metadata-index a:link { color: #0000ff; }
+table.metadata-index a:visited  { color: #204080; }
+
+/* Function signatures
+ *   - sig* is used for the signature in the details section.
+ *   - .summary-sig* is used for the signature in the summary 
+ *     table, and when listing property accessor functions.
+ * */
+.sig-name                   { color: #006080; }
+.sig-arg                    { color: #008060; }
+.sig-default                { color: #602000; }
+.summary-sig                { font-family: monospace; }
+.summary-sig-name           { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:link
+                            { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:visited
+                            { color: #006080; font-weight: bold; }
+.summary-sig-arg            { color: #006040; }
+.summary-sig-default        { color: #501800; }
+
+/* Subclass list
+ */
+ul.subclass-list { display: inline; }
+ul.subclass-list li { display: inline; }
+
+/* To render variables, classes etc. like functions */
+table.summary .summary-name { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+table.summary
+     a.summary-name:link    { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+table.summary
+    a.summary-name:visited  { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+
+/* Variable values
+ *   - In the 'variable details' sections, each varaible's value is
+ *     listed in a 'pre.variable' box.  The width of this box is
+ *     restricted to 80 chars; if the value's repr is longer than
+ *     this it will be wrapped, using a backslash marked with
+ *     class 'variable-linewrap'.  If the value's repr is longer
+ *     than 3 lines, the rest will be ellided; and an ellipsis
+ *     marker ('...' marked with 'variable-ellipsis') will be used.
+ *   - If the value is a string, its quote marks will be marked
+ *     with 'variable-quote'.
+ *   - If the variable is a regexp, it is syntax-highlighted using
+ *     the re* CSS classes.
+ */
+pre.variable                { padding: .5em; margin: 0;
+                              background: #dce4ec; color: #000000;
+                              border: 1px solid #708890; }
+.variable-linewrap          { color: #604000; font-weight: bold; }
+.variable-ellipsis          { color: #604000; font-weight: bold; }
+.variable-quote             { color: #604000; font-weight: bold; }
+.variable-group             { color: #008000; font-weight: bold; }
+.variable-op                { color: #604000; font-weight: bold; }
+.variable-string            { color: #006030; }
+.variable-unknown           { color: #a00000; font-weight: bold; }
+.re                         { color: #000000; }
+.re-char                    { color: #006030; }
+.re-op                      { color: #600000; }
+.re-group                   { color: #003060; }
+.re-ref                     { color: #404040; }
+
+/* Base tree
+ *   - Used by class pages to display the base class hierarchy.
+ */
+pre.base-tree               { font-size: 80%; margin: 0; }
+
+/* Frames-based table of contents headers
+ *   - Consists of two frames: one for selecting modules; and
+ *     the other listing the contents of the selected module.
+ *   - h1.toc is used for each frame's heading
+ *   - h2.toc is used for subheadings within each frame.
+ */
+h1.toc                      { text-align: center; font-size: 105%;
+                              margin: 0; font-weight: bold;
+                              padding: 0; }
+h2.toc                      { font-size: 100%; font-weight: bold; 
+                              margin: 0.5em 0 0 -0.3em; }
+
+/* Syntax Highlighting for Source Code
+ *   - doctest examples are displayed in a 'pre.py-doctest' block.
+ *     If the example is in a details table entry, then it will use
+ *     the colors specified by the 'table pre.py-doctest' line.
+ *   - Source code listings are displayed in a 'pre.py-src' block.
+ *     Each line is marked with 'span.py-line' (used to draw a line
+ *     down the left margin, separating the code from the line
+ *     numbers).  Line numbers are displayed with 'span.py-lineno'.
+ *     The expand/collapse block toggle button is displayed with
+ *     'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
+ *     modify the font size of the text.)
+ *   - If a source code page is opened with an anchor, then the
+ *     corresponding code block will be highlighted.  The code
+ *     block's header is highlighted with 'py-highlight-hdr'; and
+ *     the code block's body is highlighted with 'py-highlight'.
+ *   - The remaining py-* classes are used to perform syntax
+ *     highlighting (py-string for string literals, py-name for names,
+ *     etc.)
+ */
+pre.py-doctest              { padding: .5em; margin: 1em;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #708890; }
+table pre.py-doctest        { background: #dce4ec;
+                              color: #000000; }
+pre.py-src                  { border: 2px solid #000000; 
+                              background: #f0f0f0; color: #000000; }
+.py-line                    { border-left: 2px solid #000000; 
+                              margin-left: .2em; padding-left: .4em; }
+.py-lineno                  { font-style: italic; font-size: 90%;
+                              padding-left: .5em; }
+a.py-toggle                 { text-decoration: none; }
+div.py-highlight-hdr        { border-top: 2px solid #000000;
+                              border-bottom: 2px solid #000000;
+                              background: #d8e8e8; }
+div.py-highlight            { border-bottom: 2px solid #000000;
+                              background: #d0e0e0; }
+.py-prompt                  { color: #005050; font-weight: bold;}
+.py-more                    { color: #005050; font-weight: bold;}
+.py-string                  { color: #006030; }
+.py-comment                 { color: #003060; }
+.py-keyword                 { color: #600000; }
+.py-output                  { color: #404040; }
+.py-name                    { color: #000050; }
+.py-name:link               { color: #000050 !important; }
+.py-name:visited            { color: #000050 !important; }
+.py-number                  { color: #005000; }
+.py-defname                 { color: #000060; font-weight: bold; }
+.py-def-name                { color: #000060; font-weight: bold; }
+.py-base-class              { color: #000060; }
+.py-param                   { color: #000060; }
+.py-docstring               { color: #006030; }
+.py-decorator               { color: #804020; }
+/* Use this if you don't want links to names underlined: */
+/*a.py-name                   { text-decoration: none; }*/
+
+/* Graphs & Diagrams
+ *   - These CSS styles are used for graphs & diagrams generated using
+ *     Graphviz dot.  'img.graph-without-title' is used for bare
+ *     diagrams (to remove the border created by making the image
+ *     clickable).
+ */
+img.graph-without-title     { border: none; }
+img.graph-with-title        { border: 1px solid #000000; }
+span.graph-title            { font-weight: bold; }
+span.graph-caption          { }
+
+/* General-purpose classes
+ *   - 'p.indent-wrapped-lines' defines a paragraph whose first line
+ *     is not indented, but whose subsequent lines are.
+ *   - The 'nomargin-top' class is used to remove the top margin (e.g.
+ *     from lists).  The 'nomargin' class is used to remove both the
+ *     top and bottom margin (but not the left or right margin --
+ *     for lists, that would cause the bullets to disappear.)
+ */
+p.indent-wrapped-lines      { padding: 0 0 0 7em; text-indent: -7em; 
+                              margin: 0; }
+.nomargin-top               { margin-top: 0; }
+.nomargin                   { margin-top: 0; margin-bottom: 0; }
+
+/* HTML Log */
+div.log-block               { padding: 0; margin: .5em 0 .5em 0;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #000000; }
+div.log-error               { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #ffb0b0; color: #000000;
+                              border: 1px solid #000000; }
+div.log-warning             { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #ffffb0; color: #000000;
+                              border: 1px solid #000000; }
+div.log-info               { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #b0ffb0; color: #000000;
+                              border: 1px solid #000000; }
+h2.log-hdr                  { background: #70b0ff; color: #000000;
+                              margin: 0; padding: 0em 0.5em 0em 0.5em;
+                              border-bottom: 1px solid #000000; font-size: 110%; }
+p.log                       { font-weight: bold; margin: .5em 0 .5em 0; }
+tr.opt-changed              { color: #000000; font-weight: bold; }
+tr.opt-default              { color: #606060; }
+pre.log                     { margin: 0; padding: 0; padding-left: 1em; }
diff --git a/www/python-api/epydoc.js b/www/python-api/epydoc.js
new file mode 100644 (file)
index 0000000..e787dbc
--- /dev/null
@@ -0,0 +1,293 @@
+function toggle_private() {
+        // Search for any private/public links on this page.  Store
+        // their old text in "cmd," so we will know what action to
+        // take; and change their text to the opposite action.
+        var cmd = "?";
+        var elts = document.getElementsByTagName("a");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "privatelink") {
+            cmd = elts[i].innerHTML;
+            elts[i].innerHTML = ((cmd && cmd.substr(0,4)=="show")?
+                                    "hide&nbsp;private":"show&nbsp;private");
+          }
+        }
+        // Update all DIVs containing private objects.
+        var elts = document.getElementsByTagName("div");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+          }
+          else if (elts[i].className == "public") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"block":"none");
+          }
+        }
+        // Update all table rows containing private objects.  Note, we
+        // use "" instead of "block" becaue IE & firefox disagree on what
+        // this should be (block vs table-row), and "" just gives the
+        // default for both browsers.
+        var elts = document.getElementsByTagName("tr");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"");
+          }
+        }
+        // Update all list items containing private objects.
+        var elts = document.getElementsByTagName("li");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?
+                                        "none":"");
+          }
+        }
+        // Update all list items containing private objects.
+        var elts = document.getElementsByTagName("ul");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+          }
+        }
+        // Set a cookie to remember the current option.
+        document.cookie = "EpydocPrivate="+cmd;
+      }
+function show_private() {
+        var elts = document.getElementsByTagName("a");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "privatelink") {
+            cmd = elts[i].innerHTML;
+            if (cmd && cmd.substr(0,4)=="show")
+                toggle_private();
+          }
+        }
+      }
+function getCookie(name) {
+        var dc = document.cookie;
+        var prefix = name + "=";
+        var begin = dc.indexOf("; " + prefix);
+        if (begin == -1) {
+          begin = dc.indexOf(prefix);
+          if (begin != 0) return null;
+        } else
+        { begin += 2; }
+        var end = document.cookie.indexOf(";", begin);
+        if (end == -1)
+        { end = dc.length; }
+        return unescape(dc.substring(begin + prefix.length, end));
+      }
+function setFrame(url1, url2) {
+          parent.frames[1].location.href = url1;
+          parent.frames[2].location.href = url2;
+      }
+function checkCookie() {
+        var cmd=getCookie("EpydocPrivate");
+        if (cmd && cmd.substr(0,4)!="show" && location.href.indexOf("#_") < 0)
+            toggle_private();
+      }
+function toggleCallGraph(id) {
+        var elt = document.getElementById(id);
+        if (elt.style.display == "none")
+            elt.style.display = "block";
+        else
+            elt.style.display = "none";
+      }
+function expand(id) {
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.style.display = "block";
+  var elt = document.getElementById(id+"-expanded-linenums");
+  if (elt) elt.style.display = "block";
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+  var elt = document.getElementById(id+"-collapsed-linenums");
+  if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+  var elt = document.getElementById(id+"-toggle");
+  if (elt) { elt.innerHTML = "-"; }
+}
+
+function collapse(id) {
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.style.display = "none";
+  var elt = document.getElementById(id+"-expanded-linenums");
+  if (elt) elt.style.display = "none";
+  var elt = document.getElementById(id+"-collapsed-linenums");
+  if (elt) { elt.innerHTML = "<br />"; elt.style.display="block"; }
+  var elt = document.getElementById(id+"-toggle");
+  if (elt) { elt.innerHTML = "+"; }
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) {
+    elt.style.display = "block";
+    
+    var indent = elt.getAttribute("indent");
+    var pad = elt.getAttribute("pad");
+    var s = "<tt class='py-lineno'>";
+    for (var i=0; i<pad.length; i++) { s += "&nbsp;" }
+    s += "</tt>";
+    s += "&nbsp;&nbsp;<tt class='py-line'>";
+    for (var i=0; i<indent.length; i++) { s += "&nbsp;" }
+    s += "<a href='#' onclick='expand(\"" + id;
+    s += "\");return false'>...</a></tt><br />";
+    elt.innerHTML = s;
+  }
+}
+
+function toggle(id) {
+  elt = document.getElementById(id+"-toggle");
+  if (elt.innerHTML == "-")
+      collapse(id); 
+  else
+      expand(id);
+  return false;
+}
+
+function highlight(id) {
+  var elt = document.getElementById(id+"-def");
+  if (elt) elt.className = "py-highlight-hdr";
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.className = "py-highlight";
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) elt.className = "py-highlight";
+}
+
+function num_lines(s) {
+  var n = 1;
+  var pos = s.indexOf("\n");
+  while ( pos > 0) {
+    n += 1;
+    pos = s.indexOf("\n", pos+1);
+  }
+  return n;
+}
+
+// Collapse all blocks that mave more than `min_lines` lines.
+function collapse_all(min_lines) {
+  var elts = document.getElementsByTagName("div");
+  for (var i=0; i<elts.length; i++) {
+    var elt = elts[i];
+    var split = elt.id.indexOf("-");
+    if (split > 0)
+      if (elt.id.substring(split, elt.id.length) == "-expanded")
+        if (num_lines(elt.innerHTML) > min_lines)
+          collapse(elt.id.substring(0, split));
+  }
+}
+
+function expandto(href) {
+  var start = href.indexOf("#")+1;
+  if (start != 0 && start != href.length) {
+    if (href.substring(start, href.length) != "-") {
+      collapse_all(4);
+      pos = href.indexOf(".", start);
+      while (pos != -1) {
+        var id = href.substring(start, pos);
+        expand(id);
+        pos = href.indexOf(".", pos+1);
+      }
+      var id = href.substring(start, href.length);
+      expand(id);
+      highlight(id);
+    }
+  }
+}
+
+function kill_doclink(id) {
+  var parent = document.getElementById(id);
+  parent.removeChild(parent.childNodes.item(0));
+}
+function auto_kill_doclink(ev) {
+  if (!ev) var ev = window.event;
+  if (!this.contains(ev.toElement)) {
+    var parent = document.getElementById(this.parentID);
+    parent.removeChild(parent.childNodes.item(0));
+  }
+}
+
+function doclink(id, name, targets_id) {
+  var elt = document.getElementById(id);
+
+  // If we already opened the box, then destroy it.
+  // (This case should never occur, but leave it in just in case.)
+  if (elt.childNodes.length > 1) {
+    elt.removeChild(elt.childNodes.item(0));
+  }
+  else {
+    // The outer box: relative + inline positioning.
+    var box1 = document.createElement("div");
+    box1.style.position = "relative";
+    box1.style.display = "inline";
+    box1.style.top = 0;
+    box1.style.left = 0;
+  
+    // A shadow for fun
+    var shadow = document.createElement("div");
+    shadow.style.position = "absolute";
+    shadow.style.left = "-1.3em";
+    shadow.style.top = "-1.3em";
+    shadow.style.background = "#404040";
+    
+    // The inner box: absolute positioning.
+    var box2 = document.createElement("div");
+    box2.style.position = "relative";
+    box2.style.border = "1px solid #a0a0a0";
+    box2.style.left = "-.2em";
+    box2.style.top = "-.2em";
+    box2.style.background = "white";
+    box2.style.padding = ".3em .4em .3em .4em";
+    box2.style.fontStyle = "normal";
+    box2.onmouseout=auto_kill_doclink;
+    box2.parentID = id;
+
+    // Get the targets
+    var targets_elt = document.getElementById(targets_id);
+    var targets = targets_elt.getAttribute("targets");
+    var links = "";
+    target_list = targets.split(",");
+    for (var i=0; i<target_list.length; i++) {
+        var target = target_list[i].split("=");
+        links += "<li><a href='" + target[1] + 
+               "' style='text-decoration:none'>" +
+               target[0] + "</a></li>";
+    }
+  
+    // Put it all together.
+    elt.insertBefore(box1, elt.childNodes.item(0));
+    //box1.appendChild(box2);
+    box1.appendChild(shadow);
+    shadow.appendChild(box2);
+    box2.innerHTML =
+        "Which <b>"+name+"</b> do you want to see documentation for?" +
+        "<ul style='margin-bottom: 0;'>" +
+        links + 
+        "<li><a href='#' style='text-decoration:none' " +
+        "onclick='kill_doclink(\""+id+"\");return false;'>"+
+        "<i>None of the above</i></a></li></ul>";
+  }
+  return false;
+}
+
+function get_anchor() {
+          var href = location.href;
+          var start = href.indexOf("#")+1;
+          if ((start != 0) && (start != href.length))
+              return href.substring(start, href.length);
+      }
+function redirect_url(dottedName) {
+          // Scan through each element of the "pages" list, and check
+          // if "name" matches with any of them.
+          for (var i=0; i<pages.length; i++) {
+
+              // Each page has the form "<pagename>-m" or "<pagename>-c";
+              // extract the <pagename> portion & compare it to dottedName.
+              var pagename = pages[i].substring(0, pages[i].length-2);
+              if (pagename == dottedName.substring(0,pagename.length)) {
+
+                  // We've found a page that matches `dottedName`;
+                  // construct its URL, using leftover `dottedName`
+                  // content to form an anchor.
+                  var pagetype = pages[i].charAt(pages[i].length-1);
+                  var url = pagename + ((pagetype=="m")?"-module.html":
+                                                        "-class.html");
+                  if (dottedName.length > pagename.length)
+                      url += "#" + dottedName.substring(pagename.length+1,
+                                                        dottedName.length);
+                  return url;
+              }
+          }
+      }
diff --git a/www/python-api/frames.html b/www/python-api/frames.html
new file mode 100644 (file)
index 0000000..69e60b0
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+          "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title> Python-LightMediaScanner API </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame"
+           id="moduleListFrame" />
+    <frame src="toc-everything.html" name="moduleFrame"
+           id="moduleFrame" />
+  </frameset>
+  <frame src="lightmediascanner.c_lightmediascanner-module.html" name="mainFrame" id="mainFrame" />
+</frameset>
+</html>
diff --git a/www/python-api/help.html b/www/python-api/help.html
new file mode 100644 (file)
index 0000000..ac8bfdc
--- /dev/null
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Help</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">&nbsp;</td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="help.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+
+<h1 class="epydoc"> API Documentation </h1>
+
+<p> This document contains the API (Application Programming Interface)
+documentation for Python-LightMediaScanner API.  Documentation for the Python
+objects defined by the project is divided into separate pages for each
+package, module, and class.  The API documentation also includes two
+pages containing information about the project as a whole: a trees
+page, and an index page.  </p>
+
+<h2> Object Documentation </h2>
+
+  <p>Each <strong>Package Documentation</strong> page contains: </p>
+  <ul>
+    <li> A description of the package. </li>
+    <li> A list of the modules and sub-packages contained by the
+    package.  </li>
+    <li> A summary of the classes defined by the package. </li>
+    <li> A summary of the functions defined by the package. </li>
+    <li> A summary of the variables defined by the package. </li>
+    <li> A detailed description of each function defined by the
+    package. </li>
+    <li> A detailed description of each variable defined by the
+    package. </li>
+  </ul>
+  
+  <p>Each <strong>Module Documentation</strong> page contains:</p>
+  <ul>
+    <li> A description of the module. </li>
+    <li> A summary of the classes defined by the module. </li>
+    <li> A summary of the functions defined by the module. </li>
+    <li> A summary of the variables defined by the module. </li>
+    <li> A detailed description of each function defined by the
+    module. </li>
+    <li> A detailed description of each variable defined by the
+    module. </li>
+  </ul>
+  
+  <p>Each <strong>Class Documentation</strong> page contains: </p>
+  <ul>
+    <li> A class inheritance diagram. </li>
+    <li> A list of known subclasses. </li>
+    <li> A description of the class. </li>
+    <li> A summary of the methods defined by the class. </li>
+    <li> A summary of the instance variables defined by the class. </li>
+    <li> A summary of the class (static) variables defined by the
+    class. </li> 
+    <li> A detailed description of each method defined by the
+    class. </li>
+    <li> A detailed description of each instance variable defined by the
+    class. </li> 
+    <li> A detailed description of each class (static) variable defined
+    by the class. </li> 
+  </ul>
+
+<h2> Project Documentation </h2>
+
+  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>
+  <ul>
+    <li> The <em>module hierarchy</em> lists every package and module, with
+    modules grouped into packages.  At the top level, and within each
+    package, modules and sub-packages are listed alphabetically. </li>
+    <li> The <em>class hierarchy</em> lists every class, grouped by base
+    class.  If a class has more than one base class, then it will be
+    listed under each base class.  At the top level, and under each base
+    class, classes are listed alphabetically. </li>
+  </ul>
+  
+  <p> The <strong>Index</strong> page contains indices of terms and
+  identifiers: </p>
+  <ul>
+    <li> The <em>term index</em> lists every term indexed by any object's
+    documentation.  For each term, the index provides links to each
+    place where the term is indexed. </li>
+    <li> The <em>identifier index</em> lists the (short) name of every package,
+    module, class, method, function, variable, and parameter.  For each
+    identifier, the index provides a short description, and a link to
+    its documentation. </li>
+  </ul>
+
+<h2> The Table of Contents </h2>
+
+<p> The table of contents occupies the two frames on the left side of
+the window.  The upper-left frame displays the <em>project
+contents</em>, and the lower-left frame displays the <em>module
+contents</em>: </p>
+
+<table class="help summary" border="1" cellspacing="0" cellpadding="3">
+  <tr style="height: 30%">
+    <td align="center" style="font-size: small">
+       Project<br />Contents<hr />...</td>
+    <td align="center" style="font-size: small" rowspan="2" width="70%">
+      API<br />Documentation<br />Frame<br /><br /><br />
+    </td>
+  </tr>
+  <tr>
+    <td align="center" style="font-size: small">
+      Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;
+    </td>
+  </tr>
+</table><br />
+
+<p> The <strong>project contents frame</strong> contains a list of all packages
+and modules that are defined by the project.  Clicking on an entry
+will display its contents in the module contents frame.  Clicking on a
+special entry, labeled "Everything," will display the contents of
+the entire project. </p>
+
+<p> The <strong>module contents frame</strong> contains a list of every
+submodule, class, type, exception, function, and variable defined by a
+module or package.  Clicking on an entry will display its
+documentation in the API documentation frame.  Clicking on the name of
+the module, at the top of the frame, will display the documentation
+for the module itself. </p>
+
+<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top
+navigation bar can be used to control whether the table of contents is
+displayed or not. </p>
+
+<h2> The Navigation Bar </h2>
+
+<p> A navigation bar is located at the top and bottom of every page.
+It indicates what type of page you are currently viewing, and allows
+you to go to related pages.  The following table describes the labels
+on the navigation bar.  Note that not some labels (such as
+[Parent]) are not displayed on all pages. </p>
+
+<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
+<tr class="summary">
+  <th>Label</th>
+  <th>Highlighted when...</th>
+  <th>Links to...</th>
+</tr>
+  <tr><td valign="top"><strong>[Parent]</strong></td>
+      <td valign="top"><em>(never highlighted)</em></td>
+      <td valign="top"> the parent of the current package </td></tr>
+  <tr><td valign="top"><strong>[Package]</strong></td>
+      <td valign="top">viewing a package</td>
+      <td valign="top">the package containing the current object
+      </td></tr>
+  <tr><td valign="top"><strong>[Module]</strong></td>
+      <td valign="top">viewing a module</td>
+      <td valign="top">the module containing the current object
+      </td></tr> 
+  <tr><td valign="top"><strong>[Class]</strong></td>
+      <td valign="top">viewing a class </td>
+      <td valign="top">the class containing the current object</td></tr>
+  <tr><td valign="top"><strong>[Trees]</strong></td>
+      <td valign="top">viewing the trees page</td>
+      <td valign="top"> the trees page </td></tr>
+  <tr><td valign="top"><strong>[Index]</strong></td>
+      <td valign="top">viewing the index page</td>
+      <td valign="top"> the index page </td></tr>
+  <tr><td valign="top"><strong>[Help]</strong></td>
+      <td valign="top">viewing the help page</td>
+      <td valign="top"> the help page </td></tr>
+</table>
+
+<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below
+the top navigation bar can be used to control whether documentation
+for private objects is displayed.  Private objects are usually defined
+as objects whose (short) names begin with a single underscore, but do
+not end with an underscore.  For example, "<code>_x</code>",
+"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
+are private objects; but "<code>re.sub</code>",
+"<code>__init__</code>", and "<code>type_</code>" are not.  However,
+if a module defines the "<code>__all__</code>" variable, then its
+contents are used to decide which objects are private. </p>
+
+<p> A timestamp below the bottom navigation bar indicates when each
+page was last updated. </p>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:12 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/identifier-index.html b/www/python-api/identifier-index.html
new file mode 100644 (file)
index 0000000..a781626
--- /dev/null
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Identifier Index</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">&nbsp;</td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="identifier-index.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table border="0" width="100%">
+<tr valign="bottom"><td>
+<h1 class="epydoc">Identifier Index</h1>
+</td><td>
+[
+  A
+  B
+ <a href="#C">C</a>
+ <a href="#D">D</a>
+  E
+  F
+ <a href="#G">G</a>
+  H
+ <a href="#I">I</a>
+  J
+  K
+ <a href="#L">L</a>
+  M
+ <a href="#N">N</a>
+  O
+ <a href="#P">P</a>
+  Q
+  R
+ <a href="#S">S</a>
+  T
+  U
+  V
+  W
+  X
+  Y
+  Z
+ <a href="#_">_</a>
+]
+</td></table>
+<table border="0" width="100%">
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="C">C</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner-module.html">c_lightmediascanner</a><br />
+<span class="index-where">(in&nbsp;lightmediascanner)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_del">charset_del()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check_single_process">check_single_process()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_add">charset_add()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check">check()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#commit_interval">commit_interval</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="D">D</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#db_path">db_path</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#delete">delete()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#delete">delete()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a>)</span></td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="G">G</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_commit_interval">get_commit_interval()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_slave_timeout">get_slave_timeout()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="I">I</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#is_processing">is_processing()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="L">L</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner-module.html">lightmediascanner.c_lightmediascanner</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="N">N</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#name">name</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="P">P</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner-module.html">lightmediascanner.c_lightmediascanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_find_and_add">parser_find_and_add()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process">process()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_add">parser_add()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parsers">parsers</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process_single_process">process_single_process()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_del">parser_del()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parsers_clear">parsers_clear()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="S">S</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#scanner">scanner</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_progress_callback">set_progress_callback()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#slave_timeout">slave_timeout</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_commit_interval">set_commit_interval()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_slave_timeout">set_slave_timeout()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#stop_processing">stop_processing()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="_">_</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__new__">__new__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__new__">__new__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+</table>
+<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:12 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
index ed55b2d..69e60b0 100644 (file)
@@ -1,13 +1,17 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+          "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
-  <title> API Documentation </title>
+  <title> Python-LightMediaScanner API </title>
 </head>
 <frameset cols="20%,80%">
   <frameset rows="30%,70%">
-    <frame src="public/toc.html" name="moduleListFrame">
-    <frame src="public/toc-everything.html" name="moduleFrame">
+    <frame src="toc.html" name="moduleListFrame"
+           id="moduleListFrame" />
+    <frame src="toc-everything.html" name="moduleFrame"
+           id="moduleFrame" />
   </frameset>
-  <frame src="public/lightmediascanner-module.html" name="mainFrame">
+  <frame src="lightmediascanner.c_lightmediascanner-module.html" name="mainFrame" id="mainFrame" />
 </frameset>
 </html>
diff --git a/www/python-api/lightmediascanner-module.html b/www/python-api/lightmediascanner-module.html
new file mode 100644 (file)
index 0000000..67475ef
--- /dev/null
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>lightmediascanner</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;lightmediascanner
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="lightmediascanner-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package lightmediascanner</h1><p class="nomargin-top"><span class="codelink"><a href="lightmediascanner-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="LMS_PROGRESS_STATUS_UP_TO_DATE"></a><span class="summary-name">LMS_PROGRESS_STATUS_UP_TO_DATE</span> = <code title="0">0</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="LMS_PROGRESS_STATUS_PROCESSED"></a><span class="summary-name">LMS_PROGRESS_STATUS_PROCESSED</span> = <code title="1">1</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="LMS_PROGRESS_STATUS_DELETED"></a><span class="summary-name">LMS_PROGRESS_STATUS_DELETED</span> = <code title="2">2</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="LMS_PROGRESS_STATUS_KILLED"></a><span class="summary-name">LMS_PROGRESS_STATUS_KILLED</span> = <code title="3">3</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="LMS_PROGRESS_STATUS_ERROR_PARSE"></a><span class="summary-name">LMS_PROGRESS_STATUS_ERROR_PARSE</span> = <code title="4">4</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="LMS_PROGRESS_STATUS_ERROR_COMM"></a><span class="summary-name">LMS_PROGRESS_STATUS_ERROR_COMM</span> = <code title="5">5</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:01 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/lightmediascanner-pysrc.html b/www/python-api/lightmediascanner-pysrc.html
new file mode 100644 (file)
index 0000000..a3c5c0a
--- /dev/null
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>lightmediascanner</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;lightmediascanner
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="lightmediascanner-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="lightmediascanner-module.html">Package lightmediascanner</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment"># Copyright (C) 2007 by INdT</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This program is free software; you can redistribute it and/or</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># modify it under the terms of the GNU Lesser General Public License</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># as published by the Free Software Foundation; either version 2</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># of the License, or (at your option) any later version.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This program is distributed in the hope that it will be useful,</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with this program; if not, write to the Free Software</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># @author Gustavo Sverzut Barbieri &lt;gustavo.barbieri@openbossa.org&gt;</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">c_lightmediascanner</tt> <tt class="py-keyword">import</tt> <tt class="py-name">LightMediaScanner</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable lightmediascanner.LMS_PROGRESS_STATUS_UP_TO_DATE=lightmediascanner-module.html#LMS_PROGRESS_STATUS_UP_TO_DATE"><a title="lightmediascanner.LMS_PROGRESS_STATUS_UP_TO_DATE" class="py-name" href="#" onclick="return doclink('link-0', 'LMS_PROGRESS_STATUS_UP_TO_DATE', 'link-0');">LMS_PROGRESS_STATUS_UP_TO_DATE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable lightmediascanner.LMS_PROGRESS_STATUS_PROCESSED=lightmediascanner-module.html#LMS_PROGRESS_STATUS_PROCESSED"><a title="lightmediascanner.LMS_PROGRESS_STATUS_PROCESSED" class="py-name" href="#" onclick="return doclink('link-1', 'LMS_PROGRESS_STATUS_PROCESSED', 'link-1');">LMS_PROGRESS_STATUS_PROCESSED</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable lightmediascanner.LMS_PROGRESS_STATUS_DELETED=lightmediascanner-module.html#LMS_PROGRESS_STATUS_DELETED"><a title="lightmediascanner.LMS_PROGRESS_STATUS_DELETED" class="py-name" href="#" onclick="return doclink('link-2', 'LMS_PROGRESS_STATUS_DELETED', 'link-2');">LMS_PROGRESS_STATUS_DELETED</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable lightmediascanner.LMS_PROGRESS_STATUS_KILLED=lightmediascanner-module.html#LMS_PROGRESS_STATUS_KILLED"><a title="lightmediascanner.LMS_PROGRESS_STATUS_KILLED" class="py-name" href="#" onclick="return doclink('link-3', 'LMS_PROGRESS_STATUS_KILLED', 'link-3');">LMS_PROGRESS_STATUS_KILLED</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable lightmediascanner.LMS_PROGRESS_STATUS_ERROR_PARSE=lightmediascanner-module.html#LMS_PROGRESS_STATUS_ERROR_PARSE"><a title="lightmediascanner.LMS_PROGRESS_STATUS_ERROR_PARSE" class="py-name" href="#" onclick="return doclink('link-4', 'LMS_PROGRESS_STATUS_ERROR_PARSE', 'link-4');">LMS_PROGRESS_STATUS_ERROR_PARSE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable lightmediascanner.LMS_PROGRESS_STATUS_ERROR_COMM=lightmediascanner-module.html#LMS_PROGRESS_STATUS_ERROR_COMM"><a title="lightmediascanner.LMS_PROGRESS_STATUS_ERROR_COMM" class="py-name" href="#" onclick="return doclink('link-5', 'LMS_PROGRESS_STATUS_ERROR_COMM', 'link-5');">LMS_PROGRESS_STATUS_ERROR_COMM</a></tt> <tt class="py-op">=</tt> <tt class="py-number">5</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:01 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/lightmediascanner.c_lightmediascanner-module.html b/www/python-api/lightmediascanner.c_lightmediascanner-module.html
new file mode 100644 (file)
index 0000000..0bf8094
--- /dev/null
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>lightmediascanner.c_lightmediascanner</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;lightmediascanner ::
+        Module&nbsp;c_lightmediascanner
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module c_lightmediascanner</h1><p class="nomargin-top"><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html" class="summary-name">LightMediaScanner</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="lightmediascanner.c_lightmediascanner.Parser-class.html" class="summary-name">Parser</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:12 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/lightmediascanner.c_lightmediascanner-pysrc.html b/www/python-api/lightmediascanner.c_lightmediascanner-pysrc.html
new file mode 100644 (file)
index 0000000..5ad962f
--- /dev/null
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>lightmediascanner.c_lightmediascanner</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;lightmediascanner ::
+        Module&nbsp;c_lightmediascanner
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="lightmediascanner.c_lightmediascanner-module.html">Module lightmediascanner.c_lightmediascanner</a></h1>
+<pre class="py-src">
+<a name="__bootstrap__"></a><div id="__bootstrap__-def"><a name="L1"></a><tt class="py-lineno">1</tt> <a class="py-toggle" href="#" id="__bootstrap__-toggle" onclick="return toggle('__bootstrap__');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lightmediascanner.c_lightmediascanner-module.html#__bootstrap__">__bootstrap__</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="__bootstrap__-collapsed" style="display:none;" pad="+" indent="++++"></div><div id="__bootstrap__-expanded"><a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line">   <tt class="py-keyword">global</tt> <tt class="py-name">__bootstrap__</tt><tt class="py-op">,</tt> <tt class="py-name">__loader__</tt><tt class="py-op">,</tt> <tt class="py-name">__file__</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">3</tt>  <tt class="py-line">   <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">pkg_resources</tt><tt class="py-op">,</tt> <tt class="py-name">imp</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">4</tt>  <tt class="py-line">   <tt class="py-name">__file__</tt> <tt class="py-op">=</tt> <tt class="py-name">pkg_resources</tt><tt class="py-op">.</tt><tt class="py-name">resource_filename</tt><tt class="py-op">(</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt><tt class="py-string">'c_lightmediascanner.so'</tt><tt class="py-op">)</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">5</tt>  <tt class="py-line">   <tt class="py-keyword">del</tt> <tt class="py-name">__bootstrap__</tt><tt class="py-op">,</tt> <tt class="py-name">__loader__</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">6</tt>  <tt class="py-line">   <tt class="py-name">imp</tt><tt class="py-op">.</tt><tt class="py-name">load_dynamic</tt><tt class="py-op">(</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L7"></a><tt class="py-lineno">7</tt>  <tt class="py-line"><tt class="py-name">__bootstrap__</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">8</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:12 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html b/www/python-api/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html
new file mode 100644 (file)
index 0000000..0247572
--- /dev/null
@@ -0,0 +1,888 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>lightmediascanner.c_lightmediascanner.LightMediaScanner</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;lightmediascanner ::
+        <a href="lightmediascanner.c_lightmediascanner-module.html">Module&nbsp;c_lightmediascanner</a> ::
+        Class&nbsp;LightMediaScanner
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class LightMediaScanner</h1><p class="nomargin-top"><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">LightMediaScanner</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">a new object with type S, a subtype of T</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">T</span>,
+        <span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.__new__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      repr(x)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.__repr__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      str(x)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.__str__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_add" class="summary-sig-name">charset_add</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      Add charset to list of supported input charsets/encoding.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.charset_add">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="charset_del"></a><span class="summary-sig-name">charset_del</span>(<span class="summary-sig-arg">...</span>)</span><br />
+      Del charset from list of supported input charsets/encoding.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.charset_del">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check" class="summary-sig-name">check</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      Check (and update) files under directory.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.check">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check_single_process" class="summary-sig-name">check_single_process</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      Check (and update) files under directory *without fork()-ing into 
+      child process*.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.check_single_process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="delete"></a><span class="summary-sig-name">delete</span>(<span class="summary-sig-arg">...</span>)</span><br />
+      Delete all parsers and force wrapped object deletion</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.delete">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">int</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_commit_interval"></a><span class="summary-sig-name">get_commit_interval</span>(<span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.get_commit_interval">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">int</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="get_slave_timeout"></a><span class="summary-sig-name">get_slave_timeout</span>(<span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.get_slave_timeout">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="is_processing"></a><span class="summary-sig-name">is_processing</span>(<span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.is_processing">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
+      class="link">Parser</a></span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="parser_add"></a><span class="summary-sig-name">parser_add</span>(<span class="summary-sig-arg">...</span>)</span><br />
+      Add a new plugin/parser based on it's whole path to shared object.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.parser_add">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="parser_del"></a><span class="summary-sig-name">parser_del</span>(<span class="summary-sig-arg">...</span>)</span><br />
+      Delete a plugin/parser.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.parser_del">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
+      class="link">Parser</a></span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="parser_find_and_add"></a><span class="summary-sig-name">parser_find_and_add</span>(<span class="summary-sig-arg">...</span>)</span><br />
+      Add a new plugin/parser based on it's name.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.parser_find_and_add">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="parsers_clear"></a><span class="summary-sig-name">parsers_clear</span>(<span class="summary-sig-arg">...</span>)</span><br />
+      Delete all plugins/parsers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.parsers_clear">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      Process directory recursively.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process_single_process" class="summary-sig-name">process_single_process</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      Process directory recursively *without fork()-ing into child 
+      process*.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.process_single_process">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_commit_interval" class="summary-sig-name">set_commit_interval</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      Set the number of transactions between commits.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.set_commit_interval">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_progress_callback" class="summary-sig-name">set_progress_callback</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      Set new progress callback.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.set_progress_callback">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_slave_timeout" class="summary-sig-name">set_slave_timeout</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      Set maximum time a parser may use.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.set_slave_timeout">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="stop_processing"></a><span class="summary-sig-name">stop_processing</span>(<span class="summary-sig-arg">...</span>)</span><br />
+      Stop process/check</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.stop_processing">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="commit_interval"></a><span class="summary-name">commit_interval</span>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="db_path"></a><span class="summary-name">db_path</span>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="parsers"></a><span class="summary-name">parsers</span>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="slave_timeout"></a><span class="summary-name">slave_timeout</span>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">...</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__new__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,
+        <span class="sig-arg">S</span>,
+        <span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.__new__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Returns: a new object with type S, a subtype of T</dt>
+    <dt>Overrides:
+        object.__new__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">...</span>)</span>
+    <br /><em class="fname">(Representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.__repr__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>repr(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__repr__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">...</span>)</span>
+    <br /><em class="fname">(Informal representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.__str__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>str(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__str__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="charset_add"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">charset_add</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.charset_add">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Add charset to list of supported input charsets/encoding.</p>
+  <p>If some string in analysed/parsed files are not UTF-8, then it will 
+  try agains a list of charsets registered with this function.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="check"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">check</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.check">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Check (and update) files under directory.</p>
+  <p>This operates on all files in all sub directories of top_path using 
+  the added parsers. If files are up to date, nothing is done, otherwise 
+  they can be marked as deleted or updated if they still exists, but with 
+  different size or modification time.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="check_single_process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">check_single_process</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.check_single_process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Check (and update) files under directory *without fork()-ing into 
+  child process*.</p>
+  <p>This operates on all files in all sub directories of top_path using 
+  the added parsers. If files are up to date, nothing is done, otherwise 
+  they can be marked as deleted or updated if they still exists, but with 
+  different size or modification time.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process directory recursively.</p>
+  <p>This operates on all files in all sub directories of top_path using 
+  the added parsers.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="process_single_process"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">process_single_process</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.process_single_process">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Process directory recursively *without fork()-ing into child 
+  process*.</p>
+  <p>This operates on all files in all sub directories of top_path using 
+  the added parsers.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_commit_interval"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_commit_interval</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.set_commit_interval">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Set the number of transactions between commits.</p>
+  <p>Sets how many transactions/files to handle in one commit, the more the
+  faster, but if one parser takes too long and it's killed due 
+  slave_timeout being exceeded, then at most this number of transactions 
+  will be lost.</p>
+  <p>Note that transaction here is not a single SQL statement, but it is 
+  considered to be the processing of a file, which can be more than just 
+  one.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_progress_callback"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_progress_callback</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.set_progress_callback">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+Set new progress callback.
+
+If you want to unset a callback, just use None.
+
+Function signature is:
+
+    C{function(lms, path, status, *args, **kargs)}
+
+with status being one of LMS_PROGRESS_STATUS_*.
+
+@parm: B{cb} a callable object or None to unset previously set callback.
+
+</pre>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="set_slave_timeout"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_slave_timeout</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#LightMediaScanner.set_slave_timeout">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>Set maximum time a parser may use.</p>
+  <p>This will be the timeout before killing the slave process running some
+  parser. If this happens, another slave process will be started to 
+  continue from next file.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:12 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/lightmediascanner.c_lightmediascanner.Parser-class.html b/www/python-api/lightmediascanner.c_lightmediascanner.Parser-class.html
new file mode 100644 (file)
index 0000000..3fe31ff
--- /dev/null
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>lightmediascanner.c_lightmediascanner.Parser</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;lightmediascanner ::
+        <a href="lightmediascanner.c_lightmediascanner-module.html">Module&nbsp;c_lightmediascanner</a> ::
+        Class&nbsp;Parser
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Parser</h1><p class="nomargin-top"><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Parser</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">a new object with type S, a subtype of T</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">T</span>,
+        <span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.__new__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      repr(x)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.__repr__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      str(x)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.__str__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="delete"></a><span class="summary-sig-name">delete</span>(<span class="summary-sig-arg">...</span>)</span><br />
+      Same as LightMediaScanner.parser_del(self).</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.delete">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="name"></a><span class="summary-name">name</span>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="scanner"></a><span class="summary-name">scanner</span>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">...</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__new__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,
+        <span class="sig-arg">S</span>,
+        <span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.__new__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Returns: a new object with type S, a subtype of T</dt>
+    <dt>Overrides:
+        object.__new__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">...</span>)</span>
+    <br /><em class="fname">(Representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.__repr__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>repr(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__repr__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">...</span>)</span>
+    <br /><em class="fname">(Informal representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lightmediascanner.c_lightmediascanner-pysrc.html#Parser.__str__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>str(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__str__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:12 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/module-tree.html b/www/python-api/module-tree.html
new file mode 100644 (file)
index 0000000..2a1e25d
--- /dev/null
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Module Hierarchy</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">&nbsp;</td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="module-tree.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Module Hierarchy</h1>
+<ul class="nomargin-top">
+    <li> <strong class="uidlink"><a href="lightmediascanner.c_lightmediascanner-module.html">lightmediascanner.c_lightmediascanner</a></strong>    </li>
+</ul>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="lightmediascanner.c_lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Project homepage -->
+      <th class="navbar" align="right" width="100%">
+        <table border="0" cellpadding="0" cellspacing="0">
+          <tr><th class="navbar" align="center"
+            >Python-LightMediaScanner API</th>
+          </tr></table></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Sun Oct  5 12:29:12 2008
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/private/__builtin__.object-class.html b/www/python-api/private/__builtin__.object-class.html
deleted file mode 100644 (file)
index b795293..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>__builtin__.object</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        Module&nbsp;__builtin__ ::
-        Class&nbsp;object
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.object-class.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.object-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type object</h2>
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
-    <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>LightMediaScanner</code></a>,
-    <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>Parser</code></a>,
-    <a href="__builtin__.type-class.html"><code>type</code></a></dd></dl>
-
-<hr/>
-
-The most base type
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for 
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
-          <span class=summary-sig-arg>S</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>type</code></font></td>
-  <td><a name="__class__"></a><b><code>__class__</code></b> = <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
-    <br /><i>(Constructor)</i>
-  </h3>
-  x.__init__(...) initializes x; see x.__class__.__doc__ for 
-  signature
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__delattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__delattr__('name') &lt;==&gt; del x.name
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__getattribute__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__getattribute__('name') &lt;==&gt; x.name
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__hash__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Hashing function)</i>
-  </h3>
-  x.__hash__() &lt;==&gt; hash(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-hash(x)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
-          <span class=sig-arg>S</span>,
-          <span class="sig-vararg">...</span>)</span>
-  </h3>
-  T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__reduce__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  helper for pickle
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__reduce_ex__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__reduce_ex__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  helper for pickle
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Representation operator)</i>
-  </h3>
-  x.__repr__() &lt;==&gt; repr(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-repr(x)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__setattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__setattr__('name', value) &lt;==&gt; x.name = value
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Informal representation operator)</i>
-  </h3>
-  x.__str__() &lt;==&gt; str(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-str(x)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/private/__builtin__.type-class.html b/www/python-api/private/__builtin__.type-class.html
deleted file mode 100644 (file)
index 8cf2611..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>__builtin__.type</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        Module&nbsp;__builtin__ ::
-        Class&nbsp;type
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.type-class.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.type-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type type</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
-         |
-        <b>type</b>
-</pre><br />
-
-<hr/>
-
-type(object) -&gt; the object's type type(name, bases, dict) -&gt; a 
-new type
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__call__" class="summary-sig-name"><code>__call__</code></a>(<span class=summary-sig-arg>x</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__call__(...) &lt;==&gt; x(...)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__cmp__" class="summary-sig-name"><code>__cmp__</code></a>(<span class=summary-sig-arg>x</span>,
-          <span class=summary-sig-arg>y</span>)</span></code>
-<br />
-x.__cmp__(y) &lt;==&gt; cmp(x,y)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
-          <span class=summary-sig-arg>S</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list of immediate subclasses</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__subclasses__" class="summary-sig-name"><code>__subclasses__</code></a>()</span></code>
-<br />
-__subclasses__() -&gt; list of immediate subclasses</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#mro" class="summary-sig-name"><code>mro</code></a>()</span></code>
-<br />
-return a type's method resolution order</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for 
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>type</code></font></td>
-  <td><a name="__base__"></a><b><code>__base__</code></b> = <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></b> = <span title="(&lt;type 'object'&gt;,)"><code>(&lt;type&nbsp;'object'&gt;,)                           </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></b> = <span title="424">424&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></b> = <span title="132">132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></b> = <span title="153067">153067&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></b> = <span title="(&lt;type 'type'&gt;, &lt;type 'object'&gt;)"><code>(&lt;type&nbsp;'type'&gt;,&nbsp;&lt;type&nbsp;'object'&gt;)               </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></b> = <span title="'type'"><code><span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                        </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></b> = <span title="184">184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__call__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__call__</span>(<span class=sig-arg>x</span>,
-          <span class="sig-vararg">...</span>)</span>
-    <br /><i>(Call operator)</i>
-  </h3>
-  x.__call__(...) &lt;==&gt; x(...)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-x(...)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__cmp__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class=sig-arg>x</span>,
-          <span class=sig-arg>y</span>)</span>
-    <br /><i>(Comparison operator)</i>
-  </h3>
-  x.__cmp__(y) &lt;==&gt; cmp(x,y)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-cmp(x,y)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__delattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__delattr__('name') &lt;==&gt; del x.name
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__delattr__"><code>__builtin__.object.__delattr__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__getattribute__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__getattribute__('name') &lt;==&gt; x.name
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__hash__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Hashing function)</i>
-  </h3>
-  x.__hash__() &lt;==&gt; hash(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-hash(x)
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
-          <span class=sig-arg>S</span>,
-          <span class="sig-vararg">...</span>)</span>
-  </h3>
-  T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Representation operator)</i>
-  </h3>
-  x.__repr__() &lt;==&gt; repr(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-repr(x)
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__setattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__setattr__('name', value) &lt;==&gt; x.name = value
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__setattr__"><code>__builtin__.object.__setattr__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__subclasses__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__subclasses__</span>()</span>
-  </h3>
-  __subclasses__() -&gt; list of immediate subclasses
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-list of immediate subclasses      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="mro"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">mro</span>()</span>
-  </h3>
-  return a type's method resolution order
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-list      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__bases__"></a>
-<h3>__bases__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>tuple</code>
-
-      </dd>
-<span title="(&lt;type 'object'&gt;,)">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-(&lt;type 'object'&gt;,)                                                     </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__basicsize__"></a>
-<h3>__basicsize__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="424">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-424&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__dictoffset__"></a>
-<h3>__dictoffset__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="132">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__flags__"></a>
-<h3>__flags__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="153067">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-153067&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__itemsize__"></a>
-<h3>__itemsize__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="20">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__mro__"></a>
-<h3>__mro__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>tuple</code>
-
-      </dd>
-<span title="(&lt;type 'type'&gt;, &lt;type 'object'&gt;)">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-(&lt;type 'type'&gt;, &lt;type 'object'&gt;)                                       </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__name__"></a>
-<h3>__name__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>str</code>
-
-      </dd>
-<span title="'type'">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                                                 </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__weakrefoffset__"></a>
-<h3>__weakrefoffset__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="184">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/private/epydoc.css b/www/python-api/private/epydoc.css
deleted file mode 100644 (file)
index 46080bd..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-
-/* Body color */ 
-body               { background: #ffffff; color: #000000; } 
-/* Tables */ 
-table.summary, table.details, table.index
-                   { background: #e8f0f8; color: #000000; } 
-tr.summary, tr.details, tr.index
-                   { background: #70b0f0; color: #000000;  
-                     text-align: left; font-size: 120%; } 
-tr.group           { background: #c0e0f8; color: #000000;
-                     text-align: left; font-size: 120%;
-                     font-style: italic; } 
-
-/* Documentation page titles */
-h2.module          { margin-top: 0.2em; }
-h2.class           { margin-top: 0.2em; }
-/* Headings */
-h1.heading         { font-size: +140%; font-style: italic;
-                     font-weight: bold; }
-h2.heading         { font-size: +125%; font-style: italic;
-                     font-weight: bold; }
-h3.heading         { font-size: +110%; font-style: italic;
-                     font-weight: normal; }
-                    
-/* Base tree */
-pre.base-tree      { font-size: 80%; margin: 0; }
-
-/* Details Sections */
-table.func-details { background: #e8f0f8; color: #000000;
-                     border: 2px groove #c0d0d0;
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.func-detail     { background: transparent; color: #000000;
-                     margin: 0 0 1em 0; }
-
-table.var-details  { background: #e8f0f8; color: #000000;
-                     border: 2px groove #c0d0d0;
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.var-details     { background: transparent; color: #000000;
-                     margin: 0 0 1em 0; }
-
-/* Function signatures */
-.sig               { background: transparent; color: #000000;
-                     font-weight: bold; }  
-.sig-name          { background: transparent; color: #006080; }  
-.sig-arg, .sig-kwarg, .sig-vararg
-                   { background: transparent; color: #008060; }  
-.sig-default       { background: transparent; color: #602000; }  
-.summary-sig       { background: transparent; color: #000000; }  
-.summary-sig-name  { background: transparent; color: #204080; }
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
-                   { background: transparent; color: #008060; }  
-
-/* Doctest blocks */
-.py-src            { background: transparent; color: #000000; }
-.py-prompt         { background: transparent; color: #005050;
-                     font-weight: bold;}
-.py-string         { background: transparent; color: #006030; }
-.py-comment        { background: transparent; color: #003060; }
-.py-keyword        { background: transparent; color: #600000; }
-.py-output         { background: transparent; color: #404040; }
-pre.doctestblock   { background: #f4faff; color: #000000; 
-                     padding: .5em; margin: 1em;
-                     border: 1px solid #708890; }
-table pre.doctestblock
-                   { background: #dce4ec; color: #000000; 
-                     padding: .5em; margin: 1em;
-                     border: 1px solid #708890; }
-
-/* Variable values */
-pre.variable       { background: #dce4ec; color: #000000;
-                     padding: .5em; margin: 0;
-                     border: 1px solid #708890; }
-.variable-linewrap { background: transparent; color: #604000; }
-.variable-ellipsis { background: transparent; color: #604000; }
-.variable-quote    { background: transparent; color: #604000; }
-.re                { background: transparent; color: #000000; }
-.re-char           { background: transparent; color: #006030; }
-.re-op             { background: transparent; color: #600000; }
-.re-group          { background: transparent; color: #003060; }
-.re-ref            { background: transparent; color: #404040; }
-
-/* Navigation bar */ 
-table.navbar       { background: #a0c0ff; color: #0000ff;
-                     border: 2px groove #c0d0d0; }
-th.navbar          { background: #a0c0ff; color: #0000ff; } 
-th.navselect       { background: #70b0ff; color: #000000; } 
-.nomargin          { margin: 0; }
-
-/* Links */ 
-a:link             { background: transparent; color: #0000ff; }  
-a:visited          { background: transparent; color: #204080; }  
-a.navbar:link      { background: transparent; color: #0000ff; 
-                     text-decoration: none; }  
-a.navbar:visited   { background: transparent; color: #204080; 
-                     text-decoration: none; }  
-
-/* Lists */
-ul { margin-top: 0; }
diff --git a/www/python-api/private/frames.html b/www/python-api/private/frames.html
deleted file mode 100644 (file)
index b595856..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
-  <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
-  <frameset rows="30%,70%">
-    <frame src="toc.html" name="moduleListFrame">
-    <frame src="toc-everything.html" name="moduleFrame">
-  </frameset>
-  <frame src="lightmediascanner-module.html" name="mainFrame">
-</frameset>
-</html>
diff --git a/www/python-api/private/help.html b/www/python-api/private/help.html
deleted file mode 100644 (file)
index 9b7e56e..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Help</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/help.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<center><h2> API Documentation </h2></center>
-
-<p> This document contains the API (Application Programming Interface)
-documentation for this project.  Documentation for the Python
-objects defined by the project is divided into separate pages for each
-package, module, and class.  The API documentation also includes two
-pages containing information about the project as a whole: a trees
-page, and an index page.  </p>
-
-<h2> Object Documentation </h2>
-
-  <p>Each <b>Package Documentation</b> page contains: 
-  <ul>
-    <li> A description of the package. </li>
-    <li> A list of the modules and sub-packages contained by the
-    package.  </li>
-    <li> A summary of the classes defined by the package. </li>
-    <li> A summary of the functions defined by the package. </li>
-    <li> A summary of the variables defined by the package. </li>
-    <li> A detailed description of each function defined by the
-    package. </li>
-    <li> A detailed description of each variable defined by the
-    package. </li>
-  </ul></p>
-  
-  <p>Each <b>Module Documentation</b> page contains:
-  <ul>
-    <li> A description of the module. </li>
-    <li> A summary of the classes defined by the module. </li>
-    <li> A summary of the functions defined by the module. </li>
-    <li> A summary of the variables defined by the module. </li>
-    <li> A detailed description of each function defined by the
-    module. </li>
-    <li> A detailed description of each variable defined by the
-    module. </li>
-  </ul></p>
-  
-  <p>Each <b>Class Documentation</b> page contains:
-  <ul>
-    <li> A class inheritance diagram. </li>
-    <li> A list of known subclasses. </li>
-    <li> A description of the class. </li>
-    <li> A summary of the methods defined by the class. </li>
-    <li> A summary of the instance variables defined by the class. </li>
-    <li> A summary of the class (static) variables defined by the
-    class. </li> 
-    <li> A detailed description of each method defined by the
-    class. </li>
-    <li> A detailed description of each instance variable defined by the
-    class. </li> 
-    <li> A detailed description of each class (static) variable defined
-    by the class. </li> 
-  </ul></p>
-
-<h2> Project Documentation </h2>
-
-  <p> The <b>Trees</b> page contains the module and class hierarchies:
-  <ul>
-    <li> The <i>module hierarchy</i> lists every package and module, with
-    modules grouped into packages.  At the top level, and within each
-    package, modules and sub-packages are listed alphabetically. </li>
-    <li> The <i>class hierarchy</i> lists every class, grouped by base
-    class.  If a class has more than one base class, then it will be
-    listed under each base class.  At the top level, and under each base
-    class, classes are listed alphabetically. </li>
-  </ul></p>
-  
-  <p> The <b>Index</b> page contains indices of terms and
-  identifiers: 
-  <ul>
-    <li> The <i>term index</i> lists every term indexed by any object's
-    documentation.  For each term, the index provides links to each
-    place where the term is indexed. </li>
-    <li> The <i>identifier index</i> lists the (short) name of every package,
-    module, class, method, function, variable, and parameter.  For each
-    identifier, the index provides a short description, and a link to
-    its documentation. </li>
-  </ul></p>
-
-<h2> The Table of Contents </h2>
-
-<p> The table of contents occupies the two frames on the left side of
-the window.  The upper-left frame displays the <i>project
-contents</i>, and the lower-left frame displays the <i>module
-contents</i>: </p>
-
-<center>
-<table class="summary" border="1" cellspacing="0" cellpadding="3">
-  <tr heigh="30%">
-    <td align="center">
-       <font size="-1">Project<br>Contents<hr>...</font></td>
-    <td align="center" rowspan="2" width="70%">
-      API<br>Documentation<br>Frame<br><br><br>
-    </td>
-  </tr>
-  <tr>
-    <td align="center">
-      <font size="-1">Module<br>Contents<hr>&nbsp;<br>...<br>&nbsp;</font>
-    </td>
-  </tr>
-</table><br>
-</center>
-
-<p> The <b>project contents frame</b> contains a list of all packages
-and modules that are defined by the project.  Clicking on an entry
-will display its contents in the module contents frame.  Clicking on a
-special entry, labeled "Everything," will display the contents of
-the entire project. </p>
-
-<p> The <b>module contents frame</b> contains a list of every
-submodule, class, type, exception, function, and variable defined by a
-module or package.  Clicking on an entry will display its
-documentation in the API documentation frame.  Clicking on the name of
-the module, at the top of the frame, will display the documentation
-for the module itself. </p>
-
-<p> The "<b>frames</b>" and "<b>no frames</b>" buttons below the top
-navigation bar can be used to control whether the table of contents is
-displayed or not. </p>
-
-<h2> The Navigation Bar </h2>
-
-<p> A navigation bar is located at the top and bottom of every page.
-It indicates what type of page you are currently viewing, and allows
-you to go to related pages.  The following table describes the labels
-on the navigation bar.  Note that not some labels (such as
-[Parent]) are not displayed on all pages. </p>
-
-<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
-<tr class="summary">
-  <th>Label</th>
-  <th>Highlighted when...</th>
-  <th>Links to...</th>
-</tr>
-  <tr><td valign="top"><b>[Parent]</b></td>
-      <td valign="top"><i>(never highlighted)</i></td>
-      <td valign="top"> the parent of the current package </td></tr>
-  <tr><td valign="top"><b>[Package]</b></td>
-      <td valign="top">viewing a package</td>
-      <td valign="top">the package containing the current object
-      </td></tr>
-  <tr><td valign="top"><b>[Module]</b></td>
-      <td valign="top">viewing a module</td>
-      <td valign="top">the module containing the current object
-      </td></tr> 
-  <tr><td valign="top"><b>[Class]</b></td>
-      <td valign="top">viewing a class </td>
-      <td valign="top">the class containing the current object</td></tr>
-  <tr><td valign="top"><b>[Trees]</b></td>
-      <td valign="top">viewing the trees page</td>
-      <td valign="top"> the trees page </td></tr>
-  <tr><td valign="top"><b>[Index]</b></td>
-      <td valign="top">viewing the index page</td>
-      <td valign="top"> the index page </td></tr>
-  <tr><td valign="top"><b>[Help]</b></td>
-      <td valign="top">viewing the help page</td>
-      <td valign="top"> the help page </td></tr>
-</table>
-
-<p> The "<b>show private</b>" and "<b>hide private</b>" buttons below
-the top navigation bar can be used to control whether documentation
-for private objects is displayed.  Private objects are usually defined
-as objects whose (short) names begin with a single underscore, but do
-not end with an underscore.  For example, "<code>_x</code>",
-"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
-are private objects; but "<code>re.sub</code>",
-"<code>__init__</code>", and "<code>type_</code>" are not.  However,
-if a module defines the "<code>__all__</code>" variable, then its
-contents are used to decide which objects are private. </p>
-
-<p> A timestamp below the bottom navigation bar indicates when each
-page was last updated. </p>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/private/index.html b/www/python-api/private/index.html
deleted file mode 100644 (file)
index b595856..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
-  <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
-  <frameset rows="30%,70%">
-    <frame src="toc.html" name="moduleListFrame">
-    <frame src="toc-everything.html" name="moduleFrame">
-  </frameset>
-  <frame src="lightmediascanner-module.html" name="mainFrame">
-</frameset>
-</html>
diff --git a/www/python-api/private/indices.html b/www/python-api/private/indices.html
deleted file mode 100644 (file)
index 4d8fabd..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Index</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/indices.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-<br />
-
-<!-- =========== START OF IDENTIFIER INDEX =========== -->
-<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="index">
-  <th colspan="2">Identifier Index</th></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>
-    <td>Class in module <code>__builtin__</code></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__call__"><code>__call__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>
-    <td>Class in module <code>__builtin__</code></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__cmp__"><code>__cmp__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__delattr__"><code>__delattr__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__delattr__"><code>__delattr__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__getattribute__"><code>__getattribute__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__getattribute__"><code>__getattribute__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__hash__"><code>__hash__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__hash__"><code>__hash__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__init__"><code>__init__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__init__"><code>__init__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__init__"><code>__init__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__new__"><code>__new__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__new__"><code>__new__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__new__"><code>__new__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__new__"><code>__new__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__pyx_vtable__"><code>__pyx_vtable__</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce__"><code>__reduce__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce_ex__"><code>__reduce_ex__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__repr__"><code>__repr__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__repr__"><code>__repr__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__repr__"><code>__repr__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__repr__"><code>__repr__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__setattr__"><code>__setattr__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__setattr__"><code>__setattr__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__str__"><code>__str__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__str__"><code>__str__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__str__"><code>__str__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__subclasses__"><code>__subclasses__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner-module.html"><code>c_lightmediascanner</code></a></td>
-    <td>Module in package <a href="lightmediascanner-module.html"><code>lightmediascanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_add"><code>charset_add</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_del"><code>charset_del</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check"><code>check</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#commit_interval"><code>commit_interval</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#db_path"><code>db_path</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#delete"><code>delete</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_commit_interval"><code>get_commit_interval</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_slave_timeout"><code>get_slave_timeout</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#is_processing"><code>is_processing</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner-module.html"><code>lightmediascanner</code></a></td>
-    <td>Package</td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>LightMediaScanner</code></a></td>
-    <td>Class in module <a href="lightmediascanner.c_lightmediascanner-module.html"><code>lightmediascanner.c_lightmediascanner</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#mro"><code>mro</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#name"><code>name</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>
-    <td>Class in module <code>__builtin__</code></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>Parser</code></a></td>
-    <td>Class in module <a href="lightmediascanner.c_lightmediascanner-module.html"><code>lightmediascanner.c_lightmediascanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_add"><code>parser_add</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_del"><code>parser_del</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_find_and_add"><code>parser_find_and_add</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parsers"><code>parsers</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process"><code>process</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#scanner"><code>scanner</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_commit_interval"><code>set_commit_interval</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_slave_timeout"><code>set_slave_timeout</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#slave_timeout"><code>slave_timeout</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>
-    <td>Class in module <code>__builtin__</code></td></tr>
-</table>
-<br />
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/private/lightmediascanner-module.html b/www/python-api/private/lightmediascanner-module.html
deleted file mode 100644 (file)
index 04abe3c..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        Package&nbsp;lightmediascanner
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/lightmediascanner-module.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="lightmediascanner-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF PACKAGE DESCRIPTION =========== -->
-<h2 class="package">Package lightmediascanner</h2>
-
-
-<!-- =========== START OF SUBMODULES =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Submodules</th></tr>
-  <tr><td><ul>
-<li> <b><a href="lightmediascanner.c_lightmediascanner-module.html"><code>c_lightmediascanner</code></a></b>
-  </ul></td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/private/lightmediascanner.c_lightmediascanner-module.html b/www/python-api/private/lightmediascanner.c_lightmediascanner-module.html
deleted file mode 100644 (file)
index 65afb2b..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner.c_lightmediascanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        <a href="lightmediascanner-module.html">Package&nbsp;lightmediascanner</a> ::
-        Module&nbsp;c_lightmediascanner
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/lightmediascanner.c_lightmediascanner-module.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module lightmediascanner.c_lightmediascanner</h2>
-
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
-  <b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>LightMediaScanner</code></a></b></td>
-  <td>&nbsp;</td></tr>
-<tr><td width="15%">
-  <b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>Parser</code></a></b></td>
-  <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/private/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html b/www/python-api/private/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html
deleted file mode 100644 (file)
index 2f757d2..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner.c_lightmediascanner.LightMediaScanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        <a href="lightmediascanner-module.html">Package&nbsp;lightmediascanner</a> ::
-        <a href="lightmediascanner.c_lightmediascanner-module.html">Module&nbsp;c_lightmediascanner</a> ::
-        Class&nbsp;LightMediaScanner
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type LightMediaScanner</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
-         |
-        <b>LightMediaScanner</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for 
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
-          <span class=summary-sig-arg>S</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_add" class="summary-sig-name"><code>charset_add</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Add charset to list of supported input charsets/encoding.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_del" class="summary-sig-name"><code>charset_del</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Del charset from list of supported input charsets/encoding.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check" class="summary-sig-name"><code>check</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Check (and update) files under directory.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        int
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_commit_interval" class="summary-sig-name"><code>get_commit_interval</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        int
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_slave_timeout" class="summary-sig-name"><code>get_slave_timeout</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        bool
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#is_processing" class="summary-sig-name"><code>is_processing</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        <a 
-        href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
-        class="link"><code>Parser</code></a>
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_add" class="summary-sig-name"><code>parser_add</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Add a new plugin/parser based on it's whole path to shared object.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_del" class="summary-sig-name"><code>parser_del</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Delete a plugin/parser.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        <a 
-        href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
-        class="link"><code>Parser</code></a>
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_find_and_add" class="summary-sig-name"><code>parser_find_and_add</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Add a new plugin/parser based on it's name.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process" class="summary-sig-name"><code>process</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Process directory recursively.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_commit_interval" class="summary-sig-name"><code>set_commit_interval</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Set the number of transactions between commits.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_slave_timeout" class="summary-sig-name"><code>set_slave_timeout</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Set maximum time a parser may use.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>getset_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#commit_interval"><code>commit_interval</code></a></b> = <span title="&lt;attribute 'commit_interval' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;"><code>&lt;attribute&nbsp;'commit_interval'&nbsp;of&nbsp;'light<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>member_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#db_path"><code>db_path</code></a></b> = <span title="&lt;member 'db_path' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;"><code>&lt;member&nbsp;'db_path'&nbsp;of&nbsp;'lightmediascanner.c_ligh<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>member_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parsers"><code>parsers</code></a></b> = <span title="&lt;member 'parsers' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;"><code>&lt;member&nbsp;'parsers'&nbsp;of&nbsp;'lightmediascanner.c_ligh<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>getset_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#slave_timeout"><code>slave_timeout</code></a></b> = <span title="&lt;attribute 'slave_timeout' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;"><code>&lt;attribute&nbsp;'slave_timeout'&nbsp;of&nbsp;'lightmedi<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
-    <br /><i>(Constructor)</i>
-  </h3>
-  x.__init__(...) initializes x; see x.__class__.__doc__ for 
-  signature
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
-          <span class=sig-arg>S</span>,
-          <span class="sig-vararg">...</span>)</span>
-  </h3>
-  T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="charset_add"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">charset_add</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Add charset to list of supported input charsets/encoding.</p>
-  If some string in analysed/parsed files are not UTF-8, then it will 
-  try agains a list of charsets registered with this function.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="charset_del"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">charset_del</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Del charset from list of supported input charsets/encoding.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="check"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">check</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Check (and update) files under directory.</p>
-  This operates on all files in all sub directories of top_path using 
-  the added parsers. If files are up to date, nothing is done, otherwise 
-  they can be marked as deleted or updated if they still exists, but with 
-  different size or modification time.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="get_commit_interval"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">get_commit_interval</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        int
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="get_slave_timeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">get_slave_timeout</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        int
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="is_processing"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">is_processing</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        bool
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="parser_add"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">parser_add</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Add a new plugin/parser based on it's whole path to shared 
-  object.
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        <a 
-        href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
-        class="link"><code>Parser</code></a>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="parser_del"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">parser_del</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Delete a plugin/parser.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="parser_find_and_add"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">parser_find_and_add</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Add a new plugin/parser based on it's name.
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        <a 
-        href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
-        class="link"><code>Parser</code></a>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="process"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">process</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Process directory recursively.</p>
-  This operates on all files in all sub directories of top_path using 
-  the added parsers.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="set_commit_interval"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">set_commit_interval</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Set the number of transactions between commits.</p>
-  <p>Sets how many transactions/files to handle in one commit, the more 
-  the faster, but if one parser takes too long and it's killed due 
-  slave_timeout being exceeded, then at most this number of transactions 
-  will be lost.</p>
-  Note that transaction here is not a single SQL statement, but it is 
-  considered to be the processing of a file, which can be more than just 
-  one.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="set_slave_timeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">set_slave_timeout</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Set maximum time a parser may use.</p>
-  This will be the timeout before killing the slave process running 
-  some parser. If this happens, another slave process will be started to 
-  continue from next file.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="commit_interval"></a>
-<h3>commit_interval</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>getset_descriptor</code>
-
-      </dd>
-<span title="&lt;attribute 'commit_interval' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;attribute 'commit_interval' of 'lightmediascanner.c_lightmediascanner<span class="variable-linewrap">\</span>
-.LightMediaScanner' objects&gt;                                           </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="db_path"></a>
-<h3>db_path</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>member_descriptor</code>
-
-      </dd>
-<span title="&lt;member 'db_path' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;member 'db_path' of 'lightmediascanner.c_lightmediascanner.LightMedia<span class="variable-linewrap">\</span>
-Scanner' objects&gt;                                                      </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="parsers"></a>
-<h3>parsers</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>member_descriptor</code>
-
-      </dd>
-<span title="&lt;member 'parsers' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;member 'parsers' of 'lightmediascanner.c_lightmediascanner.LightMedia<span class="variable-linewrap">\</span>
-Scanner' objects&gt;                                                      </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="slave_timeout"></a>
-<h3>slave_timeout</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>getset_descriptor</code>
-
-      </dd>
-<span title="&lt;attribute 'slave_timeout' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;attribute 'slave_timeout' of 'lightmediascanner.c_lightmediascanner.L<span class="variable-linewrap">\</span>
-ightMediaScanner' objects&gt;                                             </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/private/lightmediascanner.c_lightmediascanner.Parser-class.html b/www/python-api/private/lightmediascanner.c_lightmediascanner.Parser-class.html
deleted file mode 100644 (file)
index f12ae7f..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner.c_lightmediascanner.Parser</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        <a href="lightmediascanner-module.html">Package&nbsp;lightmediascanner</a> ::
-        <a href="lightmediascanner.c_lightmediascanner-module.html">Module&nbsp;c_lightmediascanner</a> ::
-        Class&nbsp;Parser
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/lightmediascanner.c_lightmediascanner.Parser-class.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Parser</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
-         |
-        <b>Parser</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for 
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
-          <span class=summary-sig-arg>S</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#delete" class="summary-sig-name"><code>delete</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Same as LightMediaScanner.parser_del(self).</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>PyCObject</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__pyx_vtable__"><code>__pyx_vtable__</code></a></b> = <span title="&lt;PyCObject object at 0xb7f40338&gt;"><code>&lt;PyCObject&nbsp;object&nbsp;at&nbsp;0xb7f40338&gt;        </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>getset_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#name"><code>name</code></a></b> = <span title="&lt;attribute 'name' of 'lightmediascanner.c_lightmediascanner.Parser' objects&gt;"><code>&lt;attribute&nbsp;'name'&nbsp;of&nbsp;'lightmediascanner.c_lightme<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>member_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#scanner"><code>scanner</code></a></b> = <span title="&lt;member 'scanner' of 'lightmediascanner.c_lightmediascanner.Parser' objects&gt;"><code>&lt;member&nbsp;'scanner'&nbsp;of&nbsp;'lightmediascanner.c_ligh<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
-    <br /><i>(Constructor)</i>
-  </h3>
-  x.__init__(...) initializes x; see x.__class__.__doc__ for 
-  signature
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
-          <span class=sig-arg>S</span>,
-          <span class="sig-vararg">...</span>)</span>
-  </h3>
-  T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="delete"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">delete</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Same as LightMediaScanner.parser_del(self).
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__pyx_vtable__"></a>
-<h3>__pyx_vtable__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>PyCObject</code>
-
-      </dd>
-<span title="&lt;PyCObject object at 0xb7f40338&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;PyCObject object at 0xb7f40338&gt;                                       </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="name"></a>
-<h3>name</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>getset_descriptor</code>
-
-      </dd>
-<span title="&lt;attribute 'name' of 'lightmediascanner.c_lightmediascanner.Parser' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;attribute 'name' of 'lightmediascanner.c_lightmediascanner.Parser' ob<span class="variable-linewrap">\</span>
-jects&gt;                                                                 </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="scanner"></a>
-<h3>scanner</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>member_descriptor</code>
-
-      </dd>
-<span title="&lt;member 'scanner' of 'lightmediascanner.c_lightmediascanner.Parser' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;member 'scanner' of 'lightmediascanner.c_lightmediascanner.Parser' ob<span class="variable-linewrap">\</span>
-jects&gt;                                                                 </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/private/toc-everything.html b/www/python-api/private/toc-everything.html
deleted file mode 100644 (file)
index 5a7be78..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Everything</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<center><font size="+1"><b>Everything</b></font></center>
-<hr>
-
-<!-- =========== START OF ALL CLASSES =========== -->
-<font size="+1"><b>All&nbsp;Classes</b></font><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">lightmediascanner.c_lightmediascanner.LightMediaScanner</a><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner.Parser-class.html">lightmediascanner.c_lightmediascanner.Parser</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-everything.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/www/python-api/private/toc-lightmediascanner-module.html b/www/python-api/private/toc-lightmediascanner-module.html
deleted file mode 100644 (file)
index b3a02ab..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="lightmediascanner-module.html">lightmediascanner</a></b></font></center>
-<hr>
-
-<!-- =========== START OF MODULES =========== -->
-<font size="+1"><b>Modules</b></font><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner-module.html">c_lightmediascanner</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-lightmediascanner-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/www/python-api/private/toc-lightmediascanner.c_lightmediascanner-module.html b/www/python-api/private/toc-lightmediascanner.c_lightmediascanner-module.html
deleted file mode 100644 (file)
index f863b7d..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner.c_lightmediascanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="lightmediascanner.c_lightmediascanner-module.html">c_lightmediascanner</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-lightmediascanner.c_lightmediascanner-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/www/python-api/private/toc.html b/www/python-api/private/toc.html
deleted file mode 100644 (file)
index c296f25..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Table of Contents</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<center><font size="+1"><b>Table&nbsp;of&nbsp;Contents</b></font></center>
-<hr>
-<a target="moduleFrame" href="toc-everything.html">Everything</a><br />
-
-<!-- =========== START OF PACKAGES =========== -->
-<br /><font size="+1"><b>Packages</b></font><br />
-<a target="moduleFrame" href="toc-lightmediascanner-module.html">lightmediascanner</a><br />
-
-<!-- =========== START OF MODULES =========== -->
-<br /><font size="+1"><b>Modules</b></font><br />
-<a target="moduleFrame" href="toc-lightmediascanner.c_lightmediascanner-module.html">lightmediascanner.c_lightmediascanner</a><br />
-
-<br /><hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/www/python-api/private/trees.html b/www/python-api/private/trees.html
deleted file mode 100644 (file)
index 0f1e551..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Module and Class Hierarchies</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/trees.html">hide&nbsp;private</a>]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE HIERARCHY =========== -->
-<h2>Module Hierarchy</h2>
-<ul>
-<li> <b><a href="lightmediascanner-module.html"><code>lightmediascanner</code></a></b>
-  <ul>
-    <li> <b><a href="lightmediascanner.c_lightmediascanner-module.html"><code>c_lightmediascanner</code></a></b>
-  </ul>
-</ul>
-
-<!-- =========== START OF CLASS HIERARCHY =========== -->
-<h2>Class Hierarchy</h2>
-<ul>
-  <li> <b><a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></b>: <i>
-The most base type</i>
-    <ul>
-  <li> <b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></b>
-  <li> <b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></b>
-  <li> <b><a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></b>: <i>
-type(object) -&gt; the object's type type(name, bases, dict) -&gt; a 
-new type</i>
-    </ul>
-</ul>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/__builtin__.object-class.html b/www/python-api/public/__builtin__.object-class.html
deleted file mode 100644 (file)
index e64b948..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>__builtin__.object</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        Module&nbsp;__builtin__ ::
-        Class&nbsp;object
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/__builtin__.object-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.object-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type object</h2>
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
-    <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>LightMediaScanner</code></a>,
-    <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>Parser</code></a>,
-    <a href="__builtin__.type-class.html"><code>type</code></a></dd></dl>
-
-<hr/>
-
-The most base type
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for 
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
-          <span class=summary-sig-arg>S</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>type</code></font></td>
-  <td><a name="__class__"></a><b><code>__class__</code></b> = <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
-    <br /><i>(Constructor)</i>
-  </h3>
-  x.__init__(...) initializes x; see x.__class__.__doc__ for 
-  signature
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__delattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__delattr__('name') &lt;==&gt; del x.name
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__getattribute__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__getattribute__('name') &lt;==&gt; x.name
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__hash__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Hashing function)</i>
-  </h3>
-  x.__hash__() &lt;==&gt; hash(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-hash(x)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
-          <span class=sig-arg>S</span>,
-          <span class="sig-vararg">...</span>)</span>
-  </h3>
-  T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__reduce__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  helper for pickle
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__reduce_ex__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__reduce_ex__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  helper for pickle
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Representation operator)</i>
-  </h3>
-  x.__repr__() &lt;==&gt; repr(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-repr(x)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__setattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__setattr__('name', value) &lt;==&gt; x.name = value
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Informal representation operator)</i>
-  </h3>
-  x.__str__() &lt;==&gt; str(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-str(x)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/__builtin__.type-class.html b/www/python-api/public/__builtin__.type-class.html
deleted file mode 100644 (file)
index 31a8e19..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>__builtin__.type</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        Module&nbsp;__builtin__ ::
-        Class&nbsp;type
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/__builtin__.type-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.type-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type type</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
-         |
-        <b>type</b>
-</pre><br />
-
-<hr/>
-
-type(object) -&gt; the object's type type(name, bases, dict) -&gt; a 
-new type
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__call__" class="summary-sig-name"><code>__call__</code></a>(<span class=summary-sig-arg>x</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__call__(...) &lt;==&gt; x(...)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__cmp__" class="summary-sig-name"><code>__cmp__</code></a>(<span class=summary-sig-arg>x</span>,
-          <span class=summary-sig-arg>y</span>)</span></code>
-<br />
-x.__cmp__(y) &lt;==&gt; cmp(x,y)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
-          <span class=summary-sig-arg>S</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list of immediate subclasses</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__subclasses__" class="summary-sig-name"><code>__subclasses__</code></a>()</span></code>
-<br />
-__subclasses__() -&gt; list of immediate subclasses</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#mro" class="summary-sig-name"><code>mro</code></a>()</span></code>
-<br />
-return a type's method resolution order</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for 
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>type</code></font></td>
-  <td><a name="__base__"></a><b><code>__base__</code></b> = <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></b> = <span title="(&lt;type 'object'&gt;,)"><code>(&lt;type&nbsp;'object'&gt;,)                           </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></b> = <span title="424">424&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></b> = <span title="132">132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></b> = <span title="153067">153067&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></b> = <span title="(&lt;type 'type'&gt;, &lt;type 'object'&gt;)"><code>(&lt;type&nbsp;'type'&gt;,&nbsp;&lt;type&nbsp;'object'&gt;)               </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></b> = <span title="'type'"><code><span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                        </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></b> = <span title="184">184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__call__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__call__</span>(<span class=sig-arg>x</span>,
-          <span class="sig-vararg">...</span>)</span>
-    <br /><i>(Call operator)</i>
-  </h3>
-  x.__call__(...) &lt;==&gt; x(...)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-x(...)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__cmp__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class=sig-arg>x</span>,
-          <span class=sig-arg>y</span>)</span>
-    <br /><i>(Comparison operator)</i>
-  </h3>
-  x.__cmp__(y) &lt;==&gt; cmp(x,y)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-cmp(x,y)
-</pre>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__delattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__delattr__('name') &lt;==&gt; del x.name
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__delattr__"><code>__builtin__.object.__delattr__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__getattribute__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__getattribute__('name') &lt;==&gt; x.name
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__hash__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Hashing function)</i>
-  </h3>
-  x.__hash__() &lt;==&gt; hash(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-hash(x)
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
-          <span class=sig-arg>S</span>,
-          <span class="sig-vararg">...</span>)</span>
-  </h3>
-  T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>x</span>)</span>
-    <br /><i>(Representation operator)</i>
-  </h3>
-  x.__repr__() &lt;==&gt; repr(x)
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-repr(x)
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__setattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  x.__setattr__('name', value) &lt;==&gt; x.name = value
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__setattr__"><code>__builtin__.object.__setattr__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__subclasses__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__subclasses__</span>()</span>
-  </h3>
-  __subclasses__() -&gt; list of immediate subclasses
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-list of immediate subclasses      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="mro"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">mro</span>()</span>
-  </h3>
-  return a type's method resolution order
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-list      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__bases__"></a>
-<h3>__bases__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>tuple</code>
-
-      </dd>
-<span title="(&lt;type 'object'&gt;,)">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-(&lt;type 'object'&gt;,)                                                     </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__basicsize__"></a>
-<h3>__basicsize__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="424">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-424&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__dictoffset__"></a>
-<h3>__dictoffset__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="132">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__flags__"></a>
-<h3>__flags__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="153067">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-153067&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__itemsize__"></a>
-<h3>__itemsize__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="20">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__mro__"></a>
-<h3>__mro__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>tuple</code>
-
-      </dd>
-<span title="(&lt;type 'type'&gt;, &lt;type 'object'&gt;)">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-(&lt;type 'type'&gt;, &lt;type 'object'&gt;)                                       </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__name__"></a>
-<h3>__name__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>str</code>
-
-      </dd>
-<span title="'type'">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                                                 </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__weakrefoffset__"></a>
-<h3>__weakrefoffset__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>int</code>
-
-      </dd>
-<span title="184">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/epydoc.css b/www/python-api/public/epydoc.css
deleted file mode 100644 (file)
index 46080bd..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-
-/* Body color */ 
-body               { background: #ffffff; color: #000000; } 
-/* Tables */ 
-table.summary, table.details, table.index
-                   { background: #e8f0f8; color: #000000; } 
-tr.summary, tr.details, tr.index
-                   { background: #70b0f0; color: #000000;  
-                     text-align: left; font-size: 120%; } 
-tr.group           { background: #c0e0f8; color: #000000;
-                     text-align: left; font-size: 120%;
-                     font-style: italic; } 
-
-/* Documentation page titles */
-h2.module          { margin-top: 0.2em; }
-h2.class           { margin-top: 0.2em; }
-/* Headings */
-h1.heading         { font-size: +140%; font-style: italic;
-                     font-weight: bold; }
-h2.heading         { font-size: +125%; font-style: italic;
-                     font-weight: bold; }
-h3.heading         { font-size: +110%; font-style: italic;
-                     font-weight: normal; }
-                    
-/* Base tree */
-pre.base-tree      { font-size: 80%; margin: 0; }
-
-/* Details Sections */
-table.func-details { background: #e8f0f8; color: #000000;
-                     border: 2px groove #c0d0d0;
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.func-detail     { background: transparent; color: #000000;
-                     margin: 0 0 1em 0; }
-
-table.var-details  { background: #e8f0f8; color: #000000;
-                     border: 2px groove #c0d0d0;
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.var-details     { background: transparent; color: #000000;
-                     margin: 0 0 1em 0; }
-
-/* Function signatures */
-.sig               { background: transparent; color: #000000;
-                     font-weight: bold; }  
-.sig-name          { background: transparent; color: #006080; }  
-.sig-arg, .sig-kwarg, .sig-vararg
-                   { background: transparent; color: #008060; }  
-.sig-default       { background: transparent; color: #602000; }  
-.summary-sig       { background: transparent; color: #000000; }  
-.summary-sig-name  { background: transparent; color: #204080; }
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
-                   { background: transparent; color: #008060; }  
-
-/* Doctest blocks */
-.py-src            { background: transparent; color: #000000; }
-.py-prompt         { background: transparent; color: #005050;
-                     font-weight: bold;}
-.py-string         { background: transparent; color: #006030; }
-.py-comment        { background: transparent; color: #003060; }
-.py-keyword        { background: transparent; color: #600000; }
-.py-output         { background: transparent; color: #404040; }
-pre.doctestblock   { background: #f4faff; color: #000000; 
-                     padding: .5em; margin: 1em;
-                     border: 1px solid #708890; }
-table pre.doctestblock
-                   { background: #dce4ec; color: #000000; 
-                     padding: .5em; margin: 1em;
-                     border: 1px solid #708890; }
-
-/* Variable values */
-pre.variable       { background: #dce4ec; color: #000000;
-                     padding: .5em; margin: 0;
-                     border: 1px solid #708890; }
-.variable-linewrap { background: transparent; color: #604000; }
-.variable-ellipsis { background: transparent; color: #604000; }
-.variable-quote    { background: transparent; color: #604000; }
-.re                { background: transparent; color: #000000; }
-.re-char           { background: transparent; color: #006030; }
-.re-op             { background: transparent; color: #600000; }
-.re-group          { background: transparent; color: #003060; }
-.re-ref            { background: transparent; color: #404040; }
-
-/* Navigation bar */ 
-table.navbar       { background: #a0c0ff; color: #0000ff;
-                     border: 2px groove #c0d0d0; }
-th.navbar          { background: #a0c0ff; color: #0000ff; } 
-th.navselect       { background: #70b0ff; color: #000000; } 
-.nomargin          { margin: 0; }
-
-/* Links */ 
-a:link             { background: transparent; color: #0000ff; }  
-a:visited          { background: transparent; color: #204080; }  
-a.navbar:link      { background: transparent; color: #0000ff; 
-                     text-decoration: none; }  
-a.navbar:visited   { background: transparent; color: #204080; 
-                     text-decoration: none; }  
-
-/* Lists */
-ul { margin-top: 0; }
diff --git a/www/python-api/public/frames.html b/www/python-api/public/frames.html
deleted file mode 100644 (file)
index b595856..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
-  <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
-  <frameset rows="30%,70%">
-    <frame src="toc.html" name="moduleListFrame">
-    <frame src="toc-everything.html" name="moduleFrame">
-  </frameset>
-  <frame src="lightmediascanner-module.html" name="mainFrame">
-</frameset>
-</html>
diff --git a/www/python-api/public/help.html b/www/python-api/public/help.html
deleted file mode 100644 (file)
index 7d574a7..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Help</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/help.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<center><h2> API Documentation </h2></center>
-
-<p> This document contains the API (Application Programming Interface)
-documentation for this project.  Documentation for the Python
-objects defined by the project is divided into separate pages for each
-package, module, and class.  The API documentation also includes two
-pages containing information about the project as a whole: a trees
-page, and an index page.  </p>
-
-<h2> Object Documentation </h2>
-
-  <p>Each <b>Package Documentation</b> page contains: 
-  <ul>
-    <li> A description of the package. </li>
-    <li> A list of the modules and sub-packages contained by the
-    package.  </li>
-    <li> A summary of the classes defined by the package. </li>
-    <li> A summary of the functions defined by the package. </li>
-    <li> A summary of the variables defined by the package. </li>
-    <li> A detailed description of each function defined by the
-    package. </li>
-    <li> A detailed description of each variable defined by the
-    package. </li>
-  </ul></p>
-  
-  <p>Each <b>Module Documentation</b> page contains:
-  <ul>
-    <li> A description of the module. </li>
-    <li> A summary of the classes defined by the module. </li>
-    <li> A summary of the functions defined by the module. </li>
-    <li> A summary of the variables defined by the module. </li>
-    <li> A detailed description of each function defined by the
-    module. </li>
-    <li> A detailed description of each variable defined by the
-    module. </li>
-  </ul></p>
-  
-  <p>Each <b>Class Documentation</b> page contains:
-  <ul>
-    <li> A class inheritance diagram. </li>
-    <li> A list of known subclasses. </li>
-    <li> A description of the class. </li>
-    <li> A summary of the methods defined by the class. </li>
-    <li> A summary of the instance variables defined by the class. </li>
-    <li> A summary of the class (static) variables defined by the
-    class. </li> 
-    <li> A detailed description of each method defined by the
-    class. </li>
-    <li> A detailed description of each instance variable defined by the
-    class. </li> 
-    <li> A detailed description of each class (static) variable defined
-    by the class. </li> 
-  </ul></p>
-
-<h2> Project Documentation </h2>
-
-  <p> The <b>Trees</b> page contains the module and class hierarchies:
-  <ul>
-    <li> The <i>module hierarchy</i> lists every package and module, with
-    modules grouped into packages.  At the top level, and within each
-    package, modules and sub-packages are listed alphabetically. </li>
-    <li> The <i>class hierarchy</i> lists every class, grouped by base
-    class.  If a class has more than one base class, then it will be
-    listed under each base class.  At the top level, and under each base
-    class, classes are listed alphabetically. </li>
-  </ul></p>
-  
-  <p> The <b>Index</b> page contains indices of terms and
-  identifiers: 
-  <ul>
-    <li> The <i>term index</i> lists every term indexed by any object's
-    documentation.  For each term, the index provides links to each
-    place where the term is indexed. </li>
-    <li> The <i>identifier index</i> lists the (short) name of every package,
-    module, class, method, function, variable, and parameter.  For each
-    identifier, the index provides a short description, and a link to
-    its documentation. </li>
-  </ul></p>
-
-<h2> The Table of Contents </h2>
-
-<p> The table of contents occupies the two frames on the left side of
-the window.  The upper-left frame displays the <i>project
-contents</i>, and the lower-left frame displays the <i>module
-contents</i>: </p>
-
-<center>
-<table class="summary" border="1" cellspacing="0" cellpadding="3">
-  <tr heigh="30%">
-    <td align="center">
-       <font size="-1">Project<br>Contents<hr>...</font></td>
-    <td align="center" rowspan="2" width="70%">
-      API<br>Documentation<br>Frame<br><br><br>
-    </td>
-  </tr>
-  <tr>
-    <td align="center">
-      <font size="-1">Module<br>Contents<hr>&nbsp;<br>...<br>&nbsp;</font>
-    </td>
-  </tr>
-</table><br>
-</center>
-
-<p> The <b>project contents frame</b> contains a list of all packages
-and modules that are defined by the project.  Clicking on an entry
-will display its contents in the module contents frame.  Clicking on a
-special entry, labeled "Everything," will display the contents of
-the entire project. </p>
-
-<p> The <b>module contents frame</b> contains a list of every
-submodule, class, type, exception, function, and variable defined by a
-module or package.  Clicking on an entry will display its
-documentation in the API documentation frame.  Clicking on the name of
-the module, at the top of the frame, will display the documentation
-for the module itself. </p>
-
-<p> The "<b>frames</b>" and "<b>no frames</b>" buttons below the top
-navigation bar can be used to control whether the table of contents is
-displayed or not. </p>
-
-<h2> The Navigation Bar </h2>
-
-<p> A navigation bar is located at the top and bottom of every page.
-It indicates what type of page you are currently viewing, and allows
-you to go to related pages.  The following table describes the labels
-on the navigation bar.  Note that not some labels (such as
-[Parent]) are not displayed on all pages. </p>
-
-<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
-<tr class="summary">
-  <th>Label</th>
-  <th>Highlighted when...</th>
-  <th>Links to...</th>
-</tr>
-  <tr><td valign="top"><b>[Parent]</b></td>
-      <td valign="top"><i>(never highlighted)</i></td>
-      <td valign="top"> the parent of the current package </td></tr>
-  <tr><td valign="top"><b>[Package]</b></td>
-      <td valign="top">viewing a package</td>
-      <td valign="top">the package containing the current object
-      </td></tr>
-  <tr><td valign="top"><b>[Module]</b></td>
-      <td valign="top">viewing a module</td>
-      <td valign="top">the module containing the current object
-      </td></tr> 
-  <tr><td valign="top"><b>[Class]</b></td>
-      <td valign="top">viewing a class </td>
-      <td valign="top">the class containing the current object</td></tr>
-  <tr><td valign="top"><b>[Trees]</b></td>
-      <td valign="top">viewing the trees page</td>
-      <td valign="top"> the trees page </td></tr>
-  <tr><td valign="top"><b>[Index]</b></td>
-      <td valign="top">viewing the index page</td>
-      <td valign="top"> the index page </td></tr>
-  <tr><td valign="top"><b>[Help]</b></td>
-      <td valign="top">viewing the help page</td>
-      <td valign="top"> the help page </td></tr>
-</table>
-
-<p> The "<b>show private</b>" and "<b>hide private</b>" buttons below
-the top navigation bar can be used to control whether documentation
-for private objects is displayed.  Private objects are usually defined
-as objects whose (short) names begin with a single underscore, but do
-not end with an underscore.  For example, "<code>_x</code>",
-"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
-are private objects; but "<code>re.sub</code>",
-"<code>__init__</code>", and "<code>type_</code>" are not.  However,
-if a module defines the "<code>__all__</code>" variable, then its
-contents are used to decide which objects are private. </p>
-
-<p> A timestamp below the bottom navigation bar indicates when each
-page was last updated. </p>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/index.html b/www/python-api/public/index.html
deleted file mode 100644 (file)
index b595856..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
-  <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
-  <frameset rows="30%,70%">
-    <frame src="toc.html" name="moduleListFrame">
-    <frame src="toc-everything.html" name="moduleFrame">
-  </frameset>
-  <frame src="lightmediascanner-module.html" name="mainFrame">
-</frameset>
-</html>
diff --git a/www/python-api/public/indices.html b/www/python-api/public/indices.html
deleted file mode 100644 (file)
index 27e81d8..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Index</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/indices.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-<br />
-
-<!-- =========== START OF IDENTIFIER INDEX =========== -->
-<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="index">
-  <th colspan="2">Identifier Index</th></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>
-    <td>Class in module <code>__builtin__</code></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__call__"><code>__call__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>
-    <td>Class in module <code>__builtin__</code></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__cmp__"><code>__cmp__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__delattr__"><code>__delattr__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__delattr__"><code>__delattr__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__getattribute__"><code>__getattribute__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__getattribute__"><code>__getattribute__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__hash__"><code>__hash__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__hash__"><code>__hash__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__init__"><code>__init__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__init__"><code>__init__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__init__"><code>__init__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__new__"><code>__new__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__new__"><code>__new__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__new__"><code>__new__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__new__"><code>__new__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__pyx_vtable__"><code>__pyx_vtable__</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce__"><code>__reduce__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce_ex__"><code>__reduce_ex__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__repr__"><code>__repr__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__repr__"><code>__repr__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__repr__"><code>__repr__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__repr__"><code>__repr__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__setattr__"><code>__setattr__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__setattr__"><code>__setattr__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__str__"><code>__str__</code></a></td>
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__str__"><code>__str__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__str__"><code>__str__</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__subclasses__"><code>__subclasses__</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></td>
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner-module.html"><code>c_lightmediascanner</code></a></td>
-    <td>Module in package <a href="lightmediascanner-module.html"><code>lightmediascanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_add"><code>charset_add</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_del"><code>charset_del</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check"><code>check</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#commit_interval"><code>commit_interval</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#db_path"><code>db_path</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#delete"><code>delete</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_commit_interval"><code>get_commit_interval</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_slave_timeout"><code>get_slave_timeout</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#is_processing"><code>is_processing</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner-module.html"><code>lightmediascanner</code></a></td>
-    <td>Package</td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>LightMediaScanner</code></a></td>
-    <td>Class in module <a href="lightmediascanner.c_lightmediascanner-module.html"><code>lightmediascanner.c_lightmediascanner</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html#mro"><code>mro</code></a></td>
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#name"><code>name</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>
-    <td>Class in module <code>__builtin__</code></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>Parser</code></a></td>
-    <td>Class in module <a href="lightmediascanner.c_lightmediascanner-module.html"><code>lightmediascanner.c_lightmediascanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_add"><code>parser_add</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_del"><code>parser_del</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_find_and_add"><code>parser_find_and_add</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parsers"><code>parsers</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process"><code>process</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#scanner"><code>scanner</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_commit_interval"><code>set_commit_interval</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_slave_timeout"><code>set_slave_timeout</code></a></td>
-    <td>Method in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#slave_timeout"><code>slave_timeout</code></a></td>
-    <td>Variable in class <a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></td></tr>
-  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>
-    <td>Class in module <code>__builtin__</code></td></tr>
-</table>
-<br />
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/lightmediascanner-module.html b/www/python-api/public/lightmediascanner-module.html
deleted file mode 100644 (file)
index 1a0eb11..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        Package&nbsp;lightmediascanner
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/lightmediascanner-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="lightmediascanner-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF PACKAGE DESCRIPTION =========== -->
-<h2 class="package">Package lightmediascanner</h2>
-
-
-<!-- =========== START OF SUBMODULES =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Submodules</th></tr>
-  <tr><td><ul>
-<li> <b><a href="lightmediascanner.c_lightmediascanner-module.html"><code>c_lightmediascanner</code></a></b>
-  </ul></td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/lightmediascanner.c_lightmediascanner-module.html b/www/python-api/public/lightmediascanner.c_lightmediascanner-module.html
deleted file mode 100644 (file)
index 0f65706..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner.c_lightmediascanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        <a href="lightmediascanner-module.html">Package&nbsp;lightmediascanner</a> ::
-        Module&nbsp;c_lightmediascanner
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/lightmediascanner.c_lightmediascanner-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module lightmediascanner.c_lightmediascanner</h2>
-
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
-  <b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>LightMediaScanner</code></a></b></td>
-  <td>&nbsp;</td></tr>
-<tr><td width="15%">
-  <b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>Parser</code></a></b></td>
-  <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html b/www/python-api/public/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html
deleted file mode 100644 (file)
index 988786c..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner.c_lightmediascanner.LightMediaScanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        <a href="lightmediascanner-module.html">Package&nbsp;lightmediascanner</a> ::
-        <a href="lightmediascanner.c_lightmediascanner-module.html">Module&nbsp;c_lightmediascanner</a> ::
-        Class&nbsp;LightMediaScanner
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type LightMediaScanner</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
-         |
-        <b>LightMediaScanner</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for 
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
-          <span class=summary-sig-arg>S</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_add" class="summary-sig-name"><code>charset_add</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Add charset to list of supported input charsets/encoding.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#charset_del" class="summary-sig-name"><code>charset_del</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Del charset from list of supported input charsets/encoding.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#check" class="summary-sig-name"><code>check</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Check (and update) files under directory.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        int
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_commit_interval" class="summary-sig-name"><code>get_commit_interval</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        int
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#get_slave_timeout" class="summary-sig-name"><code>get_slave_timeout</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        bool
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#is_processing" class="summary-sig-name"><code>is_processing</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        <a 
-        href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
-        class="link"><code>Parser</code></a>
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_add" class="summary-sig-name"><code>parser_add</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Add a new plugin/parser based on it's whole path to shared object.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_del" class="summary-sig-name"><code>parser_del</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Delete a plugin/parser.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">        <a 
-        href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
-        class="link"><code>Parser</code></a>
-</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parser_find_and_add" class="summary-sig-name"><code>parser_find_and_add</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Add a new plugin/parser based on it's name.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#process" class="summary-sig-name"><code>process</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Process directory recursively.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_commit_interval" class="summary-sig-name"><code>set_commit_interval</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Set the number of transactions between commits.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#set_slave_timeout" class="summary-sig-name"><code>set_slave_timeout</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Set maximum time a parser may use.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>getset_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#commit_interval"><code>commit_interval</code></a></b> = <span title="&lt;attribute 'commit_interval' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;"><code>&lt;attribute&nbsp;'commit_interval'&nbsp;of&nbsp;'light<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>member_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#db_path"><code>db_path</code></a></b> = <span title="&lt;member 'db_path' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;"><code>&lt;member&nbsp;'db_path'&nbsp;of&nbsp;'lightmediascanner.c_ligh<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>member_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#parsers"><code>parsers</code></a></b> = <span title="&lt;member 'parsers' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;"><code>&lt;member&nbsp;'parsers'&nbsp;of&nbsp;'lightmediascanner.c_ligh<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>getset_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html#slave_timeout"><code>slave_timeout</code></a></b> = <span title="&lt;attribute 'slave_timeout' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;"><code>&lt;attribute&nbsp;'slave_timeout'&nbsp;of&nbsp;'lightmedi<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
-    <br /><i>(Constructor)</i>
-  </h3>
-  x.__init__(...) initializes x; see x.__class__.__doc__ for 
-  signature
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
-          <span class=sig-arg>S</span>,
-          <span class="sig-vararg">...</span>)</span>
-  </h3>
-  T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="charset_add"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">charset_add</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Add charset to list of supported input charsets/encoding.</p>
-  If some string in analysed/parsed files are not UTF-8, then it will 
-  try agains a list of charsets registered with this function.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="charset_del"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">charset_del</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Del charset from list of supported input charsets/encoding.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="check"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">check</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Check (and update) files under directory.</p>
-  This operates on all files in all sub directories of top_path using 
-  the added parsers. If files are up to date, nothing is done, otherwise 
-  they can be marked as deleted or updated if they still exists, but with 
-  different size or modification time.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="get_commit_interval"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">get_commit_interval</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        int
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="get_slave_timeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">get_slave_timeout</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        int
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="is_processing"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">is_processing</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        bool
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="parser_add"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">parser_add</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Add a new plugin/parser based on it's whole path to shared 
-  object.
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        <a 
-        href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
-        class="link"><code>Parser</code></a>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="parser_del"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">parser_del</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Delete a plugin/parser.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="parser_find_and_add"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">parser_find_and_add</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Add a new plugin/parser based on it's name.
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-        <a 
-        href="lightmediascanner.c_lightmediascanner.Parser-class.html" 
-        class="link"><code>Parser</code></a>
-      </dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="process"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">process</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Process directory recursively.</p>
-  This operates on all files in all sub directories of top_path using 
-  the added parsers.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="set_commit_interval"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">set_commit_interval</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Set the number of transactions between commits.</p>
-  <p>Sets how many transactions/files to handle in one commit, the more 
-  the faster, but if one parser takes too long and it's killed due 
-  slave_timeout being exceeded, then at most this number of transactions 
-  will be lost.</p>
-  Note that transaction here is not a single SQL statement, but it is 
-  considered to be the processing of a file, which can be more than just 
-  one.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-
-<a name="set_slave_timeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">set_slave_timeout</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  <p>Set maximum time a parser may use.</p>
-  This will be the timeout before killing the slave process running 
-  some parser. If this happens, another slave process will be started to 
-  continue from next file.
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="commit_interval"></a>
-<h3>commit_interval</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>getset_descriptor</code>
-
-      </dd>
-<span title="&lt;attribute 'commit_interval' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;attribute 'commit_interval' of 'lightmediascanner.c_lightmediascanner<span class="variable-linewrap">\</span>
-.LightMediaScanner' objects&gt;                                           </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="db_path"></a>
-<h3>db_path</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>member_descriptor</code>
-
-      </dd>
-<span title="&lt;member 'db_path' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;member 'db_path' of 'lightmediascanner.c_lightmediascanner.LightMedia<span class="variable-linewrap">\</span>
-Scanner' objects&gt;                                                      </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="parsers"></a>
-<h3>parsers</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>member_descriptor</code>
-
-      </dd>
-<span title="&lt;member 'parsers' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;member 'parsers' of 'lightmediascanner.c_lightmediascanner.LightMedia<span class="variable-linewrap">\</span>
-Scanner' objects&gt;                                                      </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="slave_timeout"></a>
-<h3>slave_timeout</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>getset_descriptor</code>
-
-      </dd>
-<span title="&lt;attribute 'slave_timeout' of 'lightmediascanner.c_lightmediascanner.LightMediaScanner' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;attribute 'slave_timeout' of 'lightmediascanner.c_lightmediascanner.L<span class="variable-linewrap">\</span>
-ightMediaScanner' objects&gt;                                             </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/lightmediascanner.c_lightmediascanner.Parser-class.html b/www/python-api/public/lightmediascanner.c_lightmediascanner.Parser-class.html
deleted file mode 100644 (file)
index 76b814c..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner.c_lightmediascanner.Parser</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <font size="-1"><b class="breadcrumbs">
-        <a href="lightmediascanner-module.html">Package&nbsp;lightmediascanner</a> ::
-        <a href="lightmediascanner.c_lightmediascanner-module.html">Module&nbsp;c_lightmediascanner</a> ::
-        Class&nbsp;Parser
-      </b></font></br>
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/lightmediascanner.c_lightmediascanner.Parser-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="lightmediascanner.c_lightmediascanner.Parser-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Parser</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
-         |
-        <b>Parser</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for 
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
-          <span class=summary-sig-arg>S</span>,
-          <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#delete" class="summary-sig-name"><code>delete</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-Same as LightMediaScanner.parser_del(self).</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
-  <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>PyCObject</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#__pyx_vtable__"><code>__pyx_vtable__</code></a></b> = <span title="&lt;PyCObject object at 0xb7f40338&gt;"><code>&lt;PyCObject&nbsp;object&nbsp;at&nbsp;0xb7f40338&gt;        </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>getset_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#name"><code>name</code></a></b> = <span title="&lt;attribute 'name' of 'lightmediascanner.c_lightmediascanner.Parser' objects&gt;"><code>&lt;attribute&nbsp;'name'&nbsp;of&nbsp;'lightmediascanner.c_lightme<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>member_descriptor</code></font></td>
-<td><b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html#scanner"><code>scanner</code></a></b> = <span title="&lt;member 'scanner' of 'lightmediascanner.c_lightmediascanner.Parser' objects&gt;"><code>&lt;member&nbsp;'scanner'&nbsp;of&nbsp;'lightmediascanner.c_ligh<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
-    <br /><i>(Constructor)</i>
-  </h3>
-  x.__init__(...) initializes x; see x.__class__.__doc__ for 
-  signature
-  <dl><dt></dt><dd>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
-          <span class=sig-arg>S</span>,
-          <span class="sig-vararg">...</span>)</span>
-  </h3>
-  T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
-  <dl><dt></dt><dd>
-    <dl><dt><b>Returns:</b></dt>
-      <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
-      </dd>
-    </dl>
-    <dl><dt><b>Overrides:</b></dt>
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>
-    </dl>
-  </dd></dl>
-</td></tr></table>
-
-<a name="delete"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-  <h3><span class="sig"><span class="sig-name">delete</span>(<span class="sig-vararg">...</span>)</span>
-  </h3>
-  Same as LightMediaScanner.parser_del(self).
-  <dl><dt></dt><dd>
-  </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
-  <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__pyx_vtable__"></a>
-<h3>__pyx_vtable__</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>PyCObject</code>
-
-      </dd>
-<span title="&lt;PyCObject object at 0xb7f40338&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;PyCObject object at 0xb7f40338&gt;                                       </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="name"></a>
-<h3>name</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>getset_descriptor</code>
-
-      </dd>
-<span title="&lt;attribute 'name' of 'lightmediascanner.c_lightmediascanner.Parser' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;attribute 'name' of 'lightmediascanner.c_lightmediascanner.Parser' ob<span class="variable-linewrap">\</span>
-jects&gt;                                                                 </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="scanner"></a>
-<h3>scanner</h3>
-<dl>
-  <dt></dt>
-  <dd>
-    <dl>
-      <dt><b>Type:</b></dt>
-      <dd>
-          <code>member_descriptor</code>
-
-      </dd>
-<span title="&lt;member 'scanner' of 'lightmediascanner.c_lightmediascanner.Parser' objects&gt;">      <dt><b>Value:</b></dt>
-      <dd><table><tr><td>
-<pre class="variable">
-&lt;member 'scanner' of 'lightmediascanner.c_lightmediascanner.Parser' ob<span class="variable-linewrap">\</span>
-jects&gt;                                                                 </pre>
-        </td></tr></table></dd>
-</span>    </dl>
-  </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/public/toc-everything.html b/www/python-api/public/toc-everything.html
deleted file mode 100644 (file)
index 8e12eac..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Everything</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<center><font size="+1"><b>Everything</b></font></center>
-<hr>
-
-<!-- =========== START OF ALL CLASSES =========== -->
-<font size="+1"><b>All&nbsp;Classes</b></font><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">lightmediascanner.c_lightmediascanner.LightMediaScanner</a><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner.Parser-class.html">lightmediascanner.c_lightmediascanner.Parser</a><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-everything.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/www/python-api/public/toc-lightmediascanner-module.html b/www/python-api/public/toc-lightmediascanner-module.html
deleted file mode 100644 (file)
index 8deb85f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="lightmediascanner-module.html">lightmediascanner</a></b></font></center>
-<hr>
-
-<!-- =========== START OF MODULES =========== -->
-<font size="+1"><b>Modules</b></font><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner-module.html">c_lightmediascanner</a><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-lightmediascanner-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/www/python-api/public/toc-lightmediascanner.c_lightmediascanner-module.html b/www/python-api/public/toc-lightmediascanner.c_lightmediascanner-module.html
deleted file mode 100644 (file)
index 64c6d60..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>lightmediascanner.c_lightmediascanner</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="lightmediascanner.c_lightmediascanner-module.html">c_lightmediascanner</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html">LightMediaScanner</a><br />
-<a target="mainFrame" href="lightmediascanner.c_lightmediascanner.Parser-class.html">Parser</a><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-lightmediascanner.c_lightmediascanner-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/www/python-api/public/toc.html b/www/python-api/public/toc.html
deleted file mode 100644 (file)
index 44b4a51..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Table of Contents</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<center><font size="+1"><b>Table&nbsp;of&nbsp;Contents</b></font></center>
-<hr>
-<a target="moduleFrame" href="toc-everything.html">Everything</a><br />
-
-<!-- =========== START OF PACKAGES =========== -->
-<br /><font size="+1"><b>Packages</b></font><br />
-<a target="moduleFrame" href="toc-lightmediascanner-module.html">lightmediascanner</a><br />
-
-<!-- =========== START OF MODULES =========== -->
-<br /><font size="+1"><b>Modules</b></font><br />
-<a target="moduleFrame" href="toc-lightmediascanner.c_lightmediascanner-module.html">lightmediascanner.c_lightmediascanner</a><br />
-
-<br /><hr>
-<font size="-2">[<a href="../private/toc.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/www/python-api/public/trees.html b/www/python-api/public/trees.html
deleted file mode 100644 (file)
index 61358ba..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Module and Class Hierarchies</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-    </td>
-    <td><table cellpadding="0" cellspacing="0">
-      <tr><td align="right"><font size="-2">[<a href="../private/trees.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
-      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
-    </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE HIERARCHY =========== -->
-<h2>Module Hierarchy</h2>
-<ul>
-<li> <b><a href="lightmediascanner-module.html"><code>lightmediascanner</code></a></b>
-  <ul>
-    <li> <b><a href="lightmediascanner.c_lightmediascanner-module.html"><code>c_lightmediascanner</code></a></b>
-  </ul>
-</ul>
-
-<!-- =========== START OF CLASS HIERARCHY =========== -->
-<h2>Class Hierarchy</h2>
-<ul>
-  <li> <b><a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></b>: <i>
-The most base type</i>
-    <ul>
-  <li> <b><a href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"><code>lightmediascanner.c_lightmediascanner.LightMediaScanner</code></a></b>
-  <li> <b><a href="lightmediascanner.c_lightmediascanner.Parser-class.html"><code>lightmediascanner.c_lightmediascanner.Parser</code></a></b>
-  <li> <b><a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></b>: <i>
-type(object) -&gt; the object's type type(name, bases, dict) -&gt; a 
-new type</i>
-    </ul>
-</ul>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="center">
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="lightmediascanner-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-    <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Thu Dec 13 02:07:27 2007</font></td>
-    <td align="right"><a href="http://epydoc.sourceforge.net"
-                      ><font size="-2">http://epydoc.sf.net</font></a></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/www/python-api/redirect.html b/www/python-api/redirect.html
new file mode 100644 (file)
index 0000000..b979ece
--- /dev/null
@@ -0,0 +1,38 @@
+<html><head><title>Epydoc Redirect Page</title>
+<meta http-equiv="cache-control" content="no-cache" />
+<meta http-equiv="expires" content="0" />
+<meta http-equiv="pragma" content="no-cache" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+<body>
+<script type="text/javascript">
+<!--
+var pages = ["lightmediascanner.c_lightmediascanner.LightMediaScanner-c", "lightmediascanner.c_lightmediascanner.Parser-c", "lightmediascanner.c_lightmediascanner-m"];
+var dottedName = get_anchor();
+if (dottedName) {
+    var target = redirect_url(dottedName);
+    if (target) window.location.replace(target);
+}
+// -->
+</script>
+
+<h3>Epydoc Auto-redirect page</h3>
+
+<p>When javascript is enabled, this page will redirect URLs of
+the form <tt>redirect.html#<i>dotted.name</i></tt> to the
+documentation for the object with the given fully-qualified
+dotted name.</p>
+<p><a id="message"> &nbsp; </a></p>
+
+<script type="text/javascript">
+<!--
+if (dottedName) {
+    var msg = document.getElementById("message");
+    msg.innerHTML = "No documentation found for <tt>"+
+                    dottedName+"</tt>";
+}
+// -->
+</script>
+
+</body>
+</html>
diff --git a/www/python-api/toc-everything.html b/www/python-api/toc-everything.html
new file mode 100644 (file)
index 0000000..dd1415f
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Everything</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Everything</h1>
+<hr />
+  <h2 class="toc">All Classes</h2>
+    <a target="mainFrame" href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"
+     >lightmediascanner.c_lightmediascanner.LightMediaScanner</a><br />    <a target="mainFrame" href="lightmediascanner.c_lightmediascanner.Parser-class.html"
+     >lightmediascanner.c_lightmediascanner.Parser</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/toc-lightmediascanner-module.html b/www/python-api/toc-lightmediascanner-module.html
new file mode 100644 (file)
index 0000000..1407dff
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>lightmediascanner</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module lightmediascanner</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="lightmediascanner-module.html#LMS_PROGRESS_STATUS_DELETED"
+     >LMS_PROGRESS_STATUS_DELETED</a><br />    <a target="mainFrame" href="lightmediascanner-module.html#LMS_PROGRESS_STATUS_ERROR_COMM"
+     >LMS_PROGRESS_STATUS_ERROR_COMM</a><br />    <a target="mainFrame" href="lightmediascanner-module.html#LMS_PROGRESS_STATUS_ERROR_PARSE"
+     >LMS_PROGRESS_STATUS_ERROR_PARSE</a><br />    <a target="mainFrame" href="lightmediascanner-module.html#LMS_PROGRESS_STATUS_KILLED"
+     >LMS_PROGRESS_STATUS_KILLED</a><br />    <a target="mainFrame" href="lightmediascanner-module.html#LMS_PROGRESS_STATUS_PROCESSED"
+     >LMS_PROGRESS_STATUS_PROCESSED</a><br />    <a target="mainFrame" href="lightmediascanner-module.html#LMS_PROGRESS_STATUS_UP_TO_DATE"
+     >LMS_PROGRESS_STATUS_UP_TO_DATE</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/toc-lightmediascanner.c_lightmediascanner-module.html b/www/python-api/toc-lightmediascanner.c_lightmediascanner-module.html
new file mode 100644 (file)
index 0000000..dfc1045
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>c_lightmediascanner</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module c_lightmediascanner</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="lightmediascanner.c_lightmediascanner.LightMediaScanner-class.html"
+     >LightMediaScanner</a><br />    <a target="mainFrame" href="lightmediascanner.c_lightmediascanner.Parser-class.html"
+     >Parser</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/www/python-api/toc.html b/www/python-api/toc.html
new file mode 100644 (file)
index 0000000..765f00b
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Table of Contents</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Table&nbsp;of&nbsp;Contents</h1>
+<hr />
+  <a target="moduleFrame" href="toc-everything.html">Everything</a>
+  <br />
+  <h2 class="toc">Modules</h2>
+    <a target="moduleFrame" href="toc-lightmediascanner.c_lightmediascanner-module.html"
+     onclick="setFrame('toc-lightmediascanner.c_lightmediascanner-module.html','lightmediascanner.c_lightmediascanner-module.html');"     >lightmediascanner.c_lightmediascanner</a><br /><hr />
+  <span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>