src/lib/lightmediascanner_plugin.h

Go to the documentation of this file.
00001 
00121 #ifndef _LIGHTMEDIASCANNER_PLUGIN_H_
00122 #define _LIGHTMEDIASCANNER_PLUGIN_H_ 1
00123 
00124 #include <lightmediascanner.h>
00125 #include <lightmediascanner_charset_conv.h>
00126 #include <sqlite3.h>
00127 #include <sys/types.h>
00128 
00129 #ifdef __cplusplus
00130 extern "C" {
00131 #endif
00132 
00133     struct lms_file_info {
00134         const char *path; 
00135         int path_len; 
00136         int base; 
00137         int64_t id; 
00138         time_t mtime; 
00139         time_t dtime; 
00140         size_t size; 
00141     };
00142 
00143     struct lms_context {
00144         sqlite3 *db; 
00145         lms_charset_conv_t *cs_conv; 
00146     };
00147 
00148     typedef void *(*lms_plugin_match_fn_t)(lms_plugin_t *p, const char *path, int len, int base);
00149     typedef int (*lms_plugin_parse_fn_t)(lms_plugin_t *p, struct lms_context *ctxt, const struct lms_file_info *finfo, void *match);
00150     typedef int (*lms_plugin_close_fn_t)(lms_plugin_t *p);
00151     typedef int (*lms_plugin_setup_fn_t)(lms_plugin_t *p, struct lms_context *ctxt);
00152     typedef int (*lms_plugin_start_fn_t)(lms_plugin_t *p, struct lms_context *ctxt);
00153     typedef int (*lms_plugin_finish_fn_t)(lms_plugin_t *p, struct lms_context *ctxt);
00154 
00155     struct lms_plugin {
00156         const char *name; 
00157         lms_plugin_match_fn_t match; 
00158         lms_plugin_parse_fn_t parse; 
00159         lms_plugin_close_fn_t close; 
00160         lms_plugin_setup_fn_t setup; 
00161         lms_plugin_start_fn_t start; 
00162         lms_plugin_finish_fn_t finish; 
00163     };
00164 
00165 #ifdef __cplusplus
00166 }
00167 #endif
00168 #endif /* _LIGHTMEDIASCANNER_PLUGIN_H_ */

Generated on Thu Dec 13 02:04:03 2007 for Light Media Scanner by  doxygen 1.5.2